[CS] 컴퓨터 시스템으로의 여행 ch. 3

참새·2024년 4월 27일
0

컴퓨터 시스템

목록 보기
3/5

📌  캐시가 중요하다

이전에 알아본 예제로부터 얻게 되는 교훈은 시스템이 정보를 한 곳에서 다른 곳으로 이동시키는 일에 많은 시간을 보낸다는 것이다.

프로그래머의 관점에서 보면, 이러한 여러 복사과정들이 프로그램의 실제 작업을 느리게 하는 오버헤드여서 시스템 설계자들의 주요 목적은 이러한 복사과정들을 가능한 빠르게 동작하도록 하는 것이다.

더 큰 저장장치들은은 보다 작은 저장장치들보다 느린 속도를 갖고,더 빠른 장치들은 더 느린 장치들보다 만드는 데 더 많은 비용이 든다.

예를들어 일반적인 시스템의 디스크 드라이브는 메인 메모리보다 1,000배 크기가 더 크지만, 프로세서가 디스크에서 1 워드의 데이터를 읽어들이는 데 걸리는 시간은 메모리에서보다 천만 배 더 오래 걸릴 수 있다.

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

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

프로세서가 L2 캐시를 액세스할 때 L1 캐시보단 5배 정도 느리지만, 메인 메모리를 엑세스할 때 보단 5배에서 10배까지 더 빠르다.

캐시 시스템의 이면에 깔려있는 아이디어는 프로그램이 지엽적인 영역의 코드와 데이터를 엑세스하는 경향인 지역성(locality)을 활용하여 시스템이 매우 크고 빠른 메모리 효과를 얻을 수 있다는 것이다.

SRAM(Static Random Access Memory)
컴퓨터의 주 기억장치 중 하나로, 데이터를 저장하는 데 사용되는 반도체 기반의 메모리
데이터가 저장된 상태를 유지하기 위해 외부로부터 주기적으로 리프레시(refresh) 되지 않고, 임의의 주소에 직접 접근하여 데이터를 읽거나 쓸 수 있음

지역성(locality)
프로그램이 특정한 영역의 코드 또는 데이터를 반복적으로 액세스하는 경향을 의미



📌  저장장치들은 계층 구조를 이룬다

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

레지스터 파일은 계층구조의 최상위인 L0를 차지하고 L1 ~ L3 까지 캐시를 사용하는 구조를 보여주고 있으며, 메인메모리는 레벨 4에 위치한다.

메모리 계층구조의 주요 아이디어는 한 레벨의 저장장치가 다음 하위레벨 저장장치의 캐시 역할을 한다는 것이다.



📑  참고

Bryant O'Hallaron 컴퓨터 시스템(제 3판)

profile
응애 나 아기 개발자

0개의 댓글

관련 채용 정보