모든 이야기

정상 데이터만 주고받는 시험이 놓치는 칩렛 결함

두 die가 각자의 시험에서 정상 데이터를 전송했다. 하지만 서로 연결하고 오류를 주입하자 한쪽은 복구하고 다른 쪽은 잘못된 스택으로 데이터를 넘긴다. chiplet compliance를 평가할 때는 통과라는 단어보다 시험이 물어본 질문을 읽어야 한다. 정상 예제의 성공과 표준이 요구한 경계 동작의 확인은 범위가 다르다.

층마다 시험하는 책임이 다르다

UCIe 1.1 원 백서는 compliance를 물리층, 어댑터, 프로토콜층으로 구분한다. 물리층에서는 신호와 훈련 관련 조건을, 어댑터에서는 flit 형성과 해당 모드의 CRC·replay 등을 다룬다. 상위 프로토콜은 PCIe나 CXL 등의 해당 compliance 체계를 활용한다. 원 백서 5쪽

따라서 PHY 시험을 통과한 결과에 자체 Streaming의 실행 의미까지 검증됐다는 설명을 붙이면 범위가 늘어난다. 반대로 상위 명령이 잘 실행됐다는 관측만으로 전기적인 여유가 모든 조건에서 충분하다고 판단하지 못한다. 시험 대상 층과 관측한 합격 조건을 함께 적는다.

표준의 버전과 실제로 광고한 capability도 범위에 들어간다. 지원하지 않는 선택 기능의 시험과 지원한다고 선언한 기능의 시험을 같은 실패로 세지 않는다. 두 die가 함께 사용할 수 있는 모드와 필요한 설정을 먼저 정한 뒤 그 구성의 규칙을 확인한다.

정상 payload만으로는 헤더 검사를 확인하지 못한다

68B 형식에서는 헤더 2B와 프로토콜 정보 64B가 CRC의 검사 범위에 들어간다. 헤더는 스택이나 순서와 관련한 정보를 포함한다. 공식 튜토리얼은 데이터뿐 아니라 이 헤더도 검사한다는 점을 명시한다. PDF 13쪽, 슬라이드 37

설명용으로 송신기와 수신기 둘 다 CRC를 payload에만 적용하는 같은 결함을 가졌다고 하자. 이 둘을 짝지어 정상 헤더와 정상 payload만 반복해서 보내는 자체 시험에서는 결함이 드러나지 않을 수 있다. 올바른 기준 장치와 비교하면 정상 전송에서도 CRC 불일치를 찾을 수 있다. 또한 검사기를 시험하려면 기준 메시지와 결함을 주입한 메시지 사이의 기대 결과를 구별해야 한다.

예를 들어 헤더의 스택 식별 비트만 뒤집고 CRC 바이트는 원래 값으로 둔다. 올바른 검사에서는 보호된 범위의 단일 비트 오류를 검출해야 한다. payload만 검사하는 결함 구조는 payload가 같으므로 이 변화를 놓칠 수 있다. 두 스택으로 분기하는 수신 경로라면 잘못된 목적지로 넘기는 결과까지 이어질 수 있다.

이것은 실제 제품에서 발견한 결함이나 특정 CRC 초기값·다항식의 구현 예가 아니다. 검사 범위의 빠짐을 검증하는 자체 반례다. 실무 시험에서는 표준에 맞는 CRC와 해당 모드의 오류 전달 규칙을 사용하고, 상위 전달 여부와 오류 상태를 함께 확인한다.

시험 개수를 늘리기 전에 차원을 정한다

자체 시험 계획에 활성 형식 두 개, 전송 방향 두 개, 오류 위치 네 가지를 둔다면 조합은 2×2×4=16개다. 오류 위치를 헤더, 데이터, CRC, 오류 없음으로 나누었다고 하자. 정상 동작과 retrain 직후를 각각 시험하면 32개가 된다.

이 32는 UCIe가 정한 최소 시험 수나 완전한 공식 test suite가 아니다. 어떤 조건을 교차했는지 드러내는 자체 표본 계획이다. 실제로 합법이고 도달 가능한 조합인지 확인하고, 각 경우의 입력과 기대 결과를 정의해야 한다. ‘32개가 모두 통과했다’는 숫자만으로 다른 상태 전이나 timeout까지 검증됐다고 확대하지 않는다.

선택한 두 형식의 정상 파서, 한 방향의 CRC 경로, 초기화 직후의 상태는 서로 다른 코드나 회로를 사용할 수 있다. 이미 통과한 경우를 복사해 반복하는 대신 분기와 상태가 달라지는 지점을 확인하면 시험의 정보가 늘어난다. 실패가 나는 경우에는 어느 층의 어떤 요구사항을 위반했는지 기록한다.

기준 장치도 먼저 기준을 확인한다

UCIe 1.1 백서는 golden die를 먼저 시험하고 채널을 특성화한 뒤 DUT와 연결하는 접근을 설명한다. 기준 장치의 주입 기능과 관측이 틀리면 DUT의 실패와 시험 장치의 실패를 구분하기 어렵다. 오류가 없는 전송을 정상으로 관측하는 대조와, 의도한 오류를 실제로 만들었다는 대조를 함께 준비한다.

compliance의 결과를 통합에 사용할 때는 기준 장치의 구성, 패키지·채널 조건, 시험 모드와 지원 기능을 보존한다. 이후 실제 짝과의 상호운용 시험에서는 역할, 소프트웨어 발견, 상위 기능의 의미도 확인한다. 규격 검사와 실제 시스템의 사용 시나리오는 서로 연결되지만 한 번의 통과로 모든 조건을 대신하지는 않는다.

chiplet compliance는 성공한 연결을 재현 가능한 계약으로 설명하는 방법이다. 층과 버전, 활성 기능, 오류 위치와 상태 전이를 명시하고 기대한 결과를 확인한다. 이렇게 남긴 통과 기록이라야 다른 die를 선택하거나 구성을 바꿀 때 재사용할 수 있는 근거가 된다.