Sep 11, 2007

I/O 버스. 1세대 I/O 버스

1세대 I/O 버스 - ISA, MCA, EISA
1. ISA
ISA 버스의 등장은 지난 1981년 IBM PC/XT(오른쪽 사진)의 등장과 함께한다. 당시의 IBM PC/XT에 탑재된 ISA 버스는 8bit의 버스폭을 가지고 있었다. 그 후 1984년 IBM PC/AT가 등장하면서 ISA 버스는 16bit로 확장된다.
초기의 8bit ISA 버스는 4.77MHz로 동작했다. 당시에는 병목현상이라는 것이 있을 수가 없었다. 프로세서도 4.77MHz로 동작했으니까. -_- 그리고 16bit ISA가 등장하면서 프로세서 동작클럭이 6MHz로 되자 ISA의 동작클럭은 6MHz로 높아졌고 이후 8.33MHz까지 올라갔다. 프로세서의 속도는 그 이상으로도 올라갔지만, ISA 버스의 동작속도는 기존에 출시된 다른 관련제품들과의 호환성 및 안정성 등을 위해서 8.33MHz에서 더이상 빨라지지 않았다.
8bit ISA는 62개의 핀을 갖는다. 이 안에는 8개의 데이터 선과 20개의 주소 지정 선이 포함되어 있다. 그리고 16bit ISA는 8bit ISA 슬롯의 뒤쪽으로 36개의 핀이 더해진 형태를 취한다. 그 형태는 아래와 같다.


ISA 슬롯의 사진. 위쪽이 8bit ISA, 아래쪽이 16bit ISA(오른쪽이 메인보드의 뒤쪽(브라켓이 있는 쪽)이다.

16bit ISA 슬롯은 8bit ISA 슬롯과의 하위호환성을 갖는다. 위에서 보이다시피, 16bit ISA는 8bit ISA에서 확장된 형태를 취하고 있기 때문에 8bit ISA 방식의 카드를 꼽을 수 있다. 이러한 하위호환성의 보존으로 사용자들을 보호하기 위한 훌륭한 수단이었으며, 나름대로 적절한 성능을 보여줄 수 있었기 때문에 지금까지도 사용되고 있다.(1981년에 등장한 I/O 버스가 지금까지 사용된다는 것은 실로 놀라운 일이 아닐 수 없다.)
ISA 버스가 낼 수 있는 속도는 어느정도일까? 16bit ISA 버스를 기준으로 계산해보자.
이를 계산하기 위해서는 ISA 버스의 데이터 전송 특성에 대해서 간략히 언급할 필요가 있다. ISA 버스는 한번의 데이터 전송을 하기 위해서 최소한 2번, 많을 경우는 8번까지의 사이클을 필요로 한다. 즉, 아무리 빠르게 데이터를 전송한다 해도 최소한 2클럭에 1회의 전송만이 일어난다는 것이다. 그래서, 이를 바탕으로 데이터 전송률을 계산하면 다음과 같다.
8.33MHz × 2byte(=16bit) × 0.5 (데이터전송이 2클럭당 1번꼴로 일어난다고 가정할 경우) = 8.33MB/s

즉, '최대' 8.33MB/s이며, 최악의 경우라면 2.08MB/s 정도의 데이터 전송률만을 가진다. 데이터 전송은 평균적으로 이들 값의 중간값 정도가 되므로, 약 5MB/s 정도의 평균 데이터 전송률을 가진다고 보는 것이 가장 적절하다.
5MB/s의 속도라고는 하지만 당시로써는 상당히 빠른 속도였다. 처음 등장한 SCSI 제품군이 5MB/s의 속도를 가지고 있었다는 것을 생각해보면 이해가 갈 것이다. 물론 지금도 일부에서는 사용되고 있는 '전설의 I/O'가 바로 ISA이다.

ISA 버스가 아직도 쓰인다굽쇼?
상당히 의외이겠지만, 쓰이고 있다. 특히 전문적인 분야일수록 ISA의 의존도는 더욱 강하다. 초 고가를 자랑하는 방송장비 분야나 음악편집 분야에서 사용되는 장비들 중에는 ISA 타입 장비가 많은데, 이를 사용하는 사람들을 괴롭게 하는 것이, 이들 장비가 한두푼하는것도 아니고 대당 수백 정도 하는 것이기 때문에 이것을 새로 구입하느니 그냥 ISA가 달린 메인보드를 비싸게 주고 사오는 것이 유리하다는 것이다.
산업용으로도 ISA는 아직 유용하다. 대학이나 연구소 등의 실험실에서 외부 장비를 제어할 때에 대개 ISA버스를 사용하는데, 이것은 ISA 버스가 제어하기 쉽고 관련 장비를 만들기도 쉽기 때문이다.
그 결과 산업용 메인보드 제조사 중에는 아직도 ISA 버스를 가지는 메인보드를 생산하는 곳이 많다. 인텔은 800 계열 칩셋으로 접어들면서 ISA의 지원을 중단했지만, 일부 보드 제조사 중에서는 ISA를 별도의 ISA 브릿지를 통해서 지원한다. 이들 메인보드는 그 수요가 대단히 적기 때문에 가격이 일반 메인보드의 4~5배 정도로 높은 편이다. 그래도 ISA를 필요로 하는 분야가 워낙 전문적인 분야이며, 이러한 분야에서 사용되는 장비들의 가격이 상당히 비싸기 때문에 대당 60~80만원의 가격에도 불구하고 이를 사용하는 사용자가 존재한다.


1. ISA
최초로 등장한 32bit I/O 버스인 MCA(MircoChannel Architecture의 약자이다)는 기존의 ISA가 가지는 단점을 극복하기 위한, 새로운 I/O 버스 방식이었다. 이는 모든 면에서 ISA에 비해서 우월했으며, 당시로써는 획기적인 PnP(Plug and Play)를 지원하기까지 했다. 그러나 MCA는 IBM이 세번째로 저지른 실수라고 할 수 있다.

IBM이 저지른 실수
1. 1980년, IBM은 자사의 PC에 채택할 운영체제로써 PC-DOS를 개발하고 이를 채택한다. 이 운영체제의 개발이 바로 마이크로소프트에서 이루어졌다. 즉 마이크로소프트는 IBM에서 운영체제의 개발을 의뢰받은 소프트웨어 개발사였다. 그런데, 이후 IBM은 '소프트웨어'의 가치를 상당히 가소롭게 본 나머지 PC-DOS의 권리를 마이크로소프트사에 매각한다. 그리고 이것은 현재의 소프트웨어왕국 마이크로소프트와 울트라캡숑초절정 갑부인 빌게이츠를 만들어내는 시초이 되었다.
2. 이후 IBM은 IBM PC/XT를 만들면서 이에 관한 법적 권한을 모두 갖고있으되, 이를 행사하는 데에는 별로 관심을 기울이지 않았다. 그 결과 ISA라는 버스 방식은 본래 IBM이 개발하고 IBM이 모든 권리를 가지고 있음에도 불구하고 거의 모든 회사에서 공통적으로 사용하는 것이 되어버리고 만다. 그리고 이것은 이후 32bit 슬롯의 경쟁에서 MCA가 EISA에 밀리는 결정적 계기를 제공하였다.


분명 MCA는 I/O 버스방식 자체로 보았을 때 당시로써는 혁명적이고 획기적이었다. PnP를 지원함으로써, 확장 카드나 메인보드 상에는 어떠한 점퍼도 없었고, 사용자는 이를 소프트웨어를 통해서 설정하였다. 또한, 32bit 버스를 가지고 있어서 최대 33MB/s라는 대단히 빠른(당시로써는..) 속도를 보였고, 이는 32bit의 버스를 가지는 386 프로세서가 최대의 성능을 발휘하게 해 주었다.

ISA 버스와 MCA 버스와의 비교. 아래쪽이 MCA

하지만 IBM은 ISA의 전철을 밟고싶지 않았다. ISA는 본래 IBM의 소유였으나 IBM이 다른 회사들이 이를 사용하는 것을 관대하게 보고 넘어가자 거의 모든 회사가 이를 표준인양 사용하게 되었다. 물론 이것은 ISA가 업계에서 절대적인 표준으로 자리잡게 되는 계기가 되었지만, 한편으로는 IBM PC와 호환되는 IBM 호환기종을 여러 회사들에서 만들어냄으로써, 정작 개발의 중심이 된 IBM이 바깥으로 밀려나게 되는 원인이 되었다. 이러한 일을 막고자 IBM은 MCA 버스로 ISA를 대체하면서 '다른 회사들이 MCA 버스의 라이선스를 받아야지만 이를 사용할 수 있도록' 하였다. 물론 라이선스에는 로열티를 물어야 했다.
이미 널리 퍼질대로 퍼진 ISA를 사용하고 있던 수많은 회사들은 이 결정에 당연히 반발하고 나섰다. 지금까지는 확장슬롯의 사용에 아무런 로열티를 물지 않았는데, 난데없이 새로운 확장슬롯 방식이 등장하더니 로열티를 물어야 된다고 IBM이 주장하기 시작한 것이다. 그래서 이들 호환 PC 제조 회사들은 컨소시움을 구성하여 별도의 32bit 확장슬롯의 표준을 만들어버리고, IBM은 소위 '왕따'가 되어버린다. 이렇게 만들어진것이 바로 EISA이다.

3. EISA
EISA는 라이선스와 로열티 지불을 필요로 하는 MCA의 대안으로 만들어진 32bit I/O 버스이다. EISA의 개발은 컴팩에 의해서 이루어졌다. 컴팩은 EISA를 개발하면서, 만약 자신들도 여기에 라이선스와 로열티를 매긴다면 어떠한 회사도 자신들을 따라오지 않을 것이라는 것을 잘 알고 있었기에, 이를 업체에 무료로 제공하였다. 그러기 위해서 컴팩은 비영리 조직인 EISA 위윈회를 조직하고 이를 통해서 주요 PC 제조사들에게 EISA 기술을 제공하였다.

EISA 버스의 모습은 다음과 같다.

위쪽의 진회색이 16bit ISA, 아래쪽의 갈색이 EISA. 외형적으로는 거의 동일하다

EISA는 기본적으로 8bit/16bit ISA에 대해 완벽한 하위호환성을 갖는다. 위의 일러스트를 보면 이들이 외형적으로는 거의 동일하다는 것을 알 수 있다. 다만, EISA 쪽은 좀 더 촘촘한 형태를 가지고 있다. 그렇다고 해서 핀의 배열이 촘촘해진 것이 아니라, 마치 AGP 같은 2열 구조를 사용한다.

이러한 방법의 채택으로 기존의 ISA를 그대로 사용할 수 있으면서도 EISA 기기까지 사용할 수 있었다. EISA로 변하면서 90개의 핀이 추가되었으며 이것은 55개의 신호선과 35개의 접지선으로 구성되어 있다. 또한 MCA와 마찬가지로 PnP를 통해서 소프트웨어적으로 하드웨어의 설정사항을 변경해 줄 수 있는 기능 역시 탑재하고 이다.
EISA는 33MB/s의 데이터 전송속도를 가지고 있었지만, 커넥터와 관련 기기의 제조비용이 높은 편이었다. 그래서 주로 디스크 어레이나 고속의 네트웍 어댑터 등의 서버 관련 장비들만이 EISA로 제조되었다.
여러가지 장점을 가지고 있기는 했지만, 리거시 버스인 ISA 버스와 연계되어 있기 때문에 동작속도의 한계에 부딪혔고, 이후의 386 시스템이나 486에서부터는 로컬버스에게 자리를 넘겨주게 된다. 물론 서버용으로는 486, 펜티엄 때 까지도 사용되었다. 서버용 메인보드 중에서는 PCI슬롯과 EISA 슬롯을 갖춘 제품들이 존재했다.