본문 바로가기

단축키

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 정보/소식 마이크론 2023회계연도 2분기 실적 발표 file 😀익명151 1614 2023.03.30
343 정보/소식 사파이어 래피드의 AMX를 사용해 스테이블 디퓨전 성능을 10배 향상 file 😀익명493 1498 2023.03.30
342 정보/소식 AMD/인텔 메인보드 가격이 최근 2년 반 사이에 35~40% 증가 😀익명259 1445 2023.03.30
341 정보/소식 바이든 미국 대통령, PCB 생산을 위해 국방물자생산법을 발동 😀익명287 1664 2023.03.30
340 정보/소식 인텔 데이터센터 / AI 인베스터 웨비나. 차세대 제온의 계획 file 😀익명083 1498 2023.03.30
339 정보/소식 Puget Systems의 2022년 하드웨어 동향 file 😀익명830 1346 2023.03.30
338 정보/소식 MSI A620 메인보드가 유럽에 87유로로 등록 file 😀익명178 1496 2023.03.30
337 정보/소식 지포스 RTX 4060 Ti/4060 출시일 😀익명823 1335 2023.03.30
336 정보/소식 TCL CSOT 초슬림 베젤 디스플레이 양산 중 file 😀익명468 1400 2023.03.30
335 정보/소식 화웨이 토크밴드 B7, 스마트밴드+이어셋 file 😀익명063 1970 2023.03.30
334 정보/소식 레노버, LOQ이라는 게이밍 브랜드를 도입 file 😀익명181 1636 2023.03.30
333 정보/소식 지포스 RTX 4060 Ti의 박스 탬플릿 유출 file 😀익명656 1779 2023.03.30
332 정보/소식 필립스, 44.5인치 듀얼 QHD 커브드 디스플레이 file 😀익명161 1669 2023.03.30
331 정보/소식 DRAM 평균 판매 가격이 올해 2분기에 10~15% 하락 file 😀익명183 1615 2023.03.30
330 정보/소식 NVIDIA, AI를 써서 최대 30배 빠르게 칩 설계를 최적화하는 AutoDMP file 😀익명665 1596 2023.03.30
329 정보/소식 트위터, 개발자용 API의 세로운 요금 체계 발표 file 😀익명868 1637 2023.03.31
328 정보/소식 머스크 등 전문가 1000명 'AI 개발 잠정 중단' 촉구 😀익명219 1650 2023.03.31
327 정보/소식 AMD 라이젠9-5세대 7950X 라파엘 스파이더 차트를 확인해보세요! file 😀익명523 1766 2023.04.02
326 정보/소식 AMD APU가 특별한 이유!! (세잔, 르누아르, 피카소, 레이븐릿지) file 😀익명765 1613 2023.04.02
325 정보/소식 ASUS, ROG Hero, ROG Strix 및 TUF Gaming의 새로운 X670E 메인보드 3종 발표 file 😀익명562 1626 2023.04.02
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 18 Next
/ 18