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

이주희·2023년 3월 10일
0

CS

목록 보기
64/66
post-thumbnail

캐시가 중요하다!

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 캐시는 메인 메모리의 캐시이고, 디스크의 캐시 역할을 한다.

  • 일부 분산 파일시스템을 가지는 네트워크 시스템에서 로컬 디스크
    다른 시스템의 디스크에 저장된 데이터의 캐시 역할을 수행한다.

  • 로컬 디스크들은 원격 네트워크 서버에서 파일들을 가져와 보관한다.


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

profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글