운영체제1 Articles

  1. 2006/11/25 버스의 중요성..

Bus란 컴퓨터 시스템 내의 장치들이 정보 교류를 위하여 공유하는 배선(wires)의 집합(set)을 말한다.  네트워크에서의 버스란 회선에 연결된 모든 장치들에 신호가 분배되거나 또는 취득되는 전송통로를 말한다.
Bus는 마치 차도와 같다. 자동차가 차도로 다니는 것처럼, 컴퓨터 내의 모든 디지털 신호(자료, 명령, 주소 등)는 bus를 통하여 이동한다.

차도는 도로의 폭에 따라서 2차선 도로, 4차선 도로, 8차선 도로 등으로 구분한다. 도로의 폭이 넓으면 넓을수록 더 많은 자동차가 정체 없이 다닐 수 있다. Bus 역시 폭(data path 폭 및 address path 폭)이 넓을수록 더 많은 정보를 전송할 수 있다. 8 bit bus는 외길, 16 bit bus는 2차선, 32 bit bus는 4차선 도로라고 생각하면 이해하기가 쉬울 것이다.

도로의 폭과 차선에 따라서 주행 제한 속도가 달라지는 것처럼, bus도 폭에 따라서 전송 속도가 달라진다. 예를 들면, 16 bit ISA bus는 8.33 MHz의 속도로 8 MB/s의 정보를 전송할 수 있으나 32 bit PCI bus는 33 MHz의 속도로 최대 132 MB/s의 정보를 전송할 수 있다. (16 bit ISA bus와 32 bit PCI bus를 단순하게 bit 수로 비교할 때는 2배 차이이지만, 전송 속도는 4배, 최대 전송률은 무려 16.5배나 차이가 남을 주목할 필요가 있다. 이는 bit 수와 함께 bus 방식의 중요성을 알게 해주는 하나의 예이다)

차도에는 신호등, 교통 경찰, 중앙통제실이 있어 충돌 사고를 예방하고 질서를 지키며 주행하도록 통제한다. 컴퓨터 시스템도 각종 정보가 충돌 없이 목적지에 도달하도록 장치들의 bus 이용을 조절하고 있다.

차도에 교통 체증이 발생하는 것처럼 bus에도 체증이 발생하며 차도에 병목 현상이 있는 것처럼 bus에도 병목 현상이 있다. 추석, 설날, 연휴를 맞아 한꺼번에 많은 차들이 같은 방향으로 이동하기 시작하면 평상시보다 훨씬 오랜 시간이 걸려 목적지에 도착하게 된다. 컴퓨터도 장치들이 한꺼번에 많은 양의 정보를 bus로 전송하면 bus 체증이 발생하여 시스템의 처리 속도가 느려진다. 특히 같은 bus를 이용하여 대용량의 3D 그래픽 정보와 하드디스크 전송이 동시에 이루어지면 bus는 포화 상태가 되어 시스템이 비정상적으로 급격히 느려지는 병목현상이 발생한다.


▶ 역할 : 컴퓨터를 구성하고 있는 모든 장치들(프로세서, 메모리, 디스크 드라이브 컨트롤러, 입출력 포트들...)은 모두 bus를 통하여 함께 연결되어 있으며 bus를 통하여 정보를 전송한다.

Bus의 어떤 선들은 data를 전송하고 어떤 선들은 정보가 있는 위치(location, 또는 주소: address)를 전송하며 또 어떤 선들은 조절 신호(control signals)를 전송하여 시스템의 각 장치들이 충돌 없이 bus를 사용할 수 있게 만든다.

Bus는 한 번에 전송할 수 있는 bit 수로 그 능력을 나타낸다. 8 bit data bus는 한 번에 8 bit의 data를 전송하며 16 bit data bus는 한 번에 16 bit를 전송할 수 있다.

Bus는 내부 data 전송 역할 뿐 아니라 외부 장치들을 시스템과 연결시키는 통로 역할도 한다. 마더보드에는 여러 개( 및 여러 종류)의 확장 슬롯(expansion slots)이 있어 이곳에 확장 카드를 설치하면 시스템과 결합하여 마치 내부 장치처럼 동작한다.

Bus는 제작 회사나 국제적인 규약에 의하여 만든 배선의 조합이므로 미리 정한 원칙에 따라서 배선한다. 컴퓨터는 기종마다 각기 독자적인 bus 형태를 사용하기 때문에 IBM 호환 PC에 사용하는 장치를 Apple(Macintosh, NuBus 사용), DEC(Alpha, TurboChannel 사용), Sun(SPARC, SBus 사용) 등의 기종이 다른 컴퓨터에 사용할 수 없다.


▶ 참고: Bus와 Port의 차이

Bus는 여러 각종 장치들이 공유할 수 있는 각종 전송 경로(data path)의 총칭이다. ISA bus나 PCI bus를 예로 들면 그래픽카드, 디스크 컨트롤러, 사운드카드, 네트워크 어댑터 등 여러 가지 장치들이 같은 bus를 이용하여 신호를 교환한다.

그 반면, port는 어떤 한 가지 장치가 전용으로(공유가 아님) 사용하는 bus를 말한다. 대표적인 port로 AGP(Accelerated Graphics Port)를 들 수 있는데, 이는 그래픽카드만 사용하는 전용 경로이다. Serial Port(직렬 포트 또는 COM Port: 통신 포트), Parallel Port(병렬 포트 또는 Printer Port) 역시 마우스, 프린터, 스캐너 등의 개별 장치가 한 개의 포트만 이용하여 시스템과 연결할 수 있으며 하나의 포트를 한 개 이상의 장치가 공유할 수는 없다. (AGP와 직렬/병렬 포트의 차이는 AGP가 그래픽카드 전용임에 반하여 직렬/병렬 포트는 다용도로 활용할 수 있다는 점이다)

Bus와 Port의 차이를 잘 설명할 수 있는 것이 USB(Universal Serial Bus)이다. USB는 마치 직렬 포트나 병렬 포트처럼 시스템과 외부 장치를 연결하는 역할을 하지만, 키보드, 마우스, 모뎀, 스캐너 등 USB 커넥터를 갖춘 각종 장치들(최대 256 가지 장치)을 동시에 연결하여 함께 사용(공유)할 수 있으므로 bus라고 한다.

그렇다고 해서 bus와 port가 완전히 다른 것이라고 할 수는 없다. Port 역시 bus의 일종이지만 어떤 장치가 혼자 독점하여 사용하는 bus일 뿐이다.

ISA (Industrial Standard Architecture) bus

ISA bus는 IBM사가 오리지널 PC를 발표할 때 표준화하여 지금까지 사용하고 있는 가장 오래된 bus이다. ISA bus는 시스템 정체의 주 요인이므로 하드웨어 제작사들의 상호 협약에 의하여 2000년까지 점차적으로 없앨 예정이다.

ISA bus에는 8 bit와 16 bit, 두 가지가 있다.

▶ 8 bit ISA bus

한번에 8 개의 bit를 동시에 전송할 수 있는 bus이다. 8 bit ISA bus는 마치 외길과 같아서 일방 통행만 가능하다. 어떤 신호가 이 bus를 통과할 때, 다른 신호들은 그 신호 전송이 끝날 때까지 기다려야 한다. 만약 그 신호가 느린 것이라면 대기 시간도 그만큼 길어진다. 초기의 사운드 카드, 직렬 포트(Serial Port)에 연결된 마우스나 외장 MODEM, 내장 MODEM 등이 8 bit ISA bus를 사용한다.

▶ 16 bit ISA bus

한번에 16 bit를 동시에 전송할 수 있는 bus이다. 16 bit ISA bus는 2차선 도로와 같아서 양방향 통행이 가능하므로 8 bit에 비하여 정체/대기 시간이 적은 편이다. 대부분의 사운드 카드, 초기의 그래픽 카드, ISA bus용 Super I/O 컨트롤러, 병렬 포트용 프린터, ISA bus용 LAN 카드 등이 이 bus를 사용한다.  16 bit ISA bus는 1984년부터 사용하기 시작하였다.

MCA(Micro Channel Architecture) bus

MCA bus는 IBM이 ISA bus의 한계를 벗어나기 위하여 87년에 개발한 32 bit bus이다. 경쟁사를 의식하여 ISA와 같이 개방하지 않고 특허 사용료를 요구하자 다른 회사들이 이에 반발하여 EISA bus를 개발하였다. MCA bus는 bus mastering과 PnP 기능을 지원하는 훌륭한 구조임에도 불구하고 높은 제품 가격과 폐쇄적인 구조 공개로 인하여 보급에 실패하였다.

EISA(Extended ISA) Bus

1988년, 'The Gang of Nine'으로 불리는 9 개(AST, Compaq, Epson, HP, NEC, Olivetti, Tandy, Wyse, Zenith)의 컴퓨터 제작 회사들이 연합하여 IBM의 MCA bus 대치용으로 만든 32 bit bus 표준이다. EISA 역시 bus mastering과 PnP를 지원하고 ISA 호환 능력까지 갖춘 우수한 bus이지만 구조가 복잡하여 제작/공급 가격이 높으므로 고급형 Server 시스템에 일부 사용될 뿐, 대중화에는 실패하였다.

VESA Local bus(VLB)

VESA(Video Electronics, Standard Association) bus는 92년에 발표하여 대중화에 성공한 32 bit bus로써 33 MHz로 동작한다. 486 시스템에서 그 전성기를 누렸으나 구조적으로 복잡하여 제작 단가를 줄이기에는 한계가 있었다. VESA bus는 그래픽 카드와 디스크 컨트롤러, 두 가지 종류의 확장 카드용으로 사용하였는데, bus mastering을 제대로 지원하지 못하여 한 가지 VESA 장치가 32 bit로 동작할 때 다른 한 가지는 대기하는 병목현상이 발생한다.


div>