커뮤니티
 
 
 
 
 
커뮤니티 추천게시물       운영진 선정 | 추천순 | 최근댓글달린순 | 갤러리(포토)

 
 
 
부품 / 견적 추천
 
[MSD 태형준] PCI-X 버스
 태형준
 조회 : 1600 ,2001/07/05 00:00


  첨부사진 1. 클릭시 원본 크기로 보실 수 있습니다.

마이크로소프트웨어 7월호에 이민우님께서 쓰신 글 입니다.

입출력 버스, PCI-X로 세대교체 예고

컴퓨터에 연결된 모든 데이터는 CPU로 통한다. 따라서 CPU가 받은 데이터를 얼마나 빠른 시간 안에 처리할 수 있느냐에 따라 컴퓨터의 성능이 좌우된다. 하지만 이는 다양한 주변기기의 역할을 간과한 것이다. CPU는 말 그대로 데이터를 처리하고 제어할 뿐이다. 데이터 가공이나 저장 등 나머지 역할은 컴퓨터의 다른 부분이 담당한다. 이번호에는 데이터를 주고받을 때의 이동 통로인 버스에 대해 알아보자.


이민우 (마이크로소프트웨어 7월호)
2001/07/04


대부분의 사람들은 컴퓨터의 CPU, 메모리, 그래픽 카드 등에만 관심을 갖는다. 하지만 이런 장치가 CPU로 데이터를 보내고 메모리에서 데이터를 읽어오는 일은 사람들이 중요하게 생각하지 않는 버스 를 통해 이뤄진다.

버스는 각 장치가 데이터를 주고받을 때 공동으로 쓰는 이동 통로이다. 따라서 각 장치의 처리속도가 아무리 빠르더라도 버스에서 데이터를 전해줄 때까지 기다려야 한다.

버스의 역사
버스는 마이크로프로세서를 쓴 작은 컴퓨터에서도 존재한다. 비록 그 용도와 종류가 약간 다르지만 여러 장치가 함께 쓰는 데이터 이동 통로라는 기본 개념은 똑같다. 이처럼 버스는 컴퓨터에 있어 아주 기본적이면서도 중요한 이동 수단이다.

우리가 흔히 쓰고 있는 개인용 컴퓨터에서는 몇 종류의 버스를 들 수 있다. 우선 노스브리지와 CPU를 이어 주는 시스템 버스와 컴퓨터의 각종 주변장치의 데이터 입출력에 쓰는 I/O 버스 등이 있다. 그리고 이들 버스는 각각의 칩셋에서 관리하고 있다.

시스템 버스
노스브리지로 부르는 메인보드 칩셋과 CPU를 이어주는 시스템 버스는 프로세서의 성능과 시스템 전체의 성능을 결정짓는 중요한 요소다. 처음에는 캐시, 칩셋, 프로세서를 잇는 통로로서 하나의 버스로 존재했다.

하지만 펜티엄 프로부터 채용된 DIB(Dual Independent Bus) 아키텍처는 이런 시스템 버스를 캐시와 프로세서, 노스브리지와 프로세서 사이의 통로를 분리함으로써 보다 효율적으로 데이터를 전송할 수 있게 바뀌었다. 물론 변한 것은 이 뿐만이 아니다.

시스템 버스의 동작 클럭 역시 계속해서 빨라져왔다. 초기 펜티엄 2에서는 66MHz였던 것이 100MHz로, 그리고 133MHz로 빨라졌으며 펜티엄 4에 이르러서는 400MHz로 올라갔다. 이는 비단 인텔뿐만 아니라 AMD 역시 마찬가지다.

초기 인텔 호환 프로세서를 만들 때는 66MHz에서 100MHz까지 동일했지만, 애슬론 프로세서를 내놓으면서부터는 200MHz와 266MHz 시스템 버스를 쓰고 있다. 그리고 시스템 버스의 동작 클럭이 올라감에 따라 각 클럭의 에지(Edge, 각 클럭이 상승하고 하강하는 지점)를 효과적으로 써서 안정성을 기하면서 동작 속도를 올리는 기술도 채용됐다.

각 클럭의 상승과 하강 부분에 데이터를 모두 보냄으로써 클럭의 효율을 높이고 실제 고속 클럭에 대한 회로 설계 문제도 해결했다. 이것이 바로 펜티엄 4의 400MHz 버스(100x4)와 애슬론의 200MHz(100x2)와 266MHz(133x2) 버스다.

시스템 버스가 향상되는 이유
시스템 버스가 향상되는 이유는 아주 간단하다. 프로세서의 동작 클럭이 빨라지고 명령어 처리 능력이 향상됨에 따라 기존보다 더 많은 데이터를 처리하기 때문. 따라서 시스템 버스가 느리다면 프로세서의 효율이 떨어질 우려가 있으며 시스템 전체의 병목 현상도 심해져 각 부분의 장치 역시 더 많은 지연 시간을 갖게 된다.

특히 시스템 버스와 프로세서의 동작 클럭이 5배 이상 차이나면 효율이 크게 떨어진다. 그러므로 시스템 버스는 프로세서에 따라 계속해 발전했으며 앞으로도 그럴 것이다.

I/O 버스
I/O 버스는 컴퓨터의 주변기기들을 잇는 입출력 버스다. 여러 기능을 담당하는 확장 카드가 이 버스를 쓰게 되며, 컴퓨터가 발전함에 따라 몇 차례 보완됐다. 현재 우리가 쓰고 있는 I/O 버스를 간단히 정리해보면 8.33MHz로 동작하는 16비트 버스인 ISA, 33MHz로 동작하는 32(64)비트 버스인 PCI 버스, 그래픽 카드에서 처리하는 데이터의 양이 많아짐에 따라 이를 수용하고 메모리에 직접 접근할 수 있는 66MHz의 AGP 버스가 있다.

ISA 버스
개인용 컴퓨터에 버스란 개념이 도입된 것은 1970년대 후반, 8080 계열의 시스템이 시장에 나오면서부터다. 이때는 여러 버스 형태가 공존하며 각자의 길을 걷고 있었다. 결국 컴퓨터를 쓰는 사람은 각각의 버스에 맞는 장치를 연결해야만 했으며, 버스를 통해 추가 기능을 장착하는 등의 일은 별 의미가 없었다. 단지 컴퓨터 내부의 데이터가 버스라는 통로를 통해 전달되고 이를 관리할 수 있다는 데 의미가 있었다.

그 이후 오리지널 IBM PC가 나오면서 8비트 ISA(Industry Standard Architecture) 버스가 표준으로 자리를 잡았다. 하지만 8비트 ISA 버스를 도입하고 얼마 지나지 않았음에도 ISA 버스의 한계는 드러났다. 프로세서의 동작 클럭이 빨라지고, 사용 메모리의 양도 올라가 기존 ISA 버스로는 감당할 수 없었다. 이에 따라 IBM은 8비트 ISA 버스를 개선한 16비트 ISA 버스를 내놓았다. 여기에는 더 많은 양의 메모리를 쓸 수 있도록 했다.

그러나 이런 IBM의 노력에도 불구하고 80386이 등장하면서 ISA 슬롯은 더 이상 어떻게 할 수 없는 한계에 도달했다. 지금도 16비트 ISA 버스가 존재하며 기존 8비트 ISA 버스와도 호환된다. 그리고 오랜 기간동안 각 부분에서 쓰고 있으므로 호환성에서는 상당히 유리하다. 하지만 지금 쓰고 있는 시스템에서 쓰기에는 그 처리 성능이 매우 부족하고, 어드레스나 인터럽트 등 하드웨어적인 설정을 사용자가 직접 해야한다는 불편함을 안고 있다.

그리고 신호의 검출 과정에서 안정성을 보장할 수 없으며 메모리 어드레싱 범위가 제한적이며 인터럽트 제어 역시 부실하다는 점은 ISA 버스의 단점으로 꼽을 수 있다. 여기에 시스템의 크기를 소형화는 요즘 추세에 큰 크기의 ISA 슬롯은 단점으로 지적된다.

MCA 버스
결국 IBM은 ISA 프로세서의 여러 한계를 극복하기 위해 많은 연구를 거듭했다. 하지만 ISA 버스의 기본적인 틀에서 오는 한계를 극복하지 못하고 전혀 새로운 버스를 만들어야 했다. 그 결과 MCA(Micro Channel Architecture) 버스가 개발되고 1980년 말부터 IBM이 MCA 버스를 쓴 시스템을 내놓았다.

MCA 버스는 최대 20MB/s의 대역폭을 제공해 기존 ISA 버스의 5MB/s의 4배에 이르는 성능을 갖고 있었다. MCA 버스는 8, 16, 32비트 전송모드를 갖고 있으며 10MHz로 동작했다. 32비트 어드레싱 모드를 갖고 있어 최대 4GB를 어드레싱할 수 있다.

아울러 버스 마스터링 기능을 공식적으로 지원했으며 I/O 어드레스, 인터럽트 요청 우선권, 버스에 설치된 카드의 할당 메모리 어드레스에 대한 자동 분석과 설정기능을 갖고 있어 이후에 등장한 PCI/ISA 계열의 플러그앤 플레이 와 동일한 기능을 제공했다.

그러나 MCA 버스는 IBM 이외에는 대부분이 쓰지 않았고, 가격적인 부분에서도 상당히 비싸 대중화되기 힘들었다. 결국 MCA는 IBM을 비롯한 일부 컴퓨터에서만 잠시 쓰였을 뿐 ISA 버스만큼의 대중성을 얻지 못하고 시대의 뒤안길로 사라져 갔다.

EISA
ISA 버스를 대체할 고속 MCA 버스가 사라지자 시장에서는 또 다시 고속 버스에 대한 욕구가 나타났다. 이에 AST, HP, NEC, 컴팩, 엡슨, 올리베티, 탠디, 와이즈, 제니스 등의 관련 업체들은 MCA급의 성능을 구현하면서도 ISA 버스와 호환되는 새로운 버스를 공동개발하기로 합의하고 EISA(Extended Industry Standard Architecture)를 내놓았다.

EISA 역시 버스 마스터링, 자동설정 기능, 강화된 인터럽트 관리 기능을 제공하며 전송률도 ISA보다 월등히 높은 편이었다. 특히 DMA 기능, 버스 마스터링, 인터럽드 공유 등의 보강된 기능은 버스로서의 성능을 보강하는데 큰 역할을 했다.

EISA는 성능면에서는 ISA를 개선해 그럭저럭 괜찮은 모습을 보여줬지만 비싸다는 것과 ISA와의 호환성도 완벽하지 않다는 문제점을 드러냈다. 뿐만 아니라 시기적으로도 EISA가 그 성능을 제대로 발휘하지 못했으며 곧이어 등장한 PCI 버스로 대체됐다.

EISA뿐만 아니라 ISA 버스와 호환성을 유지하면서도 32비트 전송을 할 수 있는 버스로는 베사 로컬 버스(VESA LOCAL BUS)가 있었다. 1990년대 VESA(Video Electronics Standards Association)에서 제안한 이 버스는 프로세서에서 버스핀에 바로 연결하는 방식을 쓰고 있다.

PCI 버스
PCI(Peripheral Component Interconnect)는 인텔을 중심으로 IBM, 컴팩, 도시바, DEC, 엡슨 등의 160개 업체가 참여해 만든 버스 규격이다. 기존의 버스를 만들면서 나타난 문제점을 보완한 버스다.

PCI 버스는 다음과 같은 면에서 대폭적으로 개선됐다. 우선 32비트(64비트)에 33MHz(66MHz)로 동작해 버스 자체의 속도를 개선했으며 다중 버스마스터링을 지원해 프로세서와 별도로 주변기기 사이의 고속전송이 가능하도록 했다.

뿐만 아니라 지금까지 나왔던 고속 버스의 단점이었던 가격적인 문제도 해결했다. 결국 PCI 버스는 지금까지 나온 버스들의 문제점을 어느 정도 해결하면서 각각의 장점을 적용해 놓았다. 따라서 현재의 컴퓨터 시스템에서는 PCI 버스가 표준으로 쓰이고 있으며, 대부분의 기기가 PCI 버스의 다양한 기능을 통해 데이터를 주고받고 있다.

AGP 버스
AGP 버스는 3차원 그래픽 카드가 발전함에 따라 데이터 처리량이 많아져 메모리와 프로세서에 직접 그래픽 카드를 연결할 수 있도록 고속의 버스로 독립시킨 것이다.

I/O 버스의 문제점
현재 컴퓨터에는 각 기기의 독립화와 동시에 프로세서의 역할이 확대되고 있다. 다시 말해 예전에는 CPU에 의존했던 각종 기기들이 스스로 처리하는 쪽으로 바뀌면서 CPU 의존율은 낮아졌다는 말이다. 또한 CPU는 하드웨어 측면에서 하던 일은 줄었지만, 소프트웨어적으로 처리해야 할 일은 더 많아졌다. 어떻게 보면 서로 상반되는 말로 들릴 수 있다.

한쪽은 프로세서의 역할을 줄여나가는 것 같지만 동시에 프로세서는 할 일이 점점 더 많아졌다는 것은 그냥 보기에는 분명히 앞뒤가 맞지 않은 말이다. 그래픽 카드는 그동안 CPU에서 처리하던 T&L 엔진을 스스로 처리하고 있으며, 외부 장치와 연결되는 외부 I/O 역시 이전에는 CPU를 통해 처리했으나 USB나 IEEE 1394가 나오면서 이를 쓰는 각 장치가 독립적으로 데이터의 흐름을 조절하고 있다. 시스템 내에서도 DMA를 통해 프로세서 의존도를 줄여나가고 있는 것은 마찬가지라 하겠다.

이렇게 컴퓨터에서 CPU의 의존도를 줄여나가는 대신, CPU는 이전에 하드웨어로 처리하던 부분을 맡고 있는 것이다. MPEG 재생이라든지, 모뎀이나 LAN 컨트롤러, 사운드 프로세서의 처리 등은 프로세서가 맡아 소프트웨어적으로 처리하는 예라 할 수 있다.

이렇게 각 기기의 독립화와 동시에 프로세서의 역할이 광범위해짐에 따라 버스의 중요성은 더욱 부각된다. 이전에는 단순히 엄청난 양의 데이터를 처리해야 하는 서버에서나 고속 버스를 써서 병목 현상을 없앴다. 하지만 PC에서도 데이터의 이동이 빈번해지고 여러 기기가 짧은 시간 안에 버스를 계속 점유하므로 이로 인한 병목과 버스 점유 문제가 발생하게 된다.

더군다나 컴퓨터가 매우 빠른 속도로 발전해가고 있으며 각종 프로그램이 처리하는 데이터의 양도 크게 늘어나 기존 버스에 대한 불만이 높아지고 있다. 프로세서와 메모리, 주변 기기, 네트워크의 속도는 점점 빨라지고 있지만 컴퓨터가 쓰는 버스(PCI)는 몇 년 전이나 지금이나 똑같은 속도이다. 좀 더 구체적으로 말하면 기가비트 이더넷이나 SCSI RAID, 고속 주변기기를 쓰기 위해서는 버스가 더 빨리 개선돼야 한다는 것이다.

PCI를 대체할 PCI-X
PCI 버스를 대체할 가장 유력한 후보는 PCI-X다. PCI-X는 기존 PCI 인터페이스와 호환되면서도 8배 이상의 성능이 향상됐다. PCI-X는 PCI 버스를 바탕으로 여러 문제점을 보완하면서도 기존 PCI와의 호환성을 유지하고 있다는 것이 장점이다.

레지스터와 레지스터 사이의 데이터 교환 인터페이스 설계를 쓴 PCI-X는 동작 클럭을 쉽게 133MHz까지 올릴 수 있었다. 이로서 64비트에 133MHz로 동작하는 PCI-X는 최대 1GB/s의 대역폭을 갖게 됐다. 이는 지금까지 나온 버스 가운데 가장 빠른 것이다.

PCI에서는 쓸 수 있는 최대 대역폭을 여러 장치들이 함께 나눠 쓴다. 대신에 Point-to-Point(각각의 기기가 바로 연결돼 데이터를 교환함) 방식은 빠른 속도와 높은 효율을 갖는다. PCI-X 역시 두 개의 슬롯을 쓸 때는 100MHz로, 4개의 슬롯을 쓸 때는 66MHz로 동작시키는 등 여러 슬롯이 필요할 때는 채널 수에 맞춰 대역폭을 분배한다. 이 기능을 통해 융통성 있는 시스템을 만들 수 있다.

초기 PCI-X는 1GB/s의 대역폭을 지원할 예정이지만 개발 단계에 따라 2GB/s와 4GB/s로 대역폭을 향상시킬 예정이다. PCI-X는 속도뿐만 아니라 버스 자체를 효과적으로 구동하기 위해 Split Transaction Read Capability, Buffer Allocation, Zero Wait State Read Completions. 128Byte Disconnect Boundaries, Relaxed Transaction Ordering과 같은 확장 프로토콜도 갖고 있다.

PCI의 기본 스펙에 따르면 이미 버스를 쓰고 있는 장치가 데이터를 주고받을 장치의 응답을 기다리고 있다면 불필요한 시간 소모를 막기 위해 다른 장치가 이 장치 대신 버스를 쓸 수 있다. PCI-X의 Split Transaction은 이를 개선해 버스를 쓰고 있는 장치가 데이터를 주고받을 준비가 되기 전까지는 다른 주변장치가 버스를 쓸 수 있도록 했다.

Transaction은 두 장치가 버스를 통해 데이터를 전송할 때 데이터가 뒤얽히지 않고 안전하게 전송할 수 있도록 하면서 버스에서 낭비되는 시간을 줄였다. 분할 처리(Split Transaction)는 각 장치마다 버스에 대한 상태를 알아 PCI-X를 최대한 효과적으로 쓸 수 있도록 하기 위해 각 장치가 데이터를 그만 보낼 것인지 대기 상태에 둘 것인지를 알 수 있도록 했다.

PCI-X와 PCI 버스 구별하기
PCI-X는 ADB(Allowable Disconnect Boundary)를 써서 한번에 128바이트씩 나눠 데이터를 전송한다. 이렇게 함으로써 특정 장치가 커다란 데이터를 한번에 전송하면서 버스를 독점하는 것을 막을 수 있다. 결국 PCI-X에 연결된 여러 장치가 공평하게 버스를 쓸 수 있도록 해 버스 효율을 높이게 된다.

PCI-X가 PCI 버스와 구별되는 또 다른 점은 버스 내에 에러가 생겼을 때 이에 대처하는 방법이다. PCI는 에러가 생겼을 때의 대처 방법이 많지 않았다. 기본적으로 하드웨어적인 어떤 에러가 발생하면 시스템에는 큰 문제가 생긴다. PCI-X는 시스템 에러와 주변기기 에러를 구별할 수 있다. 만약 시스템 에러라면 여전히 시스템은 다운된다.

그러나 주변기기 에러라면 문제를 일으킨 주변기기만 다시 설정하고 나머지 시스템은 정상적으로 동작하게 한다. 물론 소프트웨어가 이 기능을 쓸 수 있어야 하지만 약간의 추가비용으로 시스템의 안정성을 개선할 수 있다.

각 칩셋을 잇는 로컬버스
메인보드에는 각자의 역할을 맡은 여러 칩셋이 함께 있다. 이전에 이 칩셋 사이의 연결에도 PCI 버스를 썼다. 하지만 날로 PCI 버스에 병목 현상이 늘어나고, 각 칩셋 사이의 자료 교환도 빈번해 짐에 따라 PCI 버스에 주는 부하가 너무 심해졌다.

따라서 PCI 버스와 독립된 고성능 로컬버스가 필요하게 됐다. 이런 필요에 의해 개발된 것이 인텔의 허브 아키텍처와 AMD의 HyperTransport(SiS의 TransZIP 기술과 nVIDIA의 Crash칩셋에 채용), 비아의 V.Link, SiS의 PepLink technology가 있다.

로컬 버스는 소프트웨어적인 지원이 필요 없고, 각각의 칩셋만을 연결하는 하드웨어적 버스이므로 호환성을 걱정할 필요도 없어 여러 업체에서 독자적인 버스를 많이 내놓고 있다. 하지만 대부분이 비슷한 방식을 쓰고 있으며 대역폭 또한 266MB/s에서 533MB/s로 비슷하다.

차세대 입출력 버스는 컴퓨터의 성능에 많은 영향을 미칠 것이다. 하지만 차세대 입출력 버스들이 컴퓨터의 성능을 향상시켜주는 것은 아니다. 이는 마치 듀얼 프로세서와도 같은 의미로서 컴퓨터가 병목에 의해 느려지는 것을 막아주는 것이지 입출력 버스가 개선됐다고 해서 컴퓨터 성능이 더 향상되는 것은 아니다.

컴퓨터의 성능이 발전할수록 차세대 입출력 버스의 중요성은 올라간다. 컴퓨터 자체의 성능은 빠를지 몰라도 데이터의 입출력이 원활하지 못하다면 그 시스템은 병목으로 인해 심한 성능 저하를 겪게 되기 때문이다.
끝.

 
▲
내 용 작 성
▼
 
 
 
부품 / 견적 추천
  
  DNDCOM ASRock K7S41GX 필드 테스트 공지사항입니다 폭풍전야 2004-03-03 4526
  버그수정 완료, 글 작성 가능합니다. 감자나무 2003-08-27 3857
6712   다들 완료 하셨나요.. gsface 2004-03-14 3889
6711   해당보드에 라운드 케이블 써보셨나요? gsface 2004-03-13 3897
6710   다들 어느정도까지 진행하셨나요??? 황보주 2004-03-10 4034
6709   [필드테스트]잘만 하드쿨러 ZM-2HC2 tim95 2004-03-08 4386
6708   첫번째 (보드스펙상 사무용이나 일반가정용관점에서 t.. 조영만 2004-03-07 4355
6707   작성자가 게시물을 삭제 하였습니다 gsface 2004-03-06 3913
6706   일단 제품만 대충 살펴보았습니다~ 황보주 2004-03-06 4158
6705   다른 분들은 벌써 시작하셨나봐요? 황보주 2004-03-06 3676
6704   필드테스터 일정 조영만 2004-03-05 3531
6703   드디어 도착했군요 오늘은 일단 쉬고 내일부터 조영만 2004-03-04 3634
6702   아무 글도 안올라 오길레 게시판도 살릴겸 글 올려요~ 황보주 2004-03-03 3859
6700   이상하네요 아래 필테 자료 다시... 김효영 2003-11-30 3910
6699   [필드테스트] 가격대 성능비 굿 ~~ ASRock P4VT8 김효영 2003-11-30 5431
6698   질문있어서~~~ 김효영 2003-11-20 4082
6697   휴..오늘 새벽에서야 겨우 글을 올렸네요, 늦어져서 .. 전상현 2003-09-09 3876
6696   사용기 업로드가 조금 늦어질 것 같아요.. 전상현 2003-09-03 4113
6695   [FX 5200 Ultra power]다들 필테하고 있나요? 앞마당확장 2003-09-02 3971
6694   [FX 5200 Ultra power]다들 물건 왔나요? 앞마당확장 2003-08-30 3946
 1 [2][3][4][5][6][7][8][9][10]
결과내 재검색
* 작성자 검색은 2003년 7월 이전 글은 '이름'으로, 2003년 7월 이후글은 'ID'로 검색하셔야 합니다.