seegongsik
구조

어떻게 빠른 기억과 큰 기억

CPU가 계산하려면 값이 곁에 있어야 한다. 그런데 빠른 기억은 작고 큰 기억은 느리다. 그래서 컴퓨터는 가까운 책상과 멀리 있는 책장처럼 기억을 여러 층으로 나눠 둬요.

01

책상 위와 책장

공부할 때를 떠올리면 된다.
손이 닿는 책상 위에는 몇 권밖에 못 두지만 바로 집을 수 있다.
책장에는 많이 꽂을 수 있지만 일어나서 가야 한다.
기억도 똑같아서, 가까우면 빠르고 작고 멀면 크고 느려요.

빠르기
빠름
크기
작음
책상 위는 빠르게 집지만, 둘 수 있는 게 적어요.

가까운 곳과 먼 곳, 무엇을 얻고 무엇을 내주는지.

둘 다 가질 수는 없다.
빠르면서 크기까지 한 기억은 너무 비싸거나 만들기 어렵기 때문이다.
그래서 조금만 빠르게 둘지, 많이 담되 느리게 둘지 골라야 해요.

02

가까운 순서대로 쌓기

그래서 컴퓨터는 기억을 한 종류로 두지 않는다.
CPU에 가장 가까운 아주 작고 빠른 기억부터 멀고 크고 느린 기억까지 여러 층으로 쌓는다.
위로 갈수록 빠르고 작고, 아래로 갈수록 크고 느려요.

레지스터
CPU 바로 안에 있는, 가장 빠르고 가장 작은 기억이에요.

위는 빠르고 작게, 아래는 크고 느리게.

9강에서 본 메모리는 이 층들 가운데 하나다.
그 위에는 더 빠른 캐시와 레지스터가 있고, 아래에는 더 크고 느린 저장장치가 있다.
자주 쓸 것은 위로, 덜 쓸 것은 아래로 두는 셈이에요.

03

책상에서 집을까, 책장까지 갈까

CPU가 값 하나를 필요로 할 때, 그 값이 가까운 캐시에 있으면 눈 깜짝할 새 가져온다.
멀리 메모리까지 가야 하면 그만큼 오래 걸린다.
같은 값이라도 어디에 있느냐에 따라 시간이 갈려요.

캐시에서 (가까움)빠름
메모리에서 (멂)느림
가까운 캐시에서 가져오면 훨씬 빨라요. 그래서 자주 쓰는 값을 캐시에 둬요.

가까운 곳 vs 먼 곳, 가져오는 데 걸리는 시간.

그래서 컴퓨터는 방금 쓴 값이나 곧 다시 쓸 것 같은 값을 가까운 캐시에 옮겨 둔다.
다음에 필요할 때 멀리 가지 않아도 되도록 말이다.
작은 준비가 큰 시간을 아껴요.

04

책상에 있나, 없나

CPU가 찾는 값이 가까운 캐시에 이미 있으면 '적중'이고, 바로 가져온다.
없으면 '빗나감'이라 멀리 메모리까지 다녀와야 한다.
그래서 자주 쓰는 값을 캐시에 잘 두는 것이 중요해요.

CPU가 값을 찾아요
→ 캐시를 봐요
→ 있다!
적중 · 바로 가져와요
캐시에 있으면 적중(빠름), 없으면 빗나감(메모리까지 갔다 와 느림).

찾는 값이 캐시에 있는지 없는지에 따라 길이 갈린다.

적중이 많을수록 컴퓨터는 빨라진다.
'자주 쓸 것을 가까이 둔다'는 규칙이 기억을 다루는 핵심인 까닭이다.
작은 캐시를 영리하게 쓰는 것이에요.

05

전부 빠르게 만들 수는 없을까

전부 빠른 기억으로 채우면 너무 비싸고 많이 담지 못한다.
전부 큰 기억으로 채우면 너무 느리다.
여러 층은 이 둘 사이의 타협이다.
아래에서 세 가지를 골라 보면 그 이유가 드러나요.

빠르기
크기
값(가격)
빠르기도 크기도 잡고, 값도 알맞아요
여러 층이 정답인 건, 빠르기와 크기를 둘 다 어느 정도 잡으면서 값도 맞기 때문이에요.

전부 빠르게 · 전부 크게 · 여러 층.

자주 쓸 것은 작고 빠른 위층에, 덜 쓸 것은 크고 느린 아래층에 둔다.
이렇게 나눈 덕분에 컴퓨터는 빠르면서도 많은 것을 기억한다.
다음 레슨에서는 이 모든 부품이 어떻게 한 대의 컴퓨터로 이어지는지 알아봐요.

한 줄 정리빠른 기억은 작고 비싸고 큰 기억은 느리다. 그래서 컴퓨터는 기억을 가까운 순서대로 여러 층으로 쌓고, 자주 쓸 값을 가까운 캐시에 두어 적중을 늘린다. 작은 준비가 큰 시간을 아끼는 셈이에요.
← 구조
이 페이지가 도움 됐다면 후원하기