잘못된 공유 란 무엇입니까?
거짓 공유는 각 프로그램이나 프로세스가 자체 캐시에 저장된 것과 동일한 논리적 메모리 영역에서 정보에 액세스하려고 시도 할 때 컴퓨터 프로그램에서 발생할 수있는 상황입니다. 각 응용 프로그램의 캐시의 데이터는 공통 소스에서 복사되므로 한 캐시를 수정하면 다른 캐시가 소스에서 다시로드되어야합니다. 공유의 잘못된 측면은 한 프로그램별로 캐시 라인의 변경이 실제로 두 번째 프로그램이 사용하는 데이터에 영향을 미치지 않을 때 발생합니다.이 경우 캐시를 다시로드하도록 강요하는 경우 시스템 리소스의 낭비이며 프로그램의 성능에 부정적인 영향을 줄 수 있습니다. 허위 공유 문제는 현재 캐싱 된 라인에있는 데이터를 별도의 라인으로 이동하는 것과 같은 잘못된 공유를 방지하는 효과적인 방법이 있지만 응용 프로그램에 포함 된 코드의 직접적인 결과는 아니기 때문에 탐지하기가 어렵습니다.
.오 탐지가 발생할 수있는 주된 이유 중 하나는 운영 체제 또는 하드웨어가 데이터 읽기 및 쓰기를 처리하는 방법에서 발견됩니다. 하드 디스크 또는 다른 소스의 정보가 프로그램에 의해 읽거나 작성되는 경우 일반적으로 임시 캐시에로드되므로 빠르게 액세스 할 수 있습니다. 소스 위치에서 캐시 된 정보의 양은 캐시 라인이라고하며 일반적으로 길이가 2 바이트와 256 바이트 사이 일 수있는 논리적 인 메모리 블록입니다. 일부 운영 체제 또는 시스템 아키텍처에서 프로그램은 병렬 처리와 같은 동시에 실행할 수 있습니다. 즉, 두 개의 별도 프로그램이 동일한 캐시 라인에서 정보에 액세스하려고 시도 할 수 있으므로 각 프로그램은 자체 자체 소스 데이터 사본을 가지므로 한 캐시의 변경이 다른 캐시에 반영되지 않아서 보유하는 데이터를 무효화 할 수 있습니다.
.ha에 사용 된 여러 메커니즘이 있습니다두 프로그램이 동일한 캐시 라인에 액세스하려고 시도 할 때의 상황이지만 가장 자주 결과는 한 프로그램이 다른 프로그램이 수정 한 업데이트 된 정보로 캐시를 다시로드해야한다는 것입니다. 이 유형의 사고는 각 프로그램에 액세스하는 캐시 라인 내의 데이터가 관련이 없을 때 잘못된 공유라고합니다. 따라서 캐시를 다시로드하도록 강요하는 것은 처리 전력 및 기타 리소스의 낭비입니다. 이것은 가장 자주 캐시에서 정보를 수정하지 않는 프로그램의 문제이므로 다른 프로세스가 작성한 응용 프로그램 덮어 쓰기 변경의 위험이 없습니다.
.허위 공유의 영향을 방지하거나 완화하기 위해 두 가지 일반적인 방법이 존재합니다. 첫 번째는 메모리의 데이터 전후에 빈 정보를 추가하여 본질적으로 다른 프로그램에서 액세스하지 않는 별도의 캐시 라인으로 강제하는 것입니다. 두 번째 방법은 캐시 라인에 읽기 및 쓰기 빈도를 LITTL로 다시로드하는 것입니다.가능한 한. 보다 복잡한 솔루션은 캐시 레벨 관리 또는 운영 체제가 공유를 처리하는 방식에 대한 변경과 관련이 있습니다.