CPU와 기억장치의 접속

위 그림은 CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로가 되는 시스템 버스를 보여줍니다.
주소 버스(adress bus)는 CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합입니다. 각 주소 선은 하나의 주소 비트를 전송하는 데 사용되며, 전체 주소 선들의 개수가 CPU와 접속될 수 있는 최대 기억장치 용량을 결정해준다. CPU가 발생하는 주소 비트들의 수를
주소 버스의 폭(width)라고 하는데, 그 폭이 16비트라면 최대 65,536개 (즉 64K개) 기억 장소들의 주소를 지정해줄 수 있습니다.
데이터 버스(data bus)는 CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합입니다.
데이터 버스의 폭은 한 번에 전송될 수 있는 데이터 비트의 수를 결정해줍니다.
제어 버스(control bus)는 CPU가 시스템 내의 각종 요소들의 동작을 제어하는데 필요한 신호 선들의 집합입니다.
기본적인 제어 신호들로는 기억장치 읽기/쓰기 신호와 I/O 읽기/쓰기 신호가 있습니다.

주소는 CPU에 의해 발생되어 기억장치와 I/O 장치로 보내지는 정보이기 때문에, 주소 버스는 단방향성입니다.
반면에 데이터 버스는 읽기와 쓰기 동작을 모두 지원해야 하므로 양방향 전송이 가능해야합니다.
CPU가 데이터를 기억장치의 특정 장소에 저장하거나 이미 저장되어 있는 내용을 읽는 동작을엑세스(access)한다 라고 말합니다.
CPU가 특정 기억 장소로부터 데이터를 읽고자 할 때 기억장치로 보내줘야 하는 정보는 주소와 읽기 신호입니다.
그리고는 데이터를 저장하려고하면 해당 기억 장소의 주소와 데이터 및 쓰기 신호를 보내주어야 합니다.
따라서 CPU와 기억장치 사이에는 그러한 정보들의 전송 통로인 주소버스, 데이터 버스 및 제어 신호 선들이 접속되어야 합니다.
흐름을 알아봅시다
CPU는 데이터를 저장할 기억 장소의 주소와 저장할 데이터를 각각 주소 버스와 데이터 버스를 통하여 보내면서 동시에 쓰기 신호를 활성화 시킵니다. 이때 CPU가 기억장치로 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간을기억장치 쓰기 시간이라고 합니다.
쓰기가있다면 읽기도있겠죠?
CPU가 기억장치로부터 데이터를 읽는 동작은, CPU가 데이터가 저장되어 있는 기억 장소의 주소를 주소 버스를 통하여 기억장치로 보내면서 동시에 읽기 신호를 활성화 시킵니다. 그러면 일정 지연 시간이 경과된 후에 기억장치로부터 읽혀진 데이터가 데이터 버스 상에 실리며, CPU는 그 데이터를 버스 인터페이스 회로를 통하여 읽어 들이게 됩니다. 여기서 지연 시간은 주소를 해독하는데 걸리는 시간과 기억장치 내부에서 데이터를 인출하는데 걸리는 시간을 합한 시간을 말합니다. 똑같이 CPU가 주소를 발생한 시간부터 읽기 동작이 완료될 때까지의 시간을기억장치 읽기 시간이라고 합니다.
정리하자면
📥 쓰기 동작
- CPU → 메모리: 데이터를 저장하려는 동작
- 과정:
- CPU가 저장할 주소를 주소 버스를 통해 보냄.
- CPU가 저장할 데이터를 데이터 버스를 통해 보냄.
- 동시에 쓰기 제어 신호를 활성화.
- 메모리는 해당 주소에 데이터를 저장.
- 소요 시간: 이 전체 과정에 걸리는 시간을 쓰기 시간이라 함.
📤 읽기 동작
- 메모리 → CPU: 데이터를 불러오는 동작
- 과정:
- CPU가 읽고 싶은 주소를 주소 버스를 통해 보냄.
- 동시에 읽기 제어 신호를 활성화.
- 메모리는 해당 주소를 해독하고, 데이터를 찾아서 데이터 버스에 실음.
- CPU는 데이터 버스에서 그 값을 읽음.
- 지연 시간: 주소 해독 시간 + 데이터 인출 시간
- 소요 시간: CPU가 주소를 보낸 순간부터 읽기가 완료될 때까지의 시간 = 읽기 시간
여기서 궁금한게 읽기에는 지연시간이 있는데 왜 쓰기에는없지 ? 라는 궁금증이였다 (당연한건가..)
📌 왜 읽기 지연은 강조되고, 쓰기 지연은 덜 강조될까?
📤 읽기(Read) → CPU가 기다려야 함
- CPU가 메모리에서 데이터를 읽어야 그 다음 연산을 할 수 있음.
- 즉, 읽기 지연 시간은 CPU의 성능과 직결됨.
- 예: x = mem[0x1000] → CPU는 mem에서 값이 올 때까지 기다림.
📥 쓰기(Write) → CPU는 기다리지 않아도 됨
- 대부분의 시스템에서는, 쓰기 동작을 메모리에 요청한 뒤에 CPU는 바로 다음 명령어를 수행할 수 있어.
- 이건 비동기적 쓰기 방식 또는 쓰기 버퍼(write buffer) 같은 기술 때문임.
- 예: mem[0x1000] = x → CPU는 그냥 저장하라고만 지시하고, 자기 일 함.
그냥 비동기 처리 느낌이였던것이다.
'CS > 컴퓨터구조' 카테고리의 다른 글
| [컴퓨터구조] CPU와 I/O 장치의 접속 (2) | 2025.04.27 |
|---|---|
| [컴퓨터구조] 정보의 표현과 저장 (0) | 2025.04.24 |
| [컴퓨터구조] 컴퓨터 시스템 개요 및 구조 (0) | 2025.04.22 |