테마
컴퓨터 구조의 큰 그림 2
컴퓨터 구조의 큰 그림에서 본 네 가지 핵심 부품, 곧 CPU(Central Processing Unit, 중앙 처리 장치)·메인 메모리·보조기억장치·입출력장치가 실제로 어떻게 데이터를 주고받는지 이어서 다룬다. 부품들은 시스템 버스(system bus)라는 공용 통로로 이어지고, CPU는 이 통로에 주소와 신호를 실어 메모리를 읽고 쓴다. 주소를 싣는 선의 개수가 CPU가 가리킬 수 있는 메모리 크기를 정한다는 점까지 본다.
시스템 버스
부품들은 시스템 버스라는 공용 통로로 연결된다. 통로 하나를 여럿이 함께 쓰므로 부품마다 전용 선을 깔지 않아도 된다. 대신 한 번에 한 부품만 통로를 쓸 수 있어서, 부품이 많아지면 서로 차례를 기다리게 된다. 시스템 버스는 싣는 내용에 따라 주소 버스(address bus), 데이터 버스(data bus), 제어 버스(control bus) 세 갈래로 나뉜다.
| 버스 | 싣는 것 | 방향 |
|---|---|---|
| 주소 버스 | 읽거나 쓸 메모리·장치의 주소 | CPU에서 메모리·장치로 |
| 데이터 버스 | 실제로 오가는 명령어와 데이터 | 양방향 |
| 제어 버스 | 읽기인지 쓰기인지 같은 제어 신호 | 양방향 |
CPU가 메모리의 값을 읽는 과정을 예로 들면 이렇다. CPU가 주소 버스에 주소를 싣고, 제어 버스에 "읽기" 신호를 보낸다. 메모리가 그 주소의 값을 데이터 버스에 실어 돌려준다. 쓰기는 마지막 줄만 반대로, CPU가 데이터 버스에 값을 싣는다.
다이어그램 로딩…
주소 버스의 선 개수는 CPU가 가리킬 수 있는 주소의 범위를 정한다. 선이 32개면 2의 32제곱, 즉 약 43억 개의 주소를 구분할 수 있다. 메모리는 보통 1바이트마다 주소 하나를 붙이므로(바이트 단위 주소 지정), 43억 개 주소는 약 43억 바이트, 즉 4GB를 가리킨다. 주소를 32비트 숫자로 다루는 컴퓨터에서 한 프로그램이 4GB까지만 가리킬 수 있다는 말도, 주소를 이루는 비트가 32개라는 같은 계산에서 나온다.
실제 컴퓨터는 부품이 버스 하나에 모두 매달려 있지 않다. 빠른 메모리 전용 연결과 저장 장치용 PCIe(PCI Express, 고속 확장 버스 규격) 연결처럼 속도별로 통로를 나눠 둔다. 느린 장치가 통로를 쓰는 동안 빠른 메모리 접근까지 기다리지 않게 하기 위해서다. 하지만 "주소를 보내고, 신호를 보내고, 데이터를 받는다"는 원리는 같다.
면접 포인트
- "시스템 버스 세 가지는?" → 주소(단방향), 데이터(양방향), 제어.
- "CPU가 메모리를 읽는 과정은?" → 주소 버스에 주소, 제어 버스에 읽기 신호, 메모리가 데이터 버스로 값을 돌려준다. 쓰기는 CPU가 데이터 버스에 값을 싣는다.
- "주소 버스 32개면?" → 2의 32제곱 개 주소, 바이트 단위로 4GB까지 가리킨다.
