본문 바로가기

단축키

Prev이전 문서

Next다음 문서

단축키

Prev이전 문서

Next다음 문서

모든 최신 프로세서에는 소량의 캐시 메모리가 있습니다. 지난 수십 년 동안 캐시 아키텍처는 점점 더 복잡해졌습니다. CPU 캐시 수준은 L1, L2 및 L3의 3개로 증가했으며 각 블록의 크기가 증가했으며 캐시 연관성도 여러 번 변경되었습니다. 그러나 세부 사항을 살펴보기 전에 캐시 메모리가 정확히 무엇이며 왜 중요한지 알아야 합니다. 또한 최신 프로세서는 L1, L2 및 L3 캐시로 구성됩니다. 이러한 캐시 수준의 차이점은 무엇입니까?

 

캐시 메모리 vs 시스템 메모리 : SRAM vs DRAM

캐시 메모리는 훨씬 더 빠르고 고가의 정적 RAM을 기반으로 하며 시스템 메모리는 더 느린 DRAM (동적 RAM)을 활용합니다. 두 가지의 주요 차이점은 전자는 CMOS 기술과 트랜지스터 (각 블록 당 6 개)로 만들어졌고 후자는 커패시터와 트랜지스터를 사용한다는 것입니다.

 

데이터를 장기간 보관하려면 DRAM을 지속적으로 새로 고쳐야 합니다 (충전 누출로 인해). 이로 인해 훨씬 ​​더 많은 전력을 소비하고 속도도 느립니다. SRAM은 새로 고칠 필요가 없으며 훨씬 더 효율적입니다. 그러나 더 높은 가격은 주류 채택을 방해하여 프로세서 캐시로의 사용을 제한했습니다.

 

프로세서에서 캐시 메모리의 중요성?

 

 

현대의 프로세서는 80년대와 90년대 초반의 원시 조상들보다 광년 앞서 있습니다. 오늘날, 최상위 소비자 칩은 4GHz를 훨씬 상회하는 반면, 대부분의 DDR4 메모리 모듈은 1800MHz 미만으로 평가되고 있습니다. 따라서 시스템 메모리가 너무 느려서 CPU의 속도를 크게 저하시키지 않고 직접 CPU로 작업할 수 없습니다. 캐시 메모리가 여기에 들어갑니다. 이것은 둘 사이의 중간 역할을 하여 반복적으로 사용되는 데이터의 작은 청크를 저장하거나 경우에 따라 해당 파일의 메모리 주소를 저장합니다.

 

L1, L2 및 L3 캐시 : 차이점은 무엇입니까?

 

 

현대의 프로세서에서 캐시 메모리는 크기를 늘리고 속도를 줄이기 위해 L1, L2, L3 캐시의 세 세그먼트로 나뉩니다. L3 캐시는 가장 크면서도 가장 느립니다(3세대 Ryzen CPU는 최대 64MB의 L3 캐쉬를 지원합니다). L2와 L1은 L3보다 훨씬 작고 빠르며 각 코어에 대해 분리되어 있습니다. 이전 프로세서는 3단계 L3 캐시를 포함하지 않았으며 L2 캐시와 직접 상호 작용하는 시스템 메모리를 포함했습니다.

 

 

L1 캐시는 L1 데이터 캐시와 L1 명령 캐시라는 두 섹션으로 더 나뉩니다. 후자는 CPU 코어가 사용하는 반면 전자는 기본 메모리에 다시 기록될 데이터를 저장하는 데 사용됩니다.

 

L1 캐시는 명령 캐시로 작동할 뿐만 아니라, 사전 해독 데이터와 분기 정보도 보유합니다. 또한 L1 데이터 캐시는 종종 출력 캐시 역할을 하지만 L1 명령 캐시는 입력 캐시처럼 작동합니다. 이 기능은 필요한 지침이 인출 장치 바로 옆에 있으므로 루프가 체결될 때 유용합니다.

 

 

최신 CPU에는 플래그십 프로세서를 위해 최대 512KB의 L1 캐시 (코어 당 64KB)가 포함되어 있으며 서버 부품은 거의 두 배나 많은 기능을 제공합니다.

 

L2 캐시는 L1보다 훨씬 크지만 동시에 느립니다. 플래그십 CPU의 경우 4-8MB (코어 당 512KB)입니다. 각 코어에는 자체 L1 및 L2 캐시가 있으며 마지막 레벨인 L3 캐시는 다이의 모든 코어에서 공유됩니다.

 

L3 캐시는 가장 낮은 수준의 캐시입니다. 10MB에서 64MB까지 다양합니다. 서버 칩에는 256MB의 L3 캐시가 있습니다. 또한 AMD의 Ryzen CPU는 경쟁 Intel 칩에 비해 캐시 크기가 훨씬 큽니다. 이는 MCM 설계와 Intel 측의 모 놀리 식 때문입니다. 여기에서 자세한 내용을 읽어보십시오.

 

 

CPU에 데이터가 필요한 경우 먼저 연결된 코어의 L1 캐시를 검색합니다. 찾을 수없는 경우 L2 및 L3 캐시가 다음에 검색됩니다. 필요한 데이터가 발견되면 이를 캐시 적중이라고 합니다. 반면에 데이터가 캐시에 없으면 CPU는 데이터를 주 메모리 또는 스토리지에서 캐시로 로드하도록 요청해야 합니다. 이는 시간이 걸리고 성능에 부정적인 영향을 미칩니다. 이를 캐시 미스라고 합니다.

 

일반적으로 캐시 적중률은 캐시 크기가 증가할 때 향상됩니다. 이는 게임 및 기타 지연 시간에 민감한 워크로드의 경우 특히 그렇습니다.

 

 

포함 vs 독점 캐시

기본 캐시 구성은 포함 및 독점 캐시의 두 가지 유형입니다. 상위 수준 캐시에 있는 모든 데이터 블록이 하위 수준 캐시에 있는 경우 하위 수준 캐시는 상위 수준 캐시를 포함하는 것으로 알려져 있습니다.

 

반면에 하위 수준 캐시에 상위 수준 캐시에 없는 데이터 블록만 포함되어 있는 경우 캐시는 상위 수준 캐시를 제외한다고 합니다.

 

포괄적인 캐시

 

두 가지 수준의 캐시 메모리가 있는 CPU를 고려하십시오. 이제 블록 X가 요청되었다고 가정합니다. 블록이 L1 캐시에서 발견되면 L1 캐시에서 데이터를 읽고 CPU 코어에서 사용합니다. 그러나 블록이 L1 캐시에서 발견되지 않고 L2에 있으면 L2 캐시에서 가져와 L1에 배치됩니다.

 

L1 캐시도 꽉 차면 L2 캐시가 변경되지 않은 동안 새로운 블록을 위한 공간을 만들기 위해 블록이 L1에서 제거됩니다. 그러나 데이터 블록이 L1과 L2에서 모두 발견되지 않으면 메모리에서 가져와서 두 캐시 수준에 모두 배치됩니다. 이 경우 L2 캐시가 가득 차고 새 데이터를 위한 공간을 만들기 위해 블록이 제거되면 L2 캐시는 L1 캐시에 무효화 요청을 보내므로 제거된 블록도 거기에서 제거됩니다. 이 무효화 절차로 인해 포함 캐시는 비 포함 또는 독점 캐시보다 약간 느립니다.

 

비포함 또는 독점 캐시

 

이제 비포함 또는 전용 캐시의 동일한 예를 살펴보겠습니다. CPU 코어가 블록 X에 대한 요청을 보낸다고 가정해 보겠습니다. 블록이 X인 경우 해당 위치에서 코어에서 읽고 소비됩니다. 그러나 블록 X가 L1에서 발견되지 않고 L2에 있으면 L2에서 L1로 이동합니다. L1에 공간이 없는 경우 L1에서 블록 하나가 제거되고 L2에 저장됩니다. 이것은 공격 대상자 캐시와 같이 L2 캐시가 모집단일 수 있는 유일한 방법입니다. 블록 X가 L1 또는 L2에서 발견되지 않으면 메모리에서 가져와 L1에만 배치됩니다.

 

비포함 비독점 (NINE)

 

NINE (non-inclusive non-exclusive)이라고 하는 덜 일반적으로 사용되는 세 번째 캐시 정책이 있습니다. 여기서 블록은 상위 수준 캐시를 포함하거나 배타하지 않습니다. 마지막으로 같은 예를 살펴보겠습니다. 블록 X에 대한 요청이 있으며 L1에 있습니다. 그런 다음 CPU 코어는 L1 캐시에서 이 블록을 읽고 사용합니다. 블록이 L1에는 없지만 L2에는 있는 경우 L2에서 L1로 가져옵니다. L2 캐시는 포괄적 캐시가 작동하는 방식과 유사하게 변경되지 않습니다.

 

그러나 블록이 캐시 수준 중 하나에서 발견되지 않으면 기본 메모리에서 가져와 L1과 L2 모두에 배치됩니다. 그러나 이로 인해 포함된 캐시와 달리 L2에서 블록이 제거되면 L1 캐시에 대해 동일한 블록을 다시 무효화하지 않습니다.

 

메모리 매핑 살펴보기

캐시에 대한 기본 설명을 중단하고 시스템 메모리가 캐시 메모리와 통신하는 방식에 대해 이야기하겠습니다. 이를 캐시 또는 메모리 매핑이라고 합니다. 캐시 메모리는 블록 또는 세트로 나뉩니다. 이러한 블록은 차례로 n개의 64-byte 행으로 나뉩니다. 시스템 메모리는 캐시와 동일한 수의 블록 (세트)으로 분할된 다음 두 블록이 연결됩니다.

 

 

1GB의 시스템 RAM이 있는 경우 캐시는 8192줄로 분할된 다음 블록으로 구분됩니다. 이를 n-way 연관 캐시라고 합니다. 2방향 연관 캐시의 경우 각 블록에는 각각 두 개의 줄이 포함되고, 4방향에는 각각 네 개의 줄이 포함되며, 8방향에는 여덟 개의 줄이, 16방향에는 16개의 줄이 포함됩니다. 총 RAM 크기가 1GB인 경우 메모리의 각 블록의 크기는 512KB가 됩니다.

 

 

512KB의 4방향 관련 캐시가 있는 경우 RAM은 2,048개의 블록(1GB의 경우 8192/4)으로 분할되고 동일한 수의 4라인 캐시 블록에 연결됩니다.

 

16방향 연관 캐시의 경우와 마찬가지로 캐시는 메모리의 512(2048KB) 블록에 연결된 512개의 블록으로 나뉘며 각 캐시 블록은 16개의 줄을 포함합니다. 캐시에 데이터 블록이 부족하면 캐시 컨트롤러는 프로세서 실행을 계속하기 위해 필요한 데이터로 새 블록 집합을 다시 로드합니다.

 

 

N-way 연관 캐시는 가장 일반적으로 사용되는 매핑 방법입니다. 직접 매핑과 완전히 연결된 매핑이라는 두 가지 방법이 더 있습니다. 전자의 경우 캐시 라인과 메모리 사이에 하드 링크가 있는 반면 후자의 경우 캐시는 메모리 주소를 포함할 수 있습니다. 기본적으로 각 줄은 모든 기본 메모리 블록에 액세스할 수 있습니다. 이 메서드의 적중률이 가장 높습니다. 그러나 구현 비용이 많이 들고 그 결과 대부분 칩 제조업체는 이를 회피하고 있습니다.

 

완전히 연결된 매핑

 

어떤 매핑이 가장 좋습니까?

직접 매핑은 구현하기 가장 쉬운 구성이지만 동시에 효율성이 가장 낮습니다. 예를 들어 CPU가 지정된 메모리 주소(이 경우 1,000개)를 요청하는 경우 컨트롤러는 메모리에서 64바이트 라인을 로드하여 캐시(1,000개에서 1,063개)에 저장합니다. 향후 CPU에 동일한 주소 또는 이 주소 바로 뒤에 있는 주소(1,000 ~ 1,063)의 데이터가 필요할 경우 해당 데이터는 이미 캐시에 저장됩니다. 캐시 라인과 메모리 사이에는 하드 디스크(hard-combination)가 존재하지만 캐시에는 메모리 주소가 포함될 수 있습니다. 기본적으로 각 줄은 모든 기본 메모리 블록에 액세스할 수 있습니다. 이 메서드의 적중률이 가장 높습니다. 그러나 구현 비용이 많이 들고 그 결과 대부분 칩 제조업체는 이를 회피하고 있습니다.

 

 

이 문제는 CPU에 동일한 캐시 라인에 매핑된 메모리 블록에 있는 두 개의 주소가 하나씩 필요할 때 문제가 됩니다. 예를 들어 CPU가 먼저 주소 1,000을 요청한 다음 주소 2,000을 묻는 경우 이 두 주소가 동일한 메모리 블록(블록 크기 128KB) 내에 있기 때문에 캐시 누락이 발생합니다. 반면에, 그것에 매핑된 캐시 라인은 주소 1,000에서 1,063까지 시작하는 라인입니다. 따라서 캐시 컨트롤러는 첫 번째 캐시 라인에 주소 2000에서 2,063까지 라인을 로드하여 이전 데이터를 제거합니다. 이것이 바로 직접 매핑 캐시가 가장 효율적인 캐시 매핑 기술이며 대부분 폐기된 이유입니다.

 

 

완전 연관 매핑은 직접 매핑과 다소 반대입니다. 메모리 캐시 라인과 RAM 메모리 위치 사이에는 하드 링크가 없습니다. 캐시 컨트롤러는 모든 주소를 저장할 수 있습니다. 위의 문제가 발생하지 않습니다. 이 캐시 매핑 기술은 적중률이 가장 높은 가장 효율적입니다. 그러나 이미 설명했듯이 구현하기가 가장 어렵고 비용이 많이 듭니다.

 

 

결과적으로 완전 연관 매핑과 직접 매핑의 하이브리드인 집합 연관 매핑이 사용됩니다. 여기서 모든 메모리 블록은 일련의 라인 (SA 매핑 종류에 따라 다름)에 연결되고 각 라인은 매핑된 메모리 블록의 모든 주소에서 데이터를 보유할 수 있습니다. 4방향 세트 연관 캐시에서 메모리 캐시의 각 세트는 동일한 메모리 블록에서 최대 4개의 라인을 보유할 수 있습니다. 16방향 구성을 사용하면 이 수치가 16개로 늘어납니다.

 

매핑된 세트의 슬롯이 모두 사용되면 컨트롤러는 슬롯 중 하나의 내용을 제거하고 동일한 매핑된 메모리 블록에서 다른 데이터 집합을 로드합니다. 4방향 메모리 캐시에서 8방향 캐시로 설정되는 방법 수가 늘어나면 세트당 사용할 수 있는 캐시 슬롯이 늘어납니다. 그러나 캐시 양을 늘리지 않으면 연결된 각 메모리 블록의 메모리 크기가 증가합니다. 기본적으로 전체 캐시 크기를 늘리지 않고 세트 캐시 세트의 사용 가능한 슬롯 수를 늘리면 세트가 더 큰 메모리 블록에 연결되므로 플러시 수가 증가하므로 효율성이 크게 저하됩니다.

 

반면에 캐시 크기를 늘리면 각 집합에 더 많은 줄이 있게 됩니다(설정 크기도 증가한다고 가정할 때). 즉, 각 메모리 블록에 대해 연결된 캐시 행 수가 더 많다는 의미입니다. 일반적으로 적중률은 증가하지만 전체 수치를 개선할 수 있는 수준에는 한계가 있습니다.

 

원문 출처 hardwaretimes




List of Articles
번호 분류 제목 글쓴이 조회 수 날짜
공지 덕질 공통 이용규칙 및 안내 (업데이트중+ 2024-04-13) 😀컴덕824 5132 2024.04.14
공지 1000P를 모으면 다이소 상품권 1000원을 신청할 수 있습니다. file Private 5117 2024.02.14
344 정보/소식 ‘도둑 시청’ 새 누누티비 문 열었다…OTT 업계 '한숨' 😀컴덕974 182 2023.06.24
343 정보/소식 [루머] AMD Ryzen™ 7000 시리즈 사양 유출, 16코어 Ryzen 9 7950X 최대 5.7GHz 부스트 클럭 file 😀익명094 1487 2023.04.02
342 정보/소식 [루머] AMD Ryzen™ Zen4 3D는 게임에서 일반 Zen 4보다 최대 30% 더 빠를 수 있 file 😀익명949 1566 2023.04.02
341 정보/소식 "수명 짧다지만 그래도" 아직 HDD를 포기할 수 없는 이유 file 😀익명566 1875 2023.04.03
» 정보/소식 1, L2 및 L3 캐시의 차이점: CPU 캐시는 어떻게 작동합니까? file 😀익명640 564 2023.05.22
339 정보/소식 10월에 인텔 14세대 코어 프로세서 출시 file 😀익명666 253 2023.07.26
338 정보/소식 1300W 소비전력? AMD Ryzen™ 7000 마더보드 전원 공급 장치 업그레이드 file 😀익명178 1459 2023.04.02
337 정보/소식 14세대 코어 프로세서, 코어 i를 마지막으로 사용 file 😀컴덕521 2169 2023.10.18
336 정보/소식 1분기 DRAM 현물 가격이 13~18% 오를 것으로 예상 file 😀컴덕793 346 2024.01.09
335 정보/소식 2023년 11월 슈퍼컴퓨터 성능 순위 file 😀컴덕534 43 2023.11.21
334 정보/소식 2023년 2분기 HDD 하드디스크 고장률 백블레이즈 드라이브 통계 file 😀익명854 364 2023.08.06
333 정보/소식 2023년 추천 토렌트 사이트 순위 secret 😀익명963 1425 2023.04.16
332 정보/소식 2ExaFLOPS의 엘 카피탄 슈퍼컴퓨터에 인스팅트 MI300A 설치 시작 file 😀익명988 89 2023.07.07
331 정보/소식 4070 가격인하 및 생산중단 😀익명427 41 2023.04.25
330 정보/소식 474.44 Kepler 지포스 드라이버 보안 업데이트 😀무명의컴덕717 370 2023.09.04
329 정보/소식 5000억 투자해 넷플릭스 맞설 국산 OTT 키운다 😀익명911 147 2023.06.24
328 정보/소식 7600X, 12900KS 및 12700K를 제치고 Userbench 데이터베이스에서 1위 file 😀익명056 1555 2023.04.02
327 정보/소식 AAEON UP 7000, 인텔 N 시리즈 탑재한 세계에서 가장 작은 플랫폼 file 😀익명735 262 2023.07.26
326 정보/소식 AAEON, 앨더레이크/젠4 기반 개발자용 보드 출시 file 😀익명324 387 2023.06.09
325 정보/소식 ADATA, LEGEND 970 PCIe Gen5 SSD 출시 file 😀익명927 78 2023.07.07
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 18 Next
/ 18