L1 캐시가있는 CPU가 쓰기를 수행하는 경우 일반적으로 데이터를 업데이트하는 것 외에 캐시가 데이터를 업데이트하는 경우 캐시가 해당 캐시 라인을 더티로 표시합니다. , 나중에 업데이트 된 데이터로 라인을 작성합니다.
한 가지 가능한 최적화 방법은 캐시가 쓰기의 내용과 캐시의 이전 내용을 비교하도록하는 것이며, 동일하면 해당 라인을 더티로 표시하지 마십시오. 캐시가 때때로 쓰기를 피할 수 있기 때문에 CPU 제조업체가이 논리를 수행하는 데 필요한 게이트 가치로 이것을 어떻게 볼 수 있는지 알 수 있습니다.
내 질문 :이 최적화를 수행하는 CPU가 있습니까?
내가 묻는 이유에 대한 배경 : 지속적인 메모리 액세스가 필요한 코드를 작성 중입니다. 즉, 캐시의 동작을들을 수있는 사람은 내가하고있는 일을 추론 할 수 없어야합니다. 내 액세스 중 일부는 쓰기 이며이 코드를 구현하는 명확한 방법으로 많은 쓰기가 이미 존재하는 동일한 데이터를 작성합니다. 데이터에 따라 쓰고있는 데이터가 같거나 같지 않을 수 있으므로 쓰기를 수행해야하며, 관계없이 동일한 작업을 수행하는 것이 중요합니다. CPU가 실제로 'no-change-write'를 쓰지 않고 최적화하면 캐시 동작이 내가하는 일에 따라 다를 수 있으며 이는 목표를 파괴합니다.
그렇다면이 방법으로 쓰기를 최적화하려고하는 CPU가 있습니까?