캐시 메모리는 매우 고속의 특수한 메모리입니다. 캐시는 자주 사용되는 메인 메모리 위치의 데이터를 복사하여 저장하는 더 작고 빠른 메모리입니다. CPU에는 명령어와 데이터를 저장하는 다양한 독립적인 캐시가 있습니다. 캐시 메모리의 가장 중요한 용도는 메인 메모리에서 데이터를 접근하는 평균 시간을 줄이는 것입니다.
캐시 메모리의 특징
- 캐시 메모리는 RAM과 CPU 사이의 버퍼 역할을 하는 매우 빠른 메모리 유형입니다.
- What is buffer?
- 컴퓨터에서 버퍼는 장치 간 또는 장치와 애플리케이션 간과 같이 서로 다른 위치 사이에서 이동 중인 데이터를 임시로 저장하는 영역입니다. 버퍼는 일반적으로 RAM에 위치하며, 다양한 장치, 프로그램 및 프로세스가 서로 다른 속도로 작동할 때 모든 것이 원활하게 작동하도록 돕기 위해 사용됩니다.
- 버퍼랑 캐시랑 뭐가 다름?
- 버퍼는 데이터 전송 과정에서 속도 차이를 완화하고 데이터 손실을 방지하는 데 주로 사용됩니다.
- 캐시는 자주 사용하는 데이터의 접근 속도를 높여 시스템 성능을 향상시키는 데 사용됩니다.
-
더보기### 버퍼 (Buffer)
1. **목적**: 데이터 전송의 속도 차이를 완화하고 데이터를 일시적으로 저장하여 시스템의 원활한 작동을 보장합니다.
2. **사용 시기**: 주로 데이터가 한 곳에서 다른 곳으로 이동할 때 사용됩니다. 예를 들어, 입력 장치에서 데이터를 읽거나 출력 장치로 데이터를 쓸 때, 네트워크 통신 시, 또는 파일 입출력 시 사용됩니다.
3. **위치**: 일반적으로 RAM에 위치하며, 특정 프로세스나 장치와 관련된 메모리 공간을 차지합니다.
4. **데이터 유지 시간**: 데이터가 필요한 곳으로 전송된 후에는 버퍼에서 데이터가 제거됩니다.
5. **주된 기능**: 데이터 흐름 제어, 속도 차이 조절, 데이터 손실 방지.
### 캐시 (Cache)
1. **목적**: 데이터 접근 속도를 높이고 성능을 향상시키기 위해 자주 접근하는 데이터나 계산 결과를 저장합니다.
2. **사용 시기**: CPU가 자주 사용하는 데이터나 명령어, 웹 브라우저가 자주 방문하는 웹 페이지, 데이터베이스에서 자주 조회되는 데이터를 저장할 때 사용됩니다.
3. **위치**: CPU 내부(레벨 1, 레벨 2 캐시 등), 메모리와 저장 장치 사이, 또는 웹 브라우저 등 다양한 계층에 위치할 수 있습니다.
4. **데이터 유지 시간**: 데이터는 자주 사용될 때까지 캐시에 유지되며, 필요 없거나 더 이상 자주 사용되지 않는 데이터는 제거됩니다.
5. **주된 기능**: 데이터 접근 시간 단축, 시스템 성능 향상.
### 요약
- **버퍼**는 데이터 전송 과정에서 속도 차이를 완화하고 데이터 손실을 방지하는 데 주로 사용됩니다.
- **캐시**는 자주 사용하는 데이터의 접근 속도를 높여 시스템 성능을 향상시키는 데 사용됩니다.
이 두 가지 메모리 기술은 모두 컴퓨터 시스템의 효율성과 성능을 높이는 데 중요한 역할을 합니다.
- What is buffer?
- 캐시 메모리는 자주 요청되는 데이터와 명령어를 저장하여 CPU가 필요할 때 즉시 사용할 수 있게 합니다.
- 자주 요청되는지 어떻게 알지? -> 지역성, 캐시 알고리즘, 예측 매커니즘
- 캐시 메모리는 메인 메모리나 디스크 메모리보다 비싸지만 CPU 레지스터보다는 경제적입니다.
- 캐시 메모리는 고속 CPU와의 속도 동기화 및 가속화를 위해 사용됩니다.
메모리 계층
- 레벨 1 또는 레지스터: 데이터가 CPU에 즉시 저장되고 수락되는 메모리 유형입니다. 가장 일반적으로 사용되는 레지스터는 Accumulator, Program counter, Address Register 등이 있습니다.
- Accumulator (누산기): 산술 및 논리 연산의 중간 결과를 저장하는 레지스터.
- Program Counter (프로그램 카운터): 다음에 실행할 명령어의 주소를 저장하는 레지스터.
- Address Register (주소 레지스터): 메모리 주소를 저장하는 레지스터.
- 레벨 2 또는 캐시 메모리: 가장 빠른 메모리로, 데이터가 임시로 저장되어 더 빠르게 접근할 수 있습니다.
- 레벨 3 또는 메인 메모리: 컴퓨터가 현재 작업 중인 메모리로, 크기가 작고 전원이 꺼지면 데이터가 유지되지 않습니다.
- 레벨 4 또는 보조 메모리: 메인 메모리만큼 빠르지는 않지만 데이터가 영구적으로 저장되는 외부 메모리입니다.
캐시 성능
프로세서가 메인 메모리의 위치를 읽거나 쓸 때, 먼저 캐시에 해당 항목이 있는지 확인합니다.
- 프로세서가 캐시에서 메모리 위치를 찾으면 캐시 히트가 발생하며 데이터는 캐시에서 읽어집니다.
- 프로세서가 캐시에서 메모리 위치를 찾지 못하면 캐시 미스가 발생합니다. 캐시 미스가 발생하면 캐시는 새 항목을 할당하고 메인 메모리에서 데이터를 복사하여 요청을 충족시킵니다.
- 캐시 메모리 성능은 종종 히트 비율이라는 양으로 측정됩니다.
- 히트 비율(H) = 히트 / (히트 + 미스) = 히트 수 / 총 접근 수
- 미스 비율 = 미스 / (히트 + 미스) = 미스 수 / 총 접근 수 = 1 - 히트 비율(H)
캐시 성능을 향상시키기 위해 더 큰 캐시 블록 크기, 더 높은 연관성, 미스 비율 감소, 미스 패널티 감소, 캐시에서 히트 시간 감소 등을 사용할 수 있습니다.
캐시 매핑
캐시 메모리를 위한 세 가지 다른 매핑 유형이 있습니다:
- 직접 매핑: 가장 간단한 기술로, 메인 메모리의 각 블록을 하나의 가능한 캐시 라인에 매핑합니다. 메모리 블록을 특정 캐시 라인에 할당합니다. 이전에 메모리 블록이 차지한 라인이 새 블록을 로드할 때 기존 블록은 삭제됩니다.
- 연관 매핑: 연관 메모리를 사용하여 메모리 워드의 내용과 주소를 저장합니다. 모든 블록은 캐시의 모든 라인에 갈 수 있습니다. 이는 모든 워드를 캐시 메모리의 어느 곳에나 배치할 수 있게 합니다.
- 연관 메모리가 뭐임? -> 주소 기반이 아니라 내용 기반으로 데이터를 탐색하는 메모리 유형
- 집합 연관 매핑: 직접 매핑의 단점을 보완한 방식으로, 여러 라인을 함께 묶어 집합을 만듭니다. 집합 연관 매핑은 특정 인덱스 주소에 대해 캐시에 두 개 이상의 메모리 워드를 가질 수 있도록 합니다.
캐시 메모리의 응용
- 기본 캐시: 프로세서 칩에 항상 위치한 기본 캐시입니다. 이 캐시는 작으며 접근 시간이 프로세서 레지스터와 비슷합니다.
- 보조 캐시: 기본 캐시와 나머지 메모리 사이에 위치한 보조 캐시로, 레벨 2(L2) 캐시라고도 합니다. 종종 레벨 2 캐시도 프로세서 칩에 위치합니다.
- 공간적 지역성: 참조 지점과 가까운 위치에 데이터가 있을 가능성이 높다는 원칙입니다.
- 시간적 지역성: 최근에 사용된 데이터가 다시 사용될 가능성이 높다는 원칙입니다.
캐시 메모리의 장점
- 캐시 메모리는 메인 메모리와 보조 메모리보다 빠릅니다.
- 캐시 메모리에 저장된 프로그램은 더 짧은 시간에 실행될 수 있습니다.
- 캐시 메모리의 데이터 접근 시간이 메인 메모리보다 짧습니다.
- 캐시 메모리는 CPU가 자주 사용하는 데이터와 명령어를 저장하여 CPU 성능을 향상시킵니다.
캐시 메모리의 단점
- 캐시 메모리는 기본 메모리와 보조 메모리보다 비쌉니다.
- 캐시 메모리에는 데이터가 일시적으로 저장됩니다.
- 시스템이 꺼지면 캐시 메모리에 저장된 데이터와 명령어는 사라집니다.
- 캐시 메모리의 높은 비용은 컴퓨터 시스템의 가격을 증가시킵니다.
'컴퓨터 > 운영체제 OS' 카테고리의 다른 글
Virtual Memory 가상메모리, 메모리 가상화 (0) | 2024.06.13 |
---|---|
[OSTEP] 프로그램이란? 가상화? 병행성? 영속성? (0) | 2024.05.30 |
세마포어는 남녀관계의 추상화다 (0) | 2024.05.30 |
UNIX Process States (0) | 2024.05.27 |
리눅스 런타임 메모리 이미지 (0) | 2024.05.27 |