Sep 12, 2007

PCI Express 기술적 특징

PCI Express의 기술적 특징


PCI Layer와 호환성의 유지


PCI Express는 다음과 같은 5개 계층을 갖는다.



여기서, PCI가 PCI Express로 변화되면서 변경이 가해지는 부분은 Transaction(변환), Data Link(연결), Physical(물리적) 계층 뿐이다. 그 위의 S/W 계층을 비롯하여 Config/OS 계층은 변화하지 않는다. 그 결과, PCI Express는 기존의 운영체제와 디바이스 드라이버를 그대로 유지하면서 동작한다. 인텔은 인텔 개발자 포럼에서 Windows XP에 별도의 드라이버 추가/변경 등이 없이 그대로 PCI Express를 사용할 수 있도록 만들겠다고 하였는데, 이것은 바로 S/W 및 Config/OS 레이어가 그대로 유지됨으로써 가능해진다.


그 아래의 변환 계층부터는 PCI Express의 특징을 극명하게 드러내고 있다. 간단히 살펴보면 변환 계층에서는 패킷 단위의 전송을 할 수 있도록 데이터 패킷을 형성하고 이를 연결 계층으로 전달한다. 그리고 연결 계층에서 데이터 신뢰도를 위한 CRC 코드를 삽입한 후 물리적 계층에서 8b/10b 인코딩이 이루어지고 전송된다. 흔히 이야기하는 거의 모든 특징은 물리적 계층에 집중되어 있다고 보아도 좋다.


패킷의 생성과 데이터의 전달



변환 계층(Transaction Layer)에서 만들어내는 데이터 패킷은 헤더와 데이터로 구성되어 있다. 이 패킷이 연결 계층(Data Link Layer)로 들어가면 변환 계층에서 만들어낸 패킷의 앞뒤에 패킷의 순서를 정한 번호와 CRC 코드가 덧붙여진다. 그리고 이것이 물리적 계층으로 옮겨지면 그 앞뒤로 프레임이 붙어서 PCI Express 버스를 통해서 전달될 데이터 패킷이 완성된다.


물리적 계층에서는 연결 계층을 통해 전달받은 패킷을 직렬화(serialize)한다. 이 때 사용되는 것이 8b/10b 인코딩 스킴으로써, 이에 대해서는 Serial ATA 강좌에서 언급한 바 있다.



관련강좌보기 : Serial ATA에 적용된 기술과 물리적 특징


변환 계층에서의 헤더, 연결 계층에서의 패킷순서번호, CRC 데이터, 물리적 계층에서의 프레임 및 8b/10b 인코딩 과정에서의 제어코드와 인코딩 과정으로 인해서 전달되는 데이터는 실제 데이터에 비해서 상당히 늘어난다. 그래서 PCI Express는 초기에 2.5GHz의 클럭으로 동작하는데, 실제 데이터 전송속도는 핀당 100MB/s가 된다.


다양한 대역폭의 확보


PCI Express는 하이퍼트랜스포트와 마찬가지로 듀얼 심플렉스(Dual Simplex) 방식의 버스이다.



듀얼 심플렉스라는 것은 단방향으로의 데이터버스가 2개 1조로 구성되어, 하나의 버스는 데이터를 보내는데에만, 다른 하나의 버스는 데이터를 받는 데에만 사용되는 방식을 지칭한다. 즉, PCI Express는 기본적으로 2개의 데이터 전달 통로(lane)를 갖는다.


PCI Express의 동작클럭이 2.5GHz로, 하나의 통로에서는 100MB/s의 대역폭을 갖게 되므로, PCI Express가 가질 수 있는 최소의 데이터 전송 대역폭은 200MB/s라는 이야기가 된다. 이것만으로도 현존하는 32bit PCI가 가지는 133MB/s를 50%정도 상회하는 것이다. 또한 규격상으로 PCI Express는 1X, 2X, 4X, 8X, 12X, 16X, 32X의 전달 통로 폭을 갖는다. 이 경우의 데이터 전송 대역폭은 다음과 같다.



32X의 PCI Express는 최대 6.4GB/s의 데이터 전송폭을 갖는다. 이것은 AGP 8X의 2.1GB/s를 200% 이상 상회하는 것이며, PCI보다는 무려 50배에 가까운 것이다. 따라서, 현존하는 어떠한 주변기기의 대역폭도 무리없이 소화해낼 수 있다.


직렬전송에서의 특징과 토폴로지


직렬전송으로써의 특징은 하이퍼트랜스포트와 동일하다고 보아도 무방하다. 우선, 시리얼 버스에 기반한 LVDS 데이터 전송이 있다. 이에 대해서는 이미 하이퍼트랜스포트, RDRAM의 강좌에서 언급하였다. 다음의 내용은 하이퍼트랜스포트 강좌중에서 설명되었던 LVDS에 관련된 내용이다.






하이퍼트랜스포트는 기본적으로 시리얼 버스에 기반하고 있다. 시리얼 버스의 장점에 대해서는 앞에서도 누누히 언급한 바 있다. 기본적으로 저전압 디퍼런셜(Low Voltage Differential Signaling : LVDS) 기법을 사용하여 데이터를 전송한다. 또한 지금까지 사용되어 온 LVDS가 2.5V의 전압을 사용하고 있는 것에 반해, 이보다 더 낮은 1.2V의 전압을 사용한다.



LVDS의 특징과 높은 노이즈 면역성에 대해서는 앞서의 RDRAM 강좌와 시리얼 ATA 강좌에서 언급한 바 있다.


관련강좌 : RDRAM 강좌, 시리얼 ATA 강좌


LVDS가 제공하는 잇점은 단지 노이즈면역성의 증가에 그치지 않는다. 낮은 전압을 사용하기 때문에 EMI 발생이 줄어들며, 이는 근접한 회로에 주는 영향을 줄여줌과 동시에, 최근들어 더욱 엄격해지고 있는 전자파장해 검정에 보다 유리하게 작용한다.



1.2V의 LVDS를 사용한 하이퍼트랜스포트


기존의 버스구조
하이퍼트랜스포트에 비해서 컴포넌트가 늘어난다.


또한, 소모전력이 줄어든다. 기존의 2.5V LVDS보다 절반 이하의 전압을 사용하기 때문에 동일 클럭에서는 1/4 정도의 전력만을 사용한다. 즉, 클럭이 올라간다 하더라도 사용전력이 기존의 신호전송방식에 비해서 월등히 줄어드는 것이다. 3.3V를 사용하는 기존의 다른 I/O에 비하면 더욱 적다. 신호선의 종단에 위치하는 터미네이터를 칩 위에 집적시키는 것 역시 가능해진다. 기존의 다른 신호방식의 경우 높은 전압을 사용해서 칩 상에 터미네이터를 내장하는 것이 불가능했으며, 그 결과 보드 상에 일정공간의 면적을 차지한다. 그러나 하이퍼트랜스포트의 LVDS는 터미네이터를 칩상에 집적할 수 있으며, 그래서 보드 상에 장착되어야 하는 전원부의 컴포넌트 수가 상당수 줄어든다. 컴포넌트 수의 감소는 원가절감이라는 득을 주기도 하지만, 보드의 설계를 단순하게 한다는 잇점 역시 제공한다.


그래서 하이퍼트랜스포트는 기존의 고속 버스들과는 다르게, 4층기판에도 무난히 적용이 가능하다. 이로써 제조공정의 단축과 원가의 절감을 이룰 수 있다. 또한 시리얼 전송방식과 LVDS의 적용으로 인해서 매우 안정적인 데이터 신뢰도를 얻을 수 있으며, 또한 전체 회로의 길이를 800MHz 동작에서 최대 24"까지 늘일 수 있게 되었다. 대개의 ATX 메인보드가 9" × 12"의 크기임을 감안하면, 24"라는 길이는 서버용의 확장 ATX(Extended ATX) 메인보드에서도 대각선으로 지르고도 남는 길이이다.


그런데, 하이퍼트랜스포트와 마냥 똑같지만은 않다. 하이퍼트랜스포트, PCI Express 모두 P2P 토폴로지를 가지지만, 하이퍼트랜스포트의 경우 P2P 토폴로지 상에서 터널 및 브릿지-터널 등의 구조를 허용하고 있어서 사실상 트리(tree)구조의 형성이 가능하다. 그러나 PCI Express는 순수한 P2P 형태의 구성만이 가능하다는 차이점을 가진다. 다음의 일러스트는 하이퍼트랜스포트의 P2P와 PCI Express의 P2P가 어떠한 차이를 가지는가를 단적으로 보여준다.



하이퍼트랜스포트에서의 버스구성



PCI Express에서의 버스구성


이러한 특징 때문에, PCI Express에서는 하이퍼트랜스포트와는 약간 다른 방법으로 하위 하드웨어들의 트리구조를 형성한다. 바로 '스위치(switch)'를 이용하는 것이다.



스위치는 일종의 분배기, 또는 허브라고 생각하면 정확하다. 스위치 아래쪽으로는 각종 주변기기들이 PCI Express를 통해서 물려 있고, 스위치는 호스트 브릿지에 보다 고속의 PCI Express로 연결되어 있다. 이러한 구조를 통해서 PCI Express의 트리구조는 형성된다.


PCI SIG에서 2003년에 등장하리라고 예상하고 있는 시스템들의 간단한 토폴로지를 살펴보자.



1. 데스크탑 모바일 PC에서의 PCI Express(3GIO) 적용



2. 서버/웍스테이션에서의 PCI Express 적용



3. 네트웍 통신장비에서의 PCI Express 적용


스위치 적용 구조를 통해 PCI Express는 높은 확장성과 함께 높은 I/O 성능을 보장받는다. 여기서의 스위치는 호스트 브릿지 안에 집적될 수 있는 논리적 요소이지만, 별도의 구성요소로 존재할 수도 있다. PCI Express와 PCI가 공존하는 까닭은 낮은 대역폭만을 요구하는 다양한 장비들 및 기존의 PCI 주변기기들의 사용자를 보호하기 위함이지만, 시간이 흐르게 되면 PCI Express로 대체될 것이다.


서버의 경우 PCI Express가 PCI-X의 상위개념으로써 존재하며, 내부적으로는 PCI Express와 PCI/PCI-X를, 외부적으로는 인피니밴드를 사용하게 된다. 네트웍장비에서는 여러가지 트래픽 타입에 따라 다수의 스위치를 사용하여 전체적인 트래픽 소통을 최적화할 수 있다.



인터페이스


PCI Express가 하이퍼트랜스포트와 다른 가장 큰 차이점은 역시 보드간 연결(board-to-board)을 지원한다는 것이다. 하이퍼트랜스포트는 CPU와 메모리, 호스트 브릿지에 중심을 둔 칩간 연결 버스의 특성을 강하게 띄고 있지만, PCI Express는 현존하는 PCI를 그대로 승계하여, 스위치를 사용한 다수의 주변기기 연결을 중시하는 고속의 보드간 직렬연결 버스의 성격이 강하다.


그래서, PCI Express에서는 외부 인터페이스의 형태도 고려되고 있다. 물론 이것은 기존의 PCI와의 호환성을 어느정도 유지하는 선에서의 고려이기에 다음과 같은 형태로 구분된다.


1. 저속의 PCI Express 인터페이스 구성



내장형 PCI Express 인터페이스는 기본적으로 현존하는 PCI와 같은 폼팩터를 기준으로 만들어진다. 즉, 일반적인 PCI 카드의 크기 뿐만 아니라 LP(Low Profile) 타입의 작은 형태로도 만들어진다. 다만, 슬롯의 형태는 위 일러스트와 같이 변경된다.


저속의 PCI Express를 위해서는 기존의 PCI 커넥터 앞쪽으로 작은 PCI Express 커넥터만이 추가된다. 적은 수의 핀만을 사용해도 무방하기 때문에 커넥터의 크기는 상당히 작아서, PCI 슬롯의 앞쪽 좁은 공간에 들어간다. 따라서, 같은 자리에 기존의 PCI도 사용할 수 있으며, 필요에 따라 PCI Express를 지원하는 주변기기 역시 사용할 수 있다.


여기에는 각방향 1~2개의 통로를 가지는 PCI Express가 사용될 수 있으며, 그 속도는 200~400MB/s가 된다.


2. 고속의 PCI Express 인터페이스 구성



그보다 빠른 속도를 가지는 인터페이스, 예를 들어서 그래픽카드 등을 위해서는 4개 이상의 각방향 통로를 가지는 버스, 즉 800MB/s 이상의 데이터 전송 대역폭이 필요하다. 이를 위해 별도의 PCI Express 슬롯이 존재한다. 이것은 PCI 슬롯 앞쪽에 위치하는 저속 PCI Express 슬롯보다는 크지만, 현재의 AGP 슬롯보다도 작은 크기를 가지게 된다.


3. 외장 장치를 위한 PCI Express 인터페이스



PCI Express로 변화하면서 가장 눈에 띄게 변할 부분은 바로 이 외장 PCI Express의 지원이다. 현재까지의 PCI 버스는 시스템 외부로는 뻗어나올 수 없었다. 넓은 버스폭으로 인한 데이터 왜곡과 멀티드랍 방식의 동기화 문제 때문이었다. 그러나 PCI Express는 P2P 연결로써 동기화를 절실히 요하지 않으며, 직렬전송이기 때문에 데이터 왜곡으로부터 어느정도 자유롭다.


그래서 PCI Express는 외장 장치의 제작이 가능해진다. 기존에는 SCSI나 USB, IEEE1394 등의 다른 인터페이스를 통해서 외부 장치를 사용해야 했으나 PCI Express 부터는 직접 외부 장치를 사용하는 것이 가능해진다. 즉, 외부 사운드카드나 TV 캡춰/인코딩 유닛 등이 직접 PCI Express에 연결되기 때문에 낮은 대역폭으로 인한 한계가 사라지고 다양한 외장 유닛들이 등장할 수 있다.


4. 노트북 등의 모바일 기기를 위한 PCI Express 인터페이스



모바일 시스템에서도 변화가 일어난다. 노트북에 무슨 PCI 슬롯이냐고 할지 모르지만, 노트북 등에도 분명히 PCI 슬롯이 존재한다. 이것은 miniPCI라는 것으로, 주로 네트웍 어댑터나 모뎀 등이 장착된다.


현재의 미니 PCI는 상당히 큰 커넥터를 가지고 있어서 공간적인 문제가 절실한 노트북 등에서 상당한 공간을 차지한다. 그러나 이것이 PCI Express로 변경되면 큰 커넥터 대신 매우 작은 크기의 커넥터를 사용할 수 있어서 차지하는 공간이 줄어들며, 또한 케이블링이 가능해지기 때문에 배치의 유연성도 훨씬 높아져서 노트북을 설계하는 디자이너들에게 기존보다 훨씬 높은 자유도를 부여하고 보다 작고 가벼운 노트북을 만들 수 있도록 해준다.