빠른 기억과 큰 기억
CPU가 계산하려면 값이 곁에 있어야 해요. 그런데 빠른 기억은 작고, 큰 기억은 느려요. 그래서 컴퓨터는 기억을 여러 층으로 나눠 둬요. 가까운 책상과 멀리 있는 책장처럼요.
책상 위와 책장
공부할 때를 떠올려봐요.
손이 닿는 책상 위엔
몇 권만 둘 수 있지만,
바로 집어요.
책장엔 많이 꽂지만,
일어나 가야 하죠.
기억도 똑같아요.
가까우면 빠르고 작고,
멀면 크고 느려요.
가까운 곳과 먼 곳의 맞바꿈.
둘 다 가질 순 없어요.
빠르면서 크기도 한 기억은
너무 비싸거나
만들기 어렵거든요.
그래서 골라야 해요.
조금만 빠르게,
아니면 많이 느리게.
가까운 순서대로 쌓아요
그래서 컴퓨터는
기억을 한 종류로 안 둬요.
CPU에 제일 가까운
아주 작고 빠른 기억부터,
멀고 크고 느린 기억까지
여러 층으로 쌓아요.
위로 갈수록 빠르고 작고,
아래로 갈수록 크고 느려요.
위는 빠르고 작게, 아래는 크고 느리게.
9강에서 본 메모리는
이 층들 중 하나예요.
그 위에 더 빠른
캐시와 레지스터가 있고,
아래엔 더 크고 느린
저장장치가 있어요.
자주 쓸 건 위로,
덜 쓸 건 아래로 두는 거죠.
책상에서 집을까, 책장까지 갈까
CPU가 값 하나를
필요로 할 때,
그게 가까운 캐시에 있으면
눈 깜짝할 새 가져와요.
멀리 메모리까지 가야 하면
그만큼 오래 걸리죠.
같은 값이라도
어디 있느냐로
시간이 갈려요.
가까운 곳 vs 먼 곳, 가져오는 시간.
그래서 컴퓨터는
방금 쓴 값,
곧 또 쓸 것 같은 값을
가까운 캐시에 옮겨둬요.
다음에 필요할 때
멀리 안 가도 되게요.
작은 준비가
큰 시간을 아껴요.
책상에 있나, 없나
CPU가 찾는 값이
가까운 캐시에 이미 있으면,
'적중'이에요.
바로 가져오죠.
없으면 '빗나감'.
멀리 메모리까지 갔다 와야 해요.
그래서 자주 쓰는 걸
캐시에 잘 두는 게 중요해요.
찾는 값이 캐시에 있는지에 따라.
적중이 많을수록
컴퓨터가 빨라져요.
그래서 '자주 쓸 걸
가까이 둔다'는 규칙이
기억을 다루는 핵심이에요.
작은 캐시를
똑똑하게 쓰는 거죠.
전부 빠르게 못 하나요?
'전부 빠른 기억으로
채우면 안 되나요?'
그러면 너무 비싸고,
많이 못 담아요.
'전부 큰 기억으로?'
그러면 너무 느려요.
여러 층은
이 둘 사이의 타협이에요.
골라보며 왜인지 봐요.
전부 빠르게 · 전부 크게 · 여러 층.
자주 쓸 건 작고 빠른 위층에,
덜 쓸 건 크고 느린 아래층에.
이 똑똑한 나눔 덕에
컴퓨터는 빠르면서도
많은 걸 기억해요.
다음 시간엔
이 모든 부품이 어떻게
한 대로 이어지는지 볼게요.