LabHub

컴퓨터 구조 · CPU · 실습

메모리는 하나가 아니다

LabHub 에서 이어서 보기

목표

컴퓨터 구조는 추상적으로 배우면 남는 게 없습니다. **이 파드의 진짜 CPU 로
직접 재 봅니다.**

여기서 재는 숫자들은 나중에 "왜 이 코드가 느리지", "왜 계산이 1원 어긋나지"
같은 질문의 답이 됩니다.

볼 곳

grep -m1 'model name' /proc/cpuinfocat /sys/devices/system/cpu/cpu0/cache/index0/sizecat /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_sizenproc

시간을 잴 때

파이썬은 느립니다. 그래서 읽는 횟수를 고정하고 배열 크기만 바꿔야
파이썬의 느림이 상쇄되고 메모리 차이만 남습니다.

그리고 워밍업 한 번은 꼭 하세요 — 첫 실행에는 배열을 만드는 비용이 섞입니다.

단계

1. CPU 와 캐시 → 01-cpu.txt
2. 캐시 밖 지연 → 02-latency.txt
3. 캐시 라인 → 03-line.md
4. 0.1 + 0.2 → 04-float.txt
5. 더하는 순서 → 05-order.txt
6. 엔디안 → 06-endian.txt
7. 2의 보수 → 07-int.txt
8. 정리 → 08-notes.md

참고

2단계의 숫자는 기계마다 다릅니다. 절대값이 아니라 배수를 보세요 —
캐시 안과 밖이 두 배 넘게 차이 나면 제대로 잰 것입니다.

단계 8개

  1. 이 CPU 와 캐시를 읽는다
  2. 캐시 밖으로 나가면 얼마나 느려지나
  3. 왜 순서대로 읽으면 빠른가
  4. 0.1 + 0.2 는 0.3 이 아니다
  5. 더하는 순서가 결과를 바꾼다
  6. 같은 숫자, 다른 바이트 순서
  7. 2의 보수와 넘침
  8. 세 가지를 정리한다