목차
버스
버스는 여러 하드웨어 구성 요소들 사이에서 데이터를 전송하는 공유 통신 경로입니다. 버스는 크게 데이터 버스, 주소 버스, 제어 버스의 세 가지 주요 유형으로 나눌 수 있습니다.
•
데이터 버스
◦
데이터 버스는 실제 데이터가 컴퓨터의 구성 요소 사이에서 이동하는 경로입니다. 예를 들어, CPU가 메모리로부터 데이터를 읽거나, 메모리가 CPU로 데이터를 쓸 때 데이터 버스를 사용합니다. 데이터 버스의 폭은 한 번에 전송할 수 있는 데이터의 양을 결정합니다. 예를 들어, 64비트 데이터 버스는 한 번에 64비트 데이터를 전송할 수 있습니다.
데이터 버스의 크기가 64bit인데 더 큰 데이터들은 어떻게 가져오는 거지? 라는 의문은 추후에 데이터 버스만을 깊게 다룰 때 설명하겠습니다. 지금은 그저 데이터를 나눠서 가져온다고만 이해하시면 됩니다.
•
주소 버스
◦
주소 버스는 CPU가 특정 메모리 위치나 I/O 디바이스를 지정할 때 사용하는 버스입니다. 주소 버스의 너비는 시스템이 접근할 수 있는 메모리의 최대 크기를 결정합니다. 예를 들어, 32비트 주소 버스는 최대 4기가바이트의 메모리 주소 공간을 지원합니다.
주소 버스를 공부하면서 가장 헷갈렸던 부분이 바로 운영체제의 워드 체계, 즉 비트입니다. 보통 운영체제의 경우 Windows 32bit, 64bit 등 형식의 뒤에 bit 수를 표시하는데, 이는 워드를 뜻합니다.
우리는 보통 32bit, 64bit 운영체제에서 2의 32승 bit인 4GB, 2의 64승 bit인 18엑사바이트까지 메모리를 사용할 수 있다고 알고 있죠.
엄밀히 말하면, 이는 0.01% 틀린 얘기입니다.
주소 버스의 크기가 크고, 만약 32bit 운영체제에서 PAE 기술을 이용해 더 늘리는 기술도 존재합니다. 그럴 경우 32bit 운영체제에서 4GB 이상의 메모리 주소를 사용하는 게 이론적으로 가능합니다.
하지만, 일반적으로 99.99% 이상 사용하지 않습니다. 그 이유는 운영체제뿐만 아니라 해당 운영체제에서 돌아가는 모든 소프트웨어도 대응해야 하기 때문입니다. 즉, 이론상 가능하지만 대부분 사용하지 않는 방식이기에 주소 버스의 크기는 일반적으로 운영체제의 워드 크기와 동일하다고 보시면 됩니다.
추가로 제 개인적인 식견이기 때문에, 버스에 대해 더 깊게 이해하고 싶으신 분들은 버스에 대해 더 알아보는 것을 추천합니다.
•
제어 버스
◦
제어 버스는 시스템 구성 요소들 사이에서 제어 신호들(예: 읽기, 쓰기, 인터럽트 요청 등)을 전송하는 데 사용됩니다. 이 버스는 메모리 접근 요청의 타이밍과 같은 작업들을 동기화하는 데 중요한 역할을 합니다.