http://pc.watch.impress.co.jp/docs/news/event/20100625_376757.html

 

 

아직 표준을 책정 중이라고 확정인건 아닙니다.

그래도 큰 변화는 없겠죠.

 

 

pcie 1.x 가 2.5GT/s, 8b/10b encoding 입니다.

 

pcie는 직렬방식이기때문에  GT/s의 단위를 쓰죠.(Giga Transfer per Sec)

1비트씩 1초에 2.5기가 번 전송한다는 것.

8b/10b encoding은 8비트의 데이터에 2비트의 제어신호(오류정정코드라던가)를 합쳐서 10비트로 전송한다는 것.

 

대역폭을 계산하면 2.5GT/s * 8b / 10b = 2Gb/s = 250MB/s

(8b = 8bit = 1bite = 1B)

1Lane(레인)당 250MB/s가 나오죠.

보통 그래픽카드에 쓰는게 레인 16개를 묶은 pci-ex x16이니, 대역폭은 250MB/s*16 = 4GB/s.

 

pcie 2.x 는 전송속도만 5.0GT/s로 두배 올렸습니다.

레인당 500MB/s가 되겠고, x16 슬롯에선 8GB/s가 되죠.

 

여기서 pcie 3.0 을 단순 예상해보면 전송속도를 두배인 10GT/s로 올려야겠죠.

그런데 그게 또 아닙니다.

 

 

pcie 3.0 의 전송속도는 8GT/s 라고 하네요.

10GT/s로 하면 소비전력이 증가하고, PHY 설계가 복잡해진다네요.

8GT/s를 선택했다는건, 8GT/s에선 저런 문제들이 해결 가능하기때문이라고 봐야겠죠.

 

그런데 문제가 되는게 전송속도가 60% 밖에 향상이 안 되었기때문에 대역폭을 100% 증가 시킬수가 없어졌습니다.

pcie 1.x와 2.x 의 8b/10b encoding을 보면 전송속도에서 제어신호가 차지하는 부분의 20%나 됩니다.(이걸 오버헤드라고 하던가요.)

대역폭(실효전송속도)가 전송속도 * enconding 임을 생각하면, 전송속도 향상으로 미쳐 못 충족시킨 40%를 커버하기 위해선 encoding에서의 제어신호 비중이 이전 세대에 비해 낮아져야합니다.

물론 8GT/s의 전송속도에서 pcie 2.x의 대역폭의 두배인 8Gb/s를 만드려면 제어신호의 비중이 0%가 되어야하니 완벽하게는 불가능하겠네요.

최대한 8Gb/s에 충족시키기위해 선택된 것이 128b/130b encoding입니다.

 

계산해보면 8GT/s * 128b / 130b = 7.87Gb/s = 1레인 당 984.6MB/s.

본래 목표치인 8GB/s에 근접하게 나옵니다.

 

gen1과 gen2는 encoding에서의 유사함 등으로 하위호환이 간단해보였는데, gen3 바뀌어서 간단하게는 힘들듯하네요.

gen1/2 호환 PHY와 gen3 PHY를 둘 다 갖고 있다가 link trainig 단계에서 선택하는 방식으로 하는듯.

(link training이 encoding하는 과정을 말하는건지.)

 

 

로드맵 상으로는 11년 3분기나 되야 공식적인 pci-ex 3.0을 볼 수 있을듯.

원래 revision 0.7 이후에 바로 0.9로 넘어가는거였는데, 테스트 데이터를 바탕으로 수정해서 0.71이 나왔다네요.

이런걸 봐선 연기될 여지는 아직도 많아보입니다.

 

x16 슬롯에서 pcie1.x는 75w, 2.x는 150w를 공급한다는데 3.0은 얼마나 되려나 궁금하네요.

아직 안 정해진 것 같기도하고.

두배까지는 안되더라도 나날이 올라가는 그래픽카드 소비전력을 생각하면 240w정도는 되었으면 하는데말이죠.

 

 

Posted by gamma0burst Trackback 0 : Comment 2

댓글을 달아 주세요

  1. addr | edit/del | reply pjh 2018.01.06 23:10

    여러 레일로 통신을 하는데 왜 직렬방식이라고 할까요? 병렬 아닌가요?

    • addr | edit/del Favicon of https://gamma0burst.tistory.com BlogIcon gamma0burst 2018.01.06 23:37 신고

      말씀하신 기준이라면 1레인만 쓰면 직렬이고 2레인 이상부터는 병렬이라고 불러야겠지요?
      상식적으로 그렇게 불려질 것 같지는 않고요.

      간단히 설명하면 직렬, 병렬 방식 인터페이스를 구분하는건 물리적인 신호선의 숫자입니다.
      병렬방식은 복수의 라인이 병렬로 있지만, 직렬방식은 송신, 수신의 2개 라인만 있습니다.