벤치리뷰·뉴스·정보/아키텍처·정보분석

[분석정보] 고속화와 함께 전력 절약에도 눈 돌리는 PCI Express 3.1

tware 2013. 8. 26. 21:23

 

USB 3.1 과 SATA 3.2 의 설명이 끝난 것으로 다른 인터페이스에 대해서도 정리해 업데이트를 전달한다. 이번주는 PCI Express이다.

 

 

 

 

 

가장 USB와 SATA와 달리 PCI Express 관해서는 현재 공식적으로 새로운 스펙이 전혀 나와 있지 않다. 다만, "이제 곧"이라는 것이 일부이기 때문에 이 기준을 순차적으로 설명하겠다.

 

 

전송 속도가 배가 되는 PCI Express Gen4

 인텔 플랫폼에서는 이미 PCI Express Gen3가 극히 보통으로 사용할 수 있으며, AMD도 내년 Kaveri에서 PCI Express Gen3을 이용할 수 있게 된다. 따라서 관점은 다음의 PCI Express Gen4에 향하게 되는데,  이쪽이 등장하는 것은 아직 당분간 미래가 되는 것이다.

 

 

PCI Express Gen4의 요약. 가장 중요한 것은 마지막 행

(설명 : Raw bit rate = 신호 속도(bit).

Link BW = 링크 대역폭 (실제 데이터 대역폭)

BW/Lane/WAY = 1레인의 방향당 대역폭(실제)

Total BW x16 = 총 16레인(슬롯의,(16배속)) 대역폭(실제)

PCie1.x의 신호속도는 2.5GT/s로 초당 2.5Ghz로 전송, 이 신호는 8b/10b로 8이 데이터, 2가 임베디드 클럭신호로 그래서 GT/s. 링크 대역폭은 순수(실제) 데이터만을 말하기 때문에 2Gb/s. 2Gb/s를 Byte로 바꾸면 /8 을하면 250MB/s. PCIe는 1레인(1배속)에 상향과 하향 양방향이 있는데, 위의 1레인 방향당 대역폭이니 250MB/s이고 양방향으로 말하면 500MB/s. 총(양방향) 16레인의 대역폭은 500MB/s x 16 = 8GB/s. 16레인 단방향 이라면 4GB/s가 되죠.

 

간혹 커뮤니티에는 1배속(1레인)은 단방향이고, 2배속이 양방향이라고 하는 얘기도 있는데, 1배속 슬롯도 양방향 입니다. 1배속 단방향 x 2개라서 2배속이 양방향이 아닙니다.

1배속 안에 이미 상향,하향 양방향으로 구성되어 있습니다. 250MB/s가 단방향을 말하는 거구요. 양방향 대역폭은 500MB/s가 됩니다.

버전 2.x 까지는 같은 형태로 보면 되고요. 속도를 올린 형태.

 

버전 3.x 부터는 왜 8GT/s인데 대역폭이 2.x의 2배인가? 1.6배가 되야 하는거 아닌가? 가 될텐데, 3.x에서는 128b/130b 형식으로 신호를 보내기 때문에 이전의 8/10의 경우 80%의 실제 데이터였다면, 3.x에서는 98.461%의 실제 데이터 전송이 되기 때문에, 8GT/s로 2배의 대역폭이 됩니다. 물론 아주 정확하게는 2.x의 2배는 아니죠. 3.x의 총 16레인 대역폭이 32GB/s가 아닌 31.5GB/s가 되고. 1레인(1배속) 단방향이 984.6MB/s 가 되니까요. 그러나 그냥 대충 2배라고 생각하면 되고 그래도 무방합니다. 간단히 말할 때는 많은 곳에서 그냥 2.x의 2배라고 다 표현 합니다.위의 그림도 2배라고 되어 있듯이요. 일반 보통 사용자에게 중요한건 버전별로 2배씩 올랐다 이것만 알면 되죠. 그리고 몇배속이든 양방향이라는것과 버전1.x  1배속(1레인) 기준 보통 대역폭(250MB/s) 표기 되어 있는건 단방향으로 적혀 있는거다 라고요. 상향+하향 으로 묶인 것이 1레인(1배속) 입니다.)

 


 PCI-SIG의 경우 사양의 책정은 0.1 → 0.3 → 0.5 → 0.7 → 0.9 → 1.0,으로 왜 인지 홀수번으로 리비전이 올라가는데, PCI Express Gen4 버전은 현재는 아직 0.3 단계이다. PCI-SIG는 지난해 처음 원리적으로 가능여부 수준의 조사를 행했으며 이것이 0.1에 해​​당한다.

 올해는 0.1이 물리적으로 가능한가 라는 수준의 검토를 행하고 있어 이것이 0.3 해당한다. 이 결과를 바탕으로 현실적인 회로로 구성 할 수 있는지 여부의 검토가 0.5로 내년 1분기에 시작된다.

 0.5에서 현실적으로 구성할 목표가 세워지면 이번에는 구체적인 제품 수준에서 그것을 구성 할 수 있는지 검토가 0.7로 아마도 2014 년 3 분기 기준으로 시작된다.

 문제가 없으면 거의 최종 사양에 가까운 것이 0.9로 2015 년 1 분기에 출시할 회원사가 이를 검토하고 문제 없다고 하면 약간 후 (최소 30 일 정도이지만, 실제로 좀 더 여러가지 일테니 현실적으로는 2015 년 1 분기 말 또는 2 분기 초)에 수정 1.0 이 출시된다.


PCI-SIG 예정은 수정 0.5을 2014 년 1 분기 수정 0.9을 2015 년 1 분기에 출시로 있지만, 과연이 스케줄대로 진행될 것인가 ......

 

 문제는 사양의 책정이 정시에 진행되느냐에 있지만, 앞의 기술 이미지의 전망은 낙관적인 일정에 근거한다. 예를 들어 PCI Express Gen3의 경우 리비전 0.7에서 0.9로 넘어 가기 전에 문제가 발견, 사이에 수정 0.71 이라는 것이 들어있다.

 또한 이 단계라고 탁상의 시뮬레이션 수준에서 모르는 것도 많고, 실제로는 회원사가 수정 0.7 사양의 회로를 만들고 테스트를 수행하고 그 결과로 문제가 발각 이를 수정 버전 0.71 사양 회로를 다시 만들고 테스트를 수행 GO가 나왔다 라는 시간이 많이 걸리는 공정이다.

 이외에도 일부 지연 요인이 있고, PCI Express Gen3는 당초 계획에서 1 년 가까이 늦어지고 있다. 이번에는 어떻게 하는가 하는 것은 현재 단언 할 수 없지만, 과거의 예에서 일정은 상당히 낙관적인 것으로 각오하는 편이 좋겠다.

 필자의 개인적인 견해로는 PCI Express Gen4의 사양 책정은 2015 년 통채로 요하고 결과적으로 PCI Express Gen4에 대응한 컨트롤러 또는 장치가 시장에 나오는 것은 2016 년도로 늦어지지 않을까 예상하고 있다.

 이것은 Gen3 에서도 일어난 이야기이지만, 최신 기술을 사용하는 한은 8GHz 또는 16GHz 같은 신호 전송 속도 자체는 그리 어려운 숫자가 아니다. 적절한 이퀄라이저 기술을 사용하면 신호 보정을​​ 쉽게 할 수 있다.

 문제는 신호 보정을​​ 특정 메이커가 가지는 특허 등을 이용하지 않으며 저렴한 구성하는 것은 매우 어려운 일이다. 하물며 16GHz가 되면, 다양한 메이커가 신호 보정에 관한 다양한 노하우를 이미 특허로 억제하고 있다. 특허에 걸리지 않게 잘 표준화 할 수 있는지 여부라는 기준에서, 아무래도 시간이 걸리는 것은 어쩔 수 없는 것이다.

 덧붙여서 성능에 관해서는 순수하게 전송 속도가 배가 될 뿐이지만, GPU의 사용은 PCI Express의 속도와 GPU의 성능은 거의 무관하며, 그런 의미에서 일반 사용자에게는 그다지 메리트가 없다.

 메리트가 있는 것은 GPGPU로 사용할 경우다. 미래에 SATA Express와 같은 스토리지 계에서도 그 성능이 느껴질지도 모르고, PCI Express Gen4에 대응한 SATA Express가 등장하는 것 또한 대상 될 것이다.

 

 

대기시의 소비 전력을 절감하는 PCI Express 3.1

 

세대적으로 PCI Express Gen3에 해당하는 것이지만, PCI Express 3.0에 몇 가지 ECN (Engineering Change Notice : 기술 변경 알림)을 정리한 것이 조만간 PCI Express 3.1로 출시 될 예정이다. 하지만 이 PCI Express 3.1에 내포된 주요 ECN은 모든 PCI-SIG가 공개하고 있으며, 누구나 참조 가능하다.

 옆길로 빠지면, PCI-SIG의 발표한 스펙 자체는 PCI-SIG의 회원사만 열람 가능하며, 회원 외부 사람이 구입하려고 하면 엄청나게 높은 것 이지만, 왠지 ECN은 무료로 누구나 구할 수 있는 이상한 정책이 있다.

 

 

PCI Express 3.0에 몇 가지 ECN을 정리한 것이 PCI Express 3.1이 된다. 이러한 버전 0.1 업은 과거에도 PCI Express 2.0 → 2.1로 존재했다. 이때도 주요 ECN을 정리한 형태로 되어 있었다

 

 

 그런데 이야기를 되돌리면 이 PCI Express 3.1에 ​​추가된 주요 ECN은 위의 그림대로 3 카테고리에서 총 7 개 정도 된다. 우선은 소비 전력에 관한 것으로, M-PCI Express, L1 Power Management substates with CLKREQ # 두가지 이고,

 

 다음이 성능 향상으로 Enhanced Downstream Port Containment와 Lightweight Notification. 마지막이 기능의 추가로, Precision Time Measurement, Separate Refclk independent SSC, Process Address Space ID 3 개로 된다.

 우선 M-PCI Express, 이것은 MIPI 얼라이언스 M-PHY에 PCI Express를 구현하는 것이다. M-PHY는 휴대전화 등을 위한 것으로, 소비 전력의 제약이 엄격한 대신 배선 길이는 짧고, 반드시 고속은 아니어도 연결에 최적화된 것이다.

 

 

모바일 용도의 PCI Express 사양. M-PHY도 실제로 몇 가지 종류가 있고,최대 5.8Gbps까지 대응할 수 있다. 실제로는 더 느린 속도로 사용하는 것도 가능하고,이 기준을 선택 소비 전력을 최소화 하자는 것이 M-PCI Express의 목적이다.

 

 M-PCI Express는 논리 계층까지는 기존 PCI Express 상태로 물리 계층만을 M-PHY에 옮겨 놓은 것이 된다. 단지 그냥 단순히 대체 할 수 없기 때문에 중간에 Glue Logic (연결해 맞추어 회로)를 사이에 두는 형태로 되어 있어 이 Glue Logic이 M-PCI Express로 규정되어 있다.

 사실 휴대폰이라면 PCI 버스는 핀 수가 너무 많아, 지금까지는 USB 등이 많이 사용되고 왔지만, 서서히 속도면에서 힘들다. 그런데 PCI Express는 Gen1 으로도 2.5Gbps의 고속으로, 신호 레벨은 30cm 정도의 거리의 전송을 견디기 때문에 휴대 전화에는 오버스펙을 넘는다.

 따라서 사용자의 요구에 맞게 전송 속도 등을 제어 할 수 있도록 배려한 것이다. 따라서 M-PCI Expres는 휴대 전화와 일부 태블릿이 메인이 된다.

 PC 용으로 다음 L1 Power Management substates with CLKREQ # 쪽이 영향이 있을 것 같다. 이것은 L1 Link State는 PCI Express 링크 계층에 절전 작업할 하위 상태를 마련해 통신하지 않는 경우 이 하위 상태에 들어갈 수 있게 함으로써 전력 소비를 줄이자는 것이다.

 이 하위 상태에 들어가고 / 나오는 상태 관리, 본래는 옵션 취급이었던 CLKREQ #라는 신호선을 사용하게 되고, 만약 아직 CLKREQ #를 장착하지 않은 경우 추가 요구된다.

 이 ECN은 특히 노트 PC 등에서 대기시의 소비 전력 절감에 효과적이기 때문에 올해부터 점차 구현이 시작되어, 2015 년에는 대부분의 노트북 PC에 도입될 것으로 보인다.

 

PCI Express 대중화 상정 그림. 데스크톱 / 서버 전용에도 절전이 강하게 요구되고 있는 요즘은 2015 년 기준까지 대부분의 경우 L1 Sub-states가 탑재된다 PCI-SIG는 기대하고있다

 

 다음은 성능 개선으로, 이들은 일반 케이스에서 눈에 보일 정도 성능이 향상되는 것은 아니다. Enhanced Downstream Port Containment (eDPC) 오류가 발생했을 때 이를 효율적으로 처리하기 위한 구조를 추가한 것이다.

 Lightweight Notification (LN)은 장치에서 호스트에 캐시된 메모리 주소를 빠르게 액세스하기 위한 프로토콜 추가이다. 이 LN은 특히 GPGPU 등을 이용하여 처리하는 때 장치에서 고속으로 동기화 할 때 등에 유용 할 것이다.

 마지막 기능 추가로, Precision Time Measurement는 이름 그대로 PCI Express를 통해 시간 측정을 정밀하게 행하기 위한 확장이다. Separate Refclk independent SSC (SRIS)는 호스트와 장치가 서로 다른 기준 클록 신호를 사용하기 위한 확장이다.

 Process Address Space ID (PASID)는 PCI Express에서 사용되는 트랜잭션 패킷 (TLP)에 새로 20bit의 PASID를 추가하는 것이다. 이 PASID를 사용하여 하나의 장치를 여러 프로세스에서 공유 할 수 있도록 한다는 PCI Express 장치의 가상화 환경에서 유용하게 되는 확장이다.

 참고로 SRIS의 경우 ECN 명확하게 "여기에는 기술적인 요구를 정리했지만, 실제로 이것을 가능하게 하는 정보를 포함하지 않는다" 라고 써있어, 구현은 당분간 미래가 될 것 같다.

 

 

새로운 폼팩터 M.2, PCI Express OcuLink, SFF-8639

 다른 것으로는 새로운 폼 팩터가 있다. 우선 이미 소니 "VAIO Pro '등으로 채용이 시작된 M.2가있다. M.2 자체의 이야기는 이전에도 언급했지만, SATA Express 마찬가지로 PCI Express와 SATA를 모두 사용할 수있는 모바일 기기용 폼 팩터이다.

 

M.2 사양. 필자가 아는 한에서 리비전 0.7 → 0.9에서는 큰 변경이나 수정은 없었다고하고, 또한 보통 0.9 → 1.0에서도 그다지 큰 문제가 나오는 것은 없기 때문에, 기본적으로는 이대로 원활하게 표준화가 완료 될 것으로 보인다

 

 이 M.2 위의 이미지는 "곧 수정 0.9이 출시된다"고 하지만 이미 수정 0.9 릴리스 되고있어 현재 멤버의 리뷰 기간이 되고 있다. 이 리뷰의 접수 기간이 10 월 14 일까지이며, 여기에 대한 리뷰를 마감한 후, 문제가 없으면 올해 말 또는 내년 초에 리비전 1.0이 출시 될 것이다.

 

현재 진행중인 3 개의 폼 팩터 관련 추가 사양. 가장 오른쪽의 NGFF는 M.2로, 게다가 출시시기가 틀리다 (2013 년 1 분기는 벌써 지나 있는)

 

 그 밖에도 몇 가지 진행중인 것이 있다. 가장 뜨거운 것은 PCI Express OcuLink, 이것은 PCI Express 케이블을 대체 할, Gen3와 아마 Gen4를 x4 레인에서 케이블의 형태로 끌어 낼 수 있는 것이다.

 


OCuLink의 이름의 유래는, Optical 및 Cupper를 모두 지원하는 Link 그래서. 다만 라식 수술 기법의 OCuLink 라는 것과 너무 혼란? 물으니 "그럼 CuOLink 로 하거나 (웃음)"라는 대답이 돌아왔다. 지금까지 바뀌지 않은 모양


 특징적인 것은 배선이 구리 배선과 광을 모두 지원하는 것으로, 실제로 당초는 구리 배선 기반의 것이, 미래는 광 케이블이 될것 이라고 한다. 이쪽은 아직 리비전 0.7을 향한 개발을 하고 있다 지금까지 연내에 리비전 0.9가 출시 될 수 있을까 하는 기준이다.

 다른 하나는 "SFF-8639"에 관한 것이다. 이전 SATA 3.2의 설명시에는 생략했지만, SATA Express에서는 서버 전용의 용도도 고려하고 있어, 이쪽은 "SFF-8639 '이라는 커넥터를 사용하여 연결하게 된다. SATA Express 라는 것으로 PCI Express 신호가 나오는 것이고 이에 관한 사양의 책정도 병행하여 이루어지고 있으며 현재 리비전 0.3 검토가 이뤄지고 있는 중이다.

 

SATA Express 서버를 위한 용도로 사용되는 "SFF-8639" 커넥터 자체는 범용 것이다.


 이상과 같이, SATA 및 USB와 달리 PCI Express 관련은 별로 움직임이 없다. 굳이 말 하자면 연말부터 내년에 걸쳐 M.2가 본격적으로 쓰여질것 이라는 정도로, PCI Express Gen4는 당분간 미래다.

 

 

 

[분석정보] 시리얼이 되는 FSB와 메모리. CTO Gelsinger 인터뷰 2/2부

 

 

[고전 2002년 4월 18일] PCI-SIG가 3GIO의 정식 명칭을 PCI Express 로 결정

 

 

[고전 2001.07.31] 이번 전쟁은 I/O 버스 전쟁이다 드이어 격돌 Hyper Transport 대 3GIO

 

 

[고전 2001/03/02] Intel이 GHz급 차세대 고속 IO버스의 개발 의향을 표명

 

 

[고전 2003.02.21] Intel AGP 8X 후계 그래픽 버스 "PCI Express x16"을 설명

 

 

[고전 2002.09.27] 밝혀진 차세대 직렬 버스 "PCI Express" 사양