본문 바로가기
책/혼공 컴퓨터구조+운영체제

컴퓨터 구조 - 저장 장치 계층구조, 캐시 메모리, 캐시 적중률, 참조 지역성의 원리(시간지역성,공간지역성)

by 코딩하는 돼징 2023. 12. 5.
반응형

CPU는 프로그램을 실행하는 과정에서 메모리에 저장된 데이터를 빈번하게 사용한다. 하지만 CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다.

CPU가 연산을 빨리 한다 해도 메모리에 접근하는 시간이 느리면 CPU의 빠른 속도는 아무런 쓸모가 없어지므로 이를 극복하기 위한 저장 장치가 바로 캐시메모리이다.


저장 장치는 일반적으로 아래와 같은 명제를 따른다.

1) CPU와 가까운 저장 장치는 빠르고 멀리 있는 저장 장치는 느리다.

2) 속도가 빠른 저장 장치는 저장 용량이 작고 가격이 비싸다.

낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 하고 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격은 감수해야 한다.


저장 장치 계층 구조(Memory Hierachy)

CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있다. 메모리라는 용어는 RAM이 아닌 일반적인 저장 장치를 말한다.


캐시 메모리(Cache Memory)

CPU와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반의 저장 장치이다.

CPU의 연산속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생했다.

CPU가 매번 메모리에 왔다갔다 하는건 시간이 오래 걸리니 메모리에서 CPU가 사용할 이부 데이터를 미리 캐시 메모리로 가지고 와서 쓴다.

 

 

CPU를 집으로 메모리에 접근하는 행위를 물건을 사러 가는 것으로 비유하자면 메모리는 마치 물건이 많고 집과는 멀리 떨어져 있어 왕복이 오래 걸리는 대형마트이고 캐시 메모리는 물건이 많지는 않고 집과 가까이 있는 편의점 같다고 보면 된다.


캐시 메모리까지 반영한 저장 장치 계층 구조


컴퓨터 내부에는 여러 개의 캐시 메모리가 있다.

캐시 메모리들은 CPU와 가까운 순서대로 계층을 구성한다. 코어와 가장 가까운 캐시메모리를 L1(Level1)캐시,L2(Level2)캐시,L3(Level3)캐시이다.

캐시 메모리의 용량

L1 < L2 < L3

캐시 메모리의 속도

L2 < L2 < L1

캐시 메모리의 가격

L3 < L2 < L1

CPU가 메모리 내에 데이터가 필요하다고 판단하면 우선 L1캐시에 해당 데이터가 있는지 알아보고 없다면 L2,L3캐시 순으로 데이터를 검색한다.


멀티 코어 프로세서의 캐시 메모리

멀티코어 프로세서에서 L1-L2-L3 캐시는 일반적으로 다음과 같이 구현된다. L1캐시와 L2캐시는 코어마다 고유한 캐시 메모리로 할당되고 L3캐시는 여러 코어가 공유하는 형태로 사용된다.


분리형 캐시(Split Cache)

코어와 가장 가까운 레벨의 L1캐시를 명령어와 데이터로 구분한 것이다. 이는 캐시 메모리의 일부를 명령어 저장에 사용하고 나머지는 데이터 저장에 사용한다. 이는 독립적으로 동작하기 떄문에 병렬로 처리할 수 있어 작업의 성능을 최적화하는데 도움이 된다.L1I(명령어 캐시)프로세서는 명령어를 미리 읽어들여야 하므로 명령어 캐시는 명령어의 빠른 접근을 제공하여 명령어 처리를 가속화한다.L1D(데이터 캐시)프로세서가 데이터를 처리 하는 동안 데이터 캐시는 데이터에 빠르게 액세스할 수 있도록 도와준다.


캐시 메모리의 계층 구조를 알았다미녀 이제 저장 장치 계층 구조를 세부적으로 그릴 수 있다.

 


 

캐시 메모리는 메모리보다 용량이 작다. 당연하게도 메모리의 모든 내용을 저장할 수 없다.

그렇다면 뭘 저장해야 할까?

CPU가 자주 사용할 법한 내용을 예측하여 저장한다.


01 캐시 히트(Cache Hit)

자주 사용할 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에게 활용할 경우


02 캐시 미스(Cache Miss)

자주 사용할 것으로 예측하여 메모리에 저장했지만 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우


03 캐시 적중률(Cache Hit Ratio)

캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

 

보통 우리가 사용하는 컴퓨터의 캐시 적중률은 대략 85~95%이다.


캐시 메모리의 이점을 제대로 활용하려면 CPU가 사용할 법한 데이터를 제대로 예측해서 캐시 적중률을 높여야 한다. 그렇다면 CPU가 사용할 법한 데이터는 어떻게 알 수 있을까?

 

참조 지역성의 원리

CPU가 메모리에 접근할 떄의 주변 경향을 바탕으로 만들어진 원리이다.

01 시간 지역성(TimeLocality)

CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향을 의미한다.

예시 : 변수에 저장된 값은 일반적으로 한 번만 사용되지 않고 프로그램이 실행되는 동안 여러번 사용된다. 즉 CPU는 최근에 접근했던 변수에 저장된 공간을 여러 번 다시 접근하려는 경향이 있다.


02 공간 지역성(spatial locality)

CPU는 접근한 메모리 공간 근처를 접근하려는 경향의미한다.

예시 : 프로그램이 실행될 때 관련된 데이터들은 서로 근처에 모여 있다. 예를 들어 CPU가 워드 프로세서 프로그램을 실행할때 워드 프로세서 프로그램이 모여있는 공간 근처를 집중적으로 접근할 것이다.

 

 

 

 

참고 :  본 내용은개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제강의를 수강하여 작성하였습니다. https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

 

 

반응형

댓글