나는 당신의 혼란을 본 것 같아요. TLB와 데이터 캐시는 두 가지 별도의 메커니즘입니다. 둘 다 일종의 캐시이지만 다른 것을 캐시합니다.
↦
따라서 TLB는이 조회를위한 전용 캐시 역할을합니다. TLB에는 몇 개의 TLB 항목이 있으며 각 TLB 항목에는 가상 주소와 해당 물리적 주소가 모두 들어 있습니다.
TLB를 사용하면 프로세서가 가상 주소를 물리적 주소로 매우 빠르게 변환 할 수 있습니다. 명령어가 프로세서에 (가상) 주소에서 메모리 작업을 수행하도록 요청하면 프로세서는 먼저 TLB에 해당 가상 주소에 대한 항목이 포함되어 있는지 확인합니다. 이 경우 TLB 조회를 위해 "캐시 적중"이라고하며 TLB 항목에도 변환 된 실제 주소가 포함되어 있으므로 프로세서는 사용할 실제 주소를 즉시 알고 있습니다. 그렇지 않은 경우 이는 TLB 조회에 대한 캐시 누락이며 프로세서는 페이지 테이블을 걸어 가상에서 실제로 변환해야합니다. 해당 변환을 마치면 TLB에 항목을 추가하여 해당 가상 주소의 향후 변환이 훨씬 빨리 수행되도록합니다.
데이터 캐시는 메모리 내용에 대한 캐시입니다. 메인 메모리를 사용하면 물리적 주소를 지정하고 해당 물리적 주소의 값을 읽을 수 있습니다. 그러나 주 메모리가 느립니다. 메모리 작업을 원할 때마다 주 메모리로 이동해야하는 경우 프로세서 속도가 매우 느려집니다.
따라서 데이터 캐시는 메모리 읽기 전용 캐시 역할을합니다. 데이터 캐시에는 일부 캐시 항목이 있으며 각 캐시 항목에는 실제 주소와 해당 주소의 메모리 값이 포함됩니다.
데이터 캐시를 통해 프로세서는 메모리에서 매우 빠르게 읽을 수 있습니다. 프로세서가 일부 (물리적) 주소에서 메모리를 읽으려고 할 때 먼저 데이터 캐시를 검사하여 해당 주소에 대한 캐시 항목이 있는지 확인합니다. 그렇다면 "캐시 적중"(데이터 캐시에 있음)이라고하며 프로세서는 주 메모리에 접속할 필요없이 해당 캐시 항목에 저장된 데이터 값을 즉시 사용할 수 있습니다. 그렇지 않으면 "캐시 미스"(데이터 캐시의 경우)이며 프로세서는 기본 메모리로 이동해야합니다. (프로세서가 주 메모리에서 해당 주소의 값을 수신 한 후 동일한 주소를 읽으려고하면 데이터 캐시에 캐시 항목이 추가되어 데이터 캐시에 추가됩니다.)
그것들은 모두 캐시이지만 다른 목적으로 사용됩니다. 프로세서는 각 메모리 작업에 두 가지를 모두 사용합니다. 먼저 TLB를 사용하여 가상 주소에서 실제 주소로 변환 한 다음 데이터 캐시를 검사하여 해당 주소의 메모리에 저장된 값을 읽는 프로세스의 속도를 높입니다.
자세한 내용은 TLB에 대한 Wikipedia 기사를 참조하십시오. . 검색하면 TLB 및 데이터 캐시에 사용할 수있는 다른 많은 정보가 있습니다. "TLB"및 "L1 캐시"또는 "L2 캐시"(후자의 2 개는 일종의 데이터 캐시)를 검색하는 것이 좋습니다.
(나중에 참조 할 수 있도록 : 여기에서 질문하기 전에 질문에 대한 조사를하고 표준 인터넷 소스를 확인해야합니다. Wikipedia에서 답변을 찾을 수 없으면 스스로 조사를 충분히 수행하지 않은 것입니다. 여기에 요청하기 전에 어떻게 TLB들에 대한 정보는 인터넷 소스를 확인하려는 경우 더 좋은 행운. 참조 스택 오버플로 사용자의 기대되는 방법 많은 연구 노력? . 그래서, 당신은 당신의 자신을 개선 할 수있는 방법에 대한 교훈로 사용하는 기회를 연구 기술-경력 전반에 걸쳐 귀중한 것입니다.)