CPU가 메모리에 접근하는 것이 레지스터에 접근하는 것보다 느려 성능상 손해를 본다. 그래서 캐시 메모리 등장
저장장치 계층 구조:
1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다
레지스터 VS 메모리 (RAM) VS USB메모리
cpu와 가장 가까운 레지스터는 램보다 용량이 작지만 접근이 세가지 중 가장 빠르고 비싸다
램은 usb보다 cpu와 가깝고 접근 시간이 빠르지만 usb보다비싸다
즉, 낮은 가격대의 대용량 저장 장치는 속도가 느리고, 높은 가격대의 저장 장치는 속도가 빠르고 용량이 작다. (이 모든 것은 상대적 )
저장 장치들은 CPU에 얼마나 가까운가를 기준으로 계층적 으로 나타낼 수 있다.
캐시메모리?
SRAM: 전원을 끄면 저장된 데이터가 날아가는 휘발성. 전원이 연결되어 있으면 데이터가 사라지지 않는다
DRAM보다 입출력 속도가 빠르다. 집적도가 낮기 때문에 대용량 설계가 어렵다
Cpu의 연산속도가 빨라 메모리에 접근하는 속도가 상대적으로 느리게 느껴져 메모리보다 용량이 작은 캐시 메모리를 cpu와 메모리 사이에 위치시켰다. Cpu의 연산속도와 메모리의 접근 속도를 완화 시킨다.
현대 대부분의 cpu는 캐시 메모리를 사용한다.
캐시메모리는 cpu가 자주 사용할 법한 데이터를 메모리에서 가져와 저장한다.
캐시메모리 : cpu의 연산속도와 메모리 접근 속도의 차이를 줄이기 위한 SRAM기반의 저장장치이다.
캐시 메모리는 하나가 아니다. 계층적으로 구성이 가능하다. cpu내부에 있을 수도 있고 외부에 있을 수도 있다 -> 이를 계층적 캐시 메모리라고 한다.
L1: 레지스터보다 용량은 크지만 L2보다는 작다. 하지만 가장 빠르다. 왜? Cpu와 가장 가까이 위치해 있다. 일반적으로 코어 내부에 위치한다.
L2 : L1보다 용량이 크고 L3보다 작다. 하지만 3보다는 cpu에 빠르게 접근 할 수 있다. 일반적으로 코어 내부에 위치한다.
L3: 메모리보다 용량이 작지만 2,3 보다 크다 메모리보다 빠르지만 2,3 보다 느리다. 일반적으로 코어 외부에 위치한다.
계층적으로 캐시 메모리를 구성하는 것이 현대 cpu캐시 메모리 설게에서 일반적이다.
멀티코어 프로세서
코어마다 따로 캐시를 가질 수도 있고 L3를 공유하는 형태로도 사용이 가능하다
최근엔 이렇게 사용한다. 공유하는 큰 캐시 메모리가 있고 각각의 코어가 가지고 있는 캐시 메모리가 있다.
l3를 각각의 코어들이 공유하는 형태로도 사용한다
1, 2의 경우 각각의 코어에 위치해 있는 경우가 많다.
멀티코어프로세서에선 이렇게 코어를 따로 두기 때문에, 각각의 캐시 메모리들이 각각 코어에있는 캐시들이 서로 내용을 저장하게 될 수도 있다 -> ?
cpu가 작업 도중에 l1,l2, l3, 메모리에 있는 내용을 변경 할 수 있다.
상단 코어의 1캐시를 변경했는데, 하단 1은 모를 수 있다 -> 데이터의 일관성이 깨질 수 있다.
그렇기 때문에 멀티코어 프로세서는 캐시 메모리가 모두 동일한 내용을 갖게 싱크를 맞추는게 중요하다.
분리형 캐시 :
l1캐시 메모리는 cpu와 가장 가까운 캐시 메모리, 가장 빠른 캐시 메모리
l1을 더 빨리 만들기 위해 명령어만을 담고 있는 (L1I), 데이터만을 담고 있는 (L1D) 이런 식으로 관리하기도 한다
상위 계층, 하위 계층을 이루고 있는 저장장치의 특징과 그 차이점을 이해하는 것이 중요
Locality of Reference 참조 지역성의 원리
캐시 메모리는 메모리에 있는 일부 데이터를 저장한다
이 일부는 cpu가 자주 사용할 법한 데이터를 메모리에서 꺼내 미리 저장해야 한다.
캐시히트
이 경우 메모리에 접근 하는 것보다 성능이 좋아진다
캐시미스
이 경우 cpu는 메모리에 접근해야 한다. 성능이 떨어진다.
캐시 적중률 : 높을수록 성능이 높아짐
참조 지역성의 원리
이것을 바탕으로 예측해 저장한다.
cpu가 실행하려고 하는 프로그램은 보통 관련 데이터들끼리 모여있다.
접근한 메모리 공간 근처를 접근하려는 경향이 있다
이 두가지를 사용해 성능을 향상시킨다.
'CS' 카테고리의 다른 글
Thread 스레드, 멀티 프로세스, 멀티 스레드, IPC (0) | 2024.03.03 |
---|---|
프로세스 - 메모리 영역, 상태와 계층 구조, PCB, fork, exec (0) | 2024.02.28 |
메모리의 주소공간 - 논리주소, 물리주소, 베이스 레지스터, 한계 레지스터 (1) | 2024.02.24 |
램의 특징과 종류 - SRAM, DRAM, SDRAM, DDR SDRAM, DDR2, DDR3, DDR4 (1) | 2024.02.24 |
0과 1로 숫자/문자를 표현하는 방법 (0) | 2024.02.22 |