[CS:APP] 1-5~1-6) 캐시 메모리, 저장장치의 계층구조

2023. 3. 10. 23:24Computer Science

728x90
반응형

캐시가 중요하다!

1-4) 프로세서의 작동 원리에서 봤듯이, 시스템이 정보를 한 곳에서 다른 곳으로 이동시키는 일에 많은 시간을 보낸다.

 

기계어 인스트럭션들과 데이터 스트링들의 복사 과정을 간략하게 다시 정리해보면,

데이터의 복사 과정

1) 기계어 인스트럭션들

  • 처음에는 하드디스크에 저장되어 있다.
  • 프로그램이 로딩될 때 메인 메모리로 복사된다.
  • 프로세서가 프로그램을 실행할 때 프로세서로 복사된다.

2) "hello, world\n" 데이터 스트링

  • 처음에는 디스크에 저장되어 있다.
  • 메인 메모리로 복사된다.
  • 디스플레이 장치로 복사된다.

 

더 큰 저장장치들은 보다 작은 저장장치들보다 느리다.

그리고, 더 빠른 장치들은 더 느린 장치들보다 만드는 데 비용이 많이 든다.

 

1) 디스크 드라이브 vs 메인 메모리

구분 디스크 드라이브 메인 메모리
크기 크다 작다
속도 느리다 빠르다
  • 디스크 드라이브1,000배 더 크지만
  • 프로세서가 디스크에서 1 워드의 데이터를 읽어들이는 데 걸리는 시간은
    메모리에서보다 천만 배 더 오래 걸릴 수 있다.

 

2) 레지스터 파일 vs 메인 메모리

구분 레지스터 파일 메인 메모리
크기 작다 크다
속도 빠르다 느리다
  • 레지스터 파일은 수백 바이트의 정보를 저장하는 반면
  • 메인 메모리훨씬 많은 십억 개의 바이트를 저장한다.
  • 그러나 프로세서는 레지스터 파일의 데이터를 읽는 데 메모리보다 100배 더 빨리 읽는다.

 

이러한 프로세서-메모리 간 격차는 지속적으로 증가하고 있다.

메인 메모리를 더 빠르게 동작하도록 만드는 것보다
프로세서를 더 빨리 동작하도록 만드는 것이 더 쉽고 비용이 적게 들기 때문이다.

 

이에 대응하기 위해 캐시 메모리를 활용한다.

캐시 메모리

  • 시스템 설계자는 보다 작고 빠른 캐시 메모리라고 부르는 저장장치를 고안하여
    프로세서가 단기간에 필요로 할 가능성이 높은 정보를 임시로 저장할 목적으로 사용한다.

 

L1 캐시 & L2 캐시

  • 프로세서 칩 내에 들어 있는 L1 캐시는 대략 수천 바이트의 데이터를 저장하고, 레지스터 파일만큼 빠른 속도로 액세스할 수 있다.
  • 좀 더 큰 L2 캐시는 수백 킬로바이트에서 수 메가 바이트의 용량을 가지며, 프로세서와 전용 버스를 통해 연결된다.
  • 프로세서가 L2 캐시를 액세스할 때 L1 캐시보다 5배 정도 느리지만, 그래도 여전히 메인 메모리를 액세스할 때보다는 5배에서 10배까지 더 빠르다.
  • L1 캐시L2 캐시는 SRAM(Static Random Access Memory)라는 하드웨어 기술을 이용해 구현한다.

 

L3 캐시

  • 보다 새롭고 강력한 시스템은 심지어 3단계의 캐시를 갖는 경우도 있다.
    (L1, L2, L3)

 

캐시 시스템의 아이디어

  • 캐시 시스템의 이면에 깔려 있는 아이디어는,
    프로그램이 지엽적인(좁은) 영역의 코드와 데이터를 액세스하는 경향인 지역성을 활용하여
    시스템이 매우 크고 빠른 메모리 효과를 얻을 수 있다는 것이다.
  • 자주 액세스할 가능성이 높은 데이터를 캐시가 보관하도록 설정하면
    빠른 캐시를 이용해서 대부분의 메모리 작업을 수행할 수 있게 된다.

 

🌟 캐시 메모리를 이해하는 응용 프로그래머는 캐시를 활용하여 자신의 프로그램 성능을 10배 이상 개선할 수 있다.

 

저장장치들의 계층구조

💡 계층구조: 전체 시스템이나 구성요소를 여러 계층으로 나누어 구성하는 것

 

캐시 메모리 같은 보다 작고 빠른 저장장치를 프로세서와 좀 더 크고 느린 장치(ex 메인 메모리) 사이에 끼워 넣는 개념은 일반적으로 널리 받아들여지고 사용되고 있다.

 

메모리 계층구조

  • 모든 컴퓨터 시스템의 저장장치들은 메모리 계층구조로 구성되어 있다.
  • 계층의 꼭대기에서부터 맨 밑바닥까지 이동할수록
    저장장치들은 더 느리고, 더 크고, 바이트 당 가격이 싸진다.

 

레벨

  • 레지스터 파일 : 계층구조의 최상위인 레벨 0 (L0)
  • 메인 메모리: 레벨 4

 

캐시

  • 메모리 계층구조의 주요 아이디어는 한 레벨의 저장장치가 다음 하위레벨 저장장치의 캐시 역할을 한다는 것이다.
  • L1L2의 캐시는 각각 L2와 L3의 캐시이다.
  • L3 캐시는 메인 메모리의 캐시이고, 디스크의 캐시 역할을 한다.
  • 일부 분산 파일시스템을 가지는 네트워크 시스템에서 로컬 디스크
    다른 시스템의 디스크에 저장된 데이터의 캐시 역할을 수행한다.
  • 로컬 디스크들은 원격 네트워크 서버에서 파일들을 가져와 보관한다.

 

성능을 개선하기 위해서 다른 종류의 캐시들을 활용할 수 있듯이,
전체 메모리 계층구조에 대한 지식을 활용할 수 있다.

728x90
반응형

'Computer Science' 카테고리의 다른 글

[CS:APP] 1-7) 운영체제의 역할  (0) 2023.03.11
[CS:APP] 1-4) 프로세서의 작동 원리  (0) 2023.03.06
[CS:APP] 1-2~1-3) 컴파일 시스템  (0) 2023.03.06