-
캐시 최적화 방법과 기술IT 2021. 6. 18. 08:22반응형
캐시를 입력하는 방식과 데이터를 가져오는 방식의 최적화를 위해 실패에 대한 재범을 줄이는데 도움이 되는 다양한 기술이 고려되었습니다. 이러한 기술들은 캐시의 성능을 향상시킵니다. 그리고 캐시 누락 속도를 줄입니다. 뿐만 아니라 미스 페널티 페널티를 줄입니다. 이런 방식을 통해 캐시는 성공(적중 시간)의 경우 액세스 시간을 줄입니다.
캐시의 실패가 감소하는 것에는 몇가지 이유가 있습니다. 첫 번째는 실패 유형의 감소입니다. 이것은 캐시 오류의 3C 분류라고 합니다. 첫 번째는 강제입니다. 이것은 강제 또는 감기라고 불리기도 합니다. 블록에 대한 첫 번째 액세스에서 캐시(콜드 부팅 또는 첫 번째 참조 오류)에 없습니다. 용량은 캐시에는 프로그램 실행 중에 필요한 모든 블록이 포함될 수 없습니다. 충돌은 전략이 세트 또는 직접 대응(충돌 실패)에 의해 연관될 때 다른 블록은 반드시 동일한 세트 또는 선으로 이동해야 한다는 것입니다. 실패 유형의 멀티 프로세서 시스템에는 2가지 이상의 오류 유형(5C 분류)이 있습니다. 그중 하나인 일관성은, 블록은 다른 프로세서의 블록 요청으로 인해 읽기 또는 쓰기에 대한 쓰기 권한이 없는 잘못된 상태로 캐시 됩니다. 두 번째인 적용 범위의 캐시는 블록에 캐시 되지만 디렉터리의 교체로 인해 발급된 무효화로 인해 잘못된 상태(사용 권한이 없는 상태)로 인해 공유 정보가 손실됩니다.
이러한 캐시의 실패를 줄이는 기술에는 몇 가지 종류가 있습니다. 하나는 블록의 크기를 늘리는 것입니다. 장점에는 강제 실패는 공간적 지역의 원칙에 의해 제안된 대로 감소됩니다. 단점도 있는데, 이 경우 캐시가 작은 경우, 캐시 블록 및 용량 실패 수를 줄여 충돌 오류가 증가합니다. 실패에 대한 페널티는 블록의 전송 시간을 증가시킵니다. 인연이 증가하면 캐시가 변동됩니다. 인연 증가로 인한 장점에는 충돌 실패수 감소가 있습니다. 그러나 단점에는 성공 시간(멀티플렉싱)이 증가함에 따라 평균 액세스 시간이 증가합니다. 또한 비교기로 인한 비용 증가 역시 마찬가지입니다. 피해자 캐시는 용량 실패 또는 충돌에 의해 버려진 블록을 저장하기 위해 작은 완전 연관 캐시(1-5 블록)를 추가하는 것으로 구성됩니다. 오류가 발생할 경우 주 메모리에 액세스하기 전에 이 캐시에 액세스 됩니다. 검색된 블록이 그 안에 있으면 두 캐시의 블록이 모두 바뀝니다. 이것은 컴파일러 최적화를 위함입니다. 컴파일러는 액세스가 만들어지는 방식이 캐시 누락을 줄이게 되도록 코드를 재 정렬합니다. 캐시의 실패를 줄이기 위해서는 액세스 시간을 단축시켜야 합니다. 컴퓨터의 작고 간단한 캐시입니다. 이 작은 캐시는 적중 시간을 줄일 수 있지만 용량이 적습니다. 서신 캐시에서는 라벨 확인 및 데이터 액세스가 동시에 수행됩니다. 주소 번역을 피하십시오. 캐시 인덱싱 중에 번역을 방지합니다. 캐시에서 주소를 저장하여 성공 시 실제 주소로 가상의 번역을 피하는 것이 좋습니다. 빠른 쓰기 히트에 대한 파이프 라인 쓰기도 있습니다. 쓰기 작업에 대한 파이프라인을 만드는 것으로 구성되므로 현재 쓰기가 다음 쓰기의 태그를 비교하는 시간에 겹쳐집니다.
메모리 관리에 페이징을 사용하는 운영 체제에서 페이지 교체 알고리즘은 새 페이지를 로드해야 하고 더 이상 무료 페이지 프레임이 없을 때 메모리에서 제거할 수 있는 페이지를 결정하는데 사용됩니다. 이 알고리즘은 나중에 참조할 페이지를 제거하기 위한 것입니다. 예를 들어서, 10000 지침 내에서 사용할 페이지 A가 있고 2800 지침 내에서 사용되는 페이지 B가 있는 경우 A 페이지는 메모리에서 제거해야 합니다. 추론할 수 있듯이 운영 체제는 메모리의 각 페이지가 얼마나 오래 사용되는지 확인하고 더 먼 페이지를 선택해야 합니다. 이 방법의 문제는 미래에 대한 지식이 필요하므로 구현할 수 없다는 것입니다. 그것은 이론적 알고리즘입니다. 이 알고리즘이 가장 가까운 것을 확인하기 위해 구현할 수 있는 알고리즘을 사용하여 비교 목적으로 사용됩니다. 알고리즘 중 에이징은 "자주 사용되지 않는" 알고리즘에서 벗어나 페이지가 자주 사용되었을 때 고려해야 할 몇 가지 수정 사항과 몇 번의 수정이 필요했습니다. 참조할 때 페이지의 카운터를 증가시키는 대신 먼저 오른쪽으로 스크롤(2로 분할)한 다음 1을 추가합니다. 이렇게 하면 메모리에서 페이지를 삭제해야 하는 경우 카운터에 가장 작은 숫자가 있는 페이지가 삭제됩니다. 이 알고리즘은 최적의 알고리즘에 대한 좋은 근사치를 달성합니다.
'IT' 카테고리의 다른 글
메인 메모리란 무엇인가 (0) 2021.06.20 페이지 교체 알고리즘에 대하여 (0) 2021.06.19 캐시 데이터의 구성과 디자인 (0) 2021.06.17 컴퓨터 메모리 캐시의 어원과 캐시의 유형 (0) 2021.06.16 컴퓨터 메모리의 로깅과 캐시 (0) 2021.06.15