본문 바로가기

단축키

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
번호 분류 제목 글쓴이 조회 수 날짜
공지 에디터 업데이트+) GPT AI 기능을 포함하여 강력한 도구들을 사용해보세요 ⬆️ file 🍀플로버404 358 2024.04.16
공지 덕질 공통 이용규칙 및 안내 (업데이트중+ 2024-04-13) 😀컴덕824 666 2024.04.14
공지 1000P를 모으면 다이소 상품권 1000원을 신청할 수 있습니다. file Private 2567 2024.02.14
5280 일반 클리어 키캡 + 투명 축 (아이스실버 리니어) 교체 후기 file 😀컴덕034 276 2024.04.17
5279 일반 직구한 독거미 99배열 드디어 왔다!!! file 😀컴덕703 283 2024.04.17
5278 일반 그램 +뷰 2세대 샀어 file 😀컴덕610 258 2024.04.17
5277 일반 S24울 발열심한데 처음이라그래? 😀컴덕557 288 2024.04.17
5276 일반 공유기 추천 해줄 덬 !! 😀컴덕380 242 2024.04.17
5275 일반 인간을 가스라이팅 하고 자살 방법까지 알려주는 AI의 위험성 file 😀컴덕830 361 2024.04.16
5274 Lec 2 | MIT 6.00 Introduction to Computer Science and Programming, Fall 2008 file 😀컴덕213 445 2024.04.06
5273 일반 프로그래머 진짜 사라질 수도… 우려하던 세계 최초 AI 프로그래머 탄생… 😀컴덕518 337 2024.04.06
5272 정보/소식 중국산 미니PC 주의 비밀번호 터는 '악성코드' 심어 판매 역시 중국은 의심해봐야 돼 file 😀컴덕510 309 2024.04.06
5271 정보/소식 펌) 점보 프레임뽕이 와서 과연 유용한가 테스트를 해보았습니다 😀컴덕814 405 2024.04.06
5270 일반 클리앙 대체 사이트로 여기가 딱인듯 😀컴덕354 427 2024.03.31
5269 일반 21세기 국운 걸린 '반도체 3차 전쟁' (뉴스토리) / SBS file 😀컴덕864 540 2024.03.16
5268 일반 컴고수님들께 질문 2 😀컴덕321 685 2024.03.15
5267 질문 gstatic 이 사이트 무슨사이트인줄 알아??? 1 😀컴덕444 698 2024.03.13
5266 일반 일부러 컴퓨터 수리 사기당해본 유튜버 😀컴덕670 245 2024.02.21
5265 전문지식 wifi5 vs wifi6 와이파이5,6 차이점을 알아보자 file 😀컴덕702 353 2024.02.15
5264 일반 Bluetooth 헤드폰, 이어의 오디오 대기 시간에 대해 이야기해 보겠습니다. 😀컴덕995 442 2024.02.12
5263 일반 Bluetooth 블루투스 레이턴시 및 지연 시간 참고 file 😀컴덕753 420 2024.02.12
5262 28nm로 고정된 "무어의 법칙은 죽었다"는 새로운 증거 추가: 트랜지스터 비용 하락이 10년 전에 ... file 😀컴덕686 279 2024.02.08
5261 올해 4월 출시된 우분투 24.04 LTS 장기 지원 버전은 5년간 업데이트 지원을 받게 된다. file 😀컴덕898 281 2024.02.08
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 264 Next
/ 264