내장된 자가-테스트 및 디버그 특징을 갖는 동시 코드검사기 및 하드웨어 효율적인 고속 I/O |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
申请号 | KR1020070006687 | 申请日 | 2007-01-22 | 公开(公告)号 | KR101423328B1 | 公开(公告)日 | 2014-07-24 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
申请人 | 실리콘 이미지, 인크.; | 发明人 | 술,친송; 최,훈; 안,기정; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
摘要 | 고속 입/출력 시스템들에서 오류들을 테스트하기 위한 방법, 디바이스 및 시스템이 개시된다. 이 시스템 및 디바이스는, 패킷들을 포함하는 데이터 스트림의 동적 속성들 및 데이터 패킷 정적 속성들을 통해 부호화된 데이터 패킷들 내의 오류들을 검사하는 C3(concurrent code checker)를 포함할 수 있다. 이 방법은 패킷들을 포함하는 데이터 스트림의 동적 속성들 및 데이터 패킷 정적 속성들을 사용하여 무효의 부호화된 패킷들을 검출하는 단계를 수반할 수 있다. 무시(don't care)의 조건들을 사용하여 C3 로직의 설계를 최적화하는 방법이 개시되며, C3 회로는 감소된 로직 요소 및 반도체 면적 필요조건을 가진다. 고속 입/출력 시스템, 동시 코드 검사기, 무시(don't care) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
权利要求 | 인입하는 직렬화된(serialized) 인코딩된 데이터를 인코딩된 데이터 패킷으로 직병렬 변환하도록 구성된 직병렬 변환기(deserializer); 상기 인코딩된 데이터 패킷이 유효인지 또는 무효인지의 여부를 판정하도록 구성된 코드 북(code book) - 상기 코드 북은 인코딩 스킴의 모든 유효 코드워드들 및 상기 인코딩 스킴의 적어도 하나의 무효 코드워드를 포함하고, 상기 무효 코드워드는 테스트 중인 집적 회로의 내장된 자가 테스트를 수행하기 위한 적어도 하나의 집적 회로(IC) 생산 테스트 스펙을 만족시킴 -; 상기 인코딩된 데이터 패킷이 유효인지 또는 무효인지를 검사하도록 구성된 스펙 로직 - 무효 인코딩된 데이터 패킷은 상기 인코딩된 데이터 패킷을 인코딩하는데 이용된 인코딩 스킴의 스펙(specification)들을 위반함 -; 및 동작시, 상기 인코딩된 데이터 패킷이 무효인 경우, 전송 오류를 등록하는 데이터 패킷 오류 로직 을 포함하는 수신기. 제1항에 있어서, 상기 수신기는 고속 입력/출력(HSIO) 수신기인 수신기. 삭제 제1항에 있어서, 동작시, 스펙 로직은 상기 데이터 패킷의 정적 특성들 및 상기 데이터 패킷을 포함하는 데이터 스트림의 동적 특성들을 이용하여 상기 데이터 패킷의 무효성을 검사하는 수신기. 제4항에 있어서, 상기 데이터 패킷은, DC-밸런스드 클럭-내장형 인코딩 스킴(DC-balanced clock-embedded encoding scheme)을 이용하여 인코딩된 10 비트 코드워드인 수신기. 제5항에 있어서, 상기 코드 북은, 상기 10 비트 코드워드가 상기 데이터 패킷을 인코딩하는데 이용되는 상기 인코딩 스킴에 부합하는지의 여부를 판정하는데 이용될 수 있는 복수의 값을 포함하는 수신기. 제6항에 있어서, 상기 스펙 로직은 상기 10 비트 코드워드가 무효인지의 여부를 판정하는데 이용될 수 있는 11개의 논리식들을 포함하는 수신기. 제1항에 있어서, 상기 인입하는 데이터는 10 비트 코드워드들의 스트림이며, 동작시, 상기 스펙 로직은 상기 10 비트 코드워드들의 스트림에서 1들 및 0들의 수가 균형을 이루는지의 여부를 판정하는 수신기. 제1항에 있어서, 상기 인입하는 데이터는 10 비트 코드워드들의 스트림이며, 동작시, 상기 스펙 로직은 상기 10 비트 코드워드들의 스트림의 RD(running disparity)가 상기 인코딩 스킴을 위반하는지의 여부를 판정하는 수신기. 제2항에 있어서, 상기 스펙 로직은 10 비트 코드워드가 무효인지의 여부를 판정하는데 사용될 수 있는 11개의 논리식들을 포함하는 수신기. 제1항에 있어서, 비트 오류율(bit-error-rate) 카운터를 더 포함하며, 상기 비트 오류율 카운터는 상기 데이터 패킷이 무효인 경우에 증분되는 수신기. 제1항에 있어서, MISR(multiple input signature register)을 더 포함하며, 동작시, 상기 MISR은 상기 데이터 패킷이 무효인 경우에 오류를 등록하는 수신기. 제1항에 있어서, 상기 데이터 패킷이 무효인 경우에 내부 레지스터들을 조사하기 위해서 클럭을 정지(halt)시키는 테스트 클럭 제어 구조를 더 포함하는 수신기. 제1항에 있어서, 상기 스펙 로직은 4개의 상태들을 갖는 유한 상태 기계(finite-state-machine)(FSM)를 포함하며, 동작시, 상기 FSM은 상기 데이터 패킷이 그 일부인 데이터 스트림을 추적하는 수신기. 제14항에 있어서, 상기 FSM은 상기 데이터 스트림으로부터 개시 포인트를 추출함으로써 자가 동기(self synchronize)하는 수신기. 제14항에 있어서, 동작시, 상기 FSM은 인터럽트없이 비트 오류율(BER)의 연속 측정이 수행될 수 있도록 오류들로부터 복구하도록 구성되는 수신기. 제16항에 있어서, 자가 동기하도록 구성되는 MISR을 더 포함하는 수신기. 제17항에 있어서, 동작시 상기 MISR은 이용된 인코딩 스킴과 무관한 수신기. 제2항에 있어서, 상기 스펙 로직은, 복수의 FSM을 포함하고, 동작시, 제1 FSM은 상기 인코딩된 데이터 패킷을 포함하는 데이터 스트림의 DC 밸런스를 추적하고 제2 FSM은 상기 데이터 스트림의 RD값을 추적하는 수신기. 제19항에 있어서, 상기 코드북은 ROM(read-only memory)을 이용하여 구현되고, 동작시, 인코딩된 데이터 패킷들에 맞춤가능한 RD값들을 허용함으로써 구성가능한 테스팅을 허용하는 수신기. 제2항에 있어서, 상기 스펙 로직은 오류 검출 회로를 포함하고, 상기 오류 검출 회로는, 데이터 스트림에서의 인코딩된 데이터 패킷의 DC값을 판정하도록 구성된 동시 코드 검사기(C3) 로직; 및 상기 데이터 스트림의 상태를 추적하도록 구성된 FSM 을 포함하고, 동작시, 상기 C3 로직은 상기 인코딩된 데이터 패킷의 DC값을 상기 FSM에 송신하며, 상기 FSM은 상기 데이터 스트림의 현재 상태가 주어지면 상기 DC값을 이용하여 오류가 발생하였는지의 여부를 판정하는 수신기. 제1항에 있어서, 상기 수신기는 고속 입력/출력(HSIO) 수신기이고, 상기 코드 북은 인코딩 스킴의 모든 유효 코드워드들, 및 무효 코드워드들이 테스트 중인 집적 회로의 내장된 자가 테스트를 수행하기 위한 적어도 하나의 집적 회로(IC) 생산 테스트 스펙을 만족시키는 한, 상기 인코딩 스킴의 적어도 일부의 무효 코드워드들을 포함하고, 동작시, 스펙 로직은 상기 데이터 패킷의 정적 특성들 및 상기 데이터 패킷을 포함하는 데이터의 스트림의 동적 특성을 이용하여 상기 데이터 패킷의 무효성을 검사하고, 상기 데이터 패킷은 DC 밸런스드 클럭 내장형 인코딩 스킴 또는 RD 인코딩 스킴 중 어느 하나를 이용하여 인코딩된 10 비트 코드워드이고, 상기 코드 북은, 상기 10 비트 코드워드가 상기 데이터 패킷을 인코딩하는데 이용되는 상기 인코딩 스킴과 부합하는지의 여부를 판정하는데 이용될 수 있는 복수의 값을 포함하고, 상기 인코딩 스킴이 DC 밸런스드 인코딩 스킴인 경우, 상기 인입하는 데이터는 10 비트 코드워드들의 스트림이고, 동작시, 상기 스펙 로직은 상기 10 비트 코드워드들의 스트림에서 1들 및 0들의 수가 균형을 이루었는지의 여부를 판정하고, 상기 인코딩 스킴이 RD 인코딩 스킴인 경우, 상기 인입하는 데이터는 상기 10 비트 코드워드들의 스트림이고, 동작시, 상기 스펙 로직은 상기 10 비트 코드워드들의 스트림의 RD가 상기 인코딩 스킴을 위반하는지의 여부를 판정하는 수신기. 제1항에 있어서, 상기 스펙 로직은 복수의 유한 상태 기계(FSM)를 포함하고, 동작시, 제1 FSM은 상기 인코딩된 데이터 패킷을 포함하는 데이터 스트림의 DC 밸런스를 추적하고, 제2 FSM은 상기 데이터 스트림의 RD 값을 추적하는 수신기. 제23항에 있어서, 상기 코드 북은 ROM을 이용하여 구현되고, 동작시, 인코딩된 데이터 패킷들에 맞춤가능한 RD 값들을 허용함으로써 구성가능한 테스팅을 허용하는 수신기. 데이터의 무결성(integrity)을 검증하는 방법으로서, 컴퓨팅 디바이스에 의해, 인입하는 직렬화된 인코딩된 데이터 패킷을 수신하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 인입하는 직렬화된 인코딩된 데이터 패킷을 직병렬 변환(deserialize)하는 단계; 상기 컴퓨팅 디바이스에 의해, 데이터 패킷의 유효성을 검사하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 인코딩된 데이터 패킷의 테스트 응답값을 도출하는 단계; 상기 컴퓨팅 디바이스에 의해, 상기 테스트 응답값이 유효 테스트 응답값인지 무효 테스트 응답값인지의 여부를 판정하는 단계; 및 상기 테스트 응답값이 무효인 경우, 상기 컴퓨팅 디바이스에 의해, 상기 인입하는 직병렬 변환된 인코딩된 데이터 패킷을 실패한 것으로서 플래그(flagging)하는 단계 를 포함하는 데이터 무결성 검증 방법. 제25항에 있어서, 상기 테스트 응답값은 DC값, RD값, 또는 상기 DC값과 RD값의 조합을 포함하고, 상기 인입하는 직렬화된 인코딩된 데이터 패킷은 DC 밸런스드 클럭 내장형 인코딩 스킴을 이용하여 인코딩된 10비트 코드워드이고, 직병렬 변환된 인코딩된 데이터 패킷의 상기 DC값을 판정하는 단계는 상기 10비트 코드워드에서의 1들과 0들의 비를 포함하고, 상기 테스트 응답값이 무효인지의 여부를 판정하는 단계는, 상기 인코딩된 데이터 패킷을 포함하는 데이터 스트림의 상기 RD값을 모델링하는 FSM을 이용하고, 상기 방법은, 상기 데이터 패킷이 실패한 것으로서 플래그되면, 상기 컴퓨팅 디바이스에 의해, 비트 오류율 카운터를 증분하는 단계; 상기 컴퓨팅 디바이스에 의해, MISR(multiple input signature register)를 이용하여 오류를 등록하는 단계; 상기 데이터 패킷이 실패한 것으로서 플래그되면, 상기 컴퓨팅 디바이스에 의해, 클럭을 정지시키는 단계; 및 상기 컴퓨팅 디바이스에 의해, 내부 레지스터들을 조사하여 상기 오류가 발생한 위치를 판정하는 단계 를 더 포함하는 데이터 무결성 검증 방법. 오류 검출 회로로서, 데이터 스트림에서의 인코딩된 데이터 패킷의 DC값을 판정하도록 구성된 동시 코드 검사기(C3) 로직; 및 상기 데이터 스트림의 상태를 추적하도록 구성된 FSM 을 포함하며, 동작시, 상기 C3 로직은 상기 인코딩된 데이터 패킷의 DC값을 상기 FSM에 송신하며, 상기 FSM은 상기 데이터 스트림의 현재 상태가 주어지면 상기 DC값을 이용하여 오류가 발생하였는지의 여부를 판정하는 오류 검출 회로. 제27항에 있어서, 상기 FSM은 상기 데이터 스트림의 DC 상태 또는 상기 데이터 스트림의 RD 상태 또는 상기 데이터 스트림의 상기 DC 상태 및 상기 RD 상태를 추적하여 오류가 발생하였는지의 여부를 판정하고, 상기 C3 로직은 가산기 및 DC 맵퍼(mapper)를 포함하고, 상기 C3 로직은 코드 오류 검사기(CEC) 및 DC 계산기를 포함하고, 상기 CEC는 상기 데이터 패킷이 상기 데이터 패킷의 인코딩에서의 인코딩 스킴에 대한 유효 코드워드인지의 여부를 판정하도록 구성되고, 상기 DC 계산기는 상기 인코딩된 데이터 패킷의 DC값에 대응하는 신호를 어서트(assert)하도록 구성되며, 동작시, 상기 어서트된 신호는 상기 FSM에 의해 사용되어, 오류가 발생하였는지의 여부를 판정하고, 상기 C3 로직은 RD 타입 회로 및 DC 회로를 포함하고, 상기 RD 타입 회로는 RD 타입의 상기 인코딩된 패킷으로부터 도출된 신호를 어서트하도록 구성되고, 상기 DC 회로는 상기 패킷에 DC값을 할당하도록 구성되고, 상기 DC 맵퍼는 상기 할당된 DC값을 맵핑된 신호로서 어서트하도록 구성되고, 동작시, 상기 RD 타입 신호 및 상기 맵핑된 신호는 상기 FSM에 의해 사용되어, 오류가 발생하였는지의 여부를 판정하고, 상기 CEC는 무효 코드워드가 제공되는 경우, 무효 신호를 생성하고, 동작시, 상기 무효 신호는, DC/RD 계산 회로의 출력 신호들을 대신하여, 정정 출력이 요구되는 상태들의 수를 감소시킴으로써 상기 FSM 및 DC/RD 계산 회로를 최적화하게 하는 오류 검출 회로. 컴퓨팅 디바이스의 동작을 제어하기 위한 명령어들을 포함하는 컴퓨터 프로그램을 갖는 컴퓨터 판독가능한 기록 매체로서, 상기 명령어들은 인입하는 직렬화된 인코딩된 데이터 패킷을 수신하는 단계; 상기 인입하는 직렬화된 인코딩된 데이터 패킷을 직병렬 변환하는 단계; 데이터 패킷의 유효성을 검사하는 단계; 상기 인코딩된 데이터 패킷의 테스트 응답값을 도출하는 단계; 상기 테스트 응답값이 유효 또는 무효값인지의 여부를 판정하는 단계; 및 상기 테스트 응답값이 무효인 경우, 상기 인입하는 직병렬 변환된 인코딩된 데이터 패킷을 실패한 것으로서 플래그하는 단계 를 수행함으로써, 상기 컴퓨팅 디바이스가 데이터의 무결성을 검증할 수 있게 하는 명령어들을 포함하는, 컴퓨터 판독가능한 기록 매체. 제29항에 있어서, 상기 테스트 응답값은 DC값, RD값, 또는 상기 DC 및 RD 값들 양자의 조합을 포함하는 컴퓨터 판독가능한 기록 매체. 삭제 삭제 삭제 삭제 삭제 고속 입력/출력(HSIO) 수신기로서, 인입하는 직렬화된 인코딩된 데이터를 인코딩된 데이터 패킷으로 직병렬 변환하도록 구성된 직병렬 변환기; 상기 인코딩된 데이터 패킷이 무효인지의 여부를 판정하도록 구성된 코드 북 - 상기 코드 북은 인코딩 스킴의 모든 유효 코드워드들, 및 무효 코드워드들이 테스트 중인 집적 회로의 내장된 자가 테스트를 수행하기 위한 적어도 하나의 집적 회로(IC) 생산 테스트 스펙을 만족시키는 한, 상기 인코딩 스킴의 적어도 일부의 무효 코드워드들을 포함함 - ; 상기 인코딩된 데이터 패킷이 유효인지 또는 무효인지를 검사하도록 구성된 스펙 로직 - 무효 데이터 패킷은 상기 코드 북의 상기 스펙들을 위반함 - ; 및 동작시, 상기 인코딩된 데이터 패킷이 무효인 경우, 전송 오류를 등록하는 데이터 패킷 오류 로직 을 포함하는 고속 입력/출력(HSIO) 수신기. 제36항에 있어서, 상기 수신기는, 동시 코드 검사기를 더 포함하고, 상기 코드 북 및 상기 적어도 하나의 집적 회로(IC) 생산 테스트 스펙은 상기 동시 코드 검사기 내에 구성되는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 적어도 하나의 집적 회로(IC) 생산 테스트 스펙은 DC 집적 회로(IC) 생산 테스트 스펙 및 RD 집적 회로(IC) 생산 테스트 스펙을 포함하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 적어도 하나의 집적 회로(IC) 생산 테스트 스펙은 DC 집적 회로(IC) 생산 테스트 스펙 및 RD 집적 회로(IC) 생산 테스트 스펙 양자를 포함하고, 상기 DC 및 RD 집적 회로(IC) 생산 테스트 스펙들은 FSM으로서 구현되는 고속 입력/출력(HSIO) 수신기. 제39항에 있어서, 상기 인코딩된 데이터 패킷들이 상기 코드북 및 상기 DC 집적 회로(IC) 생산 테스트 스펙 및 상기 RD 집적 회로(IC) 생산 테스트 스펙의 논리식들을 사용하여 계속 인코딩되는 동안에 유효성 또는 무효성에 대한 검사가 수행되는 고속 입력/출력(HSIO) 수신기. 제38항에 있어서, 상기 인코딩된 데이터 패킷들은 모두 유효성 또는 무효성에 대해 개별적으로 검사되고, 다수의 데이터 패킷들을 포함하는 데이터 스트림은 상기 코드 북, 및 코드워드들의 데이터 스트림을, DC-균형을 이루도록 하는 DC-밸런스드 인코딩 스킴을 이용하고 여분의 0들 및 1들이 수신되었는지의 여부를 추적하는 코드워드들의 RD 추적을 이용하는 것을 포함하는 상기 적어도 하나의 집적 회로(IC) 생산 테스트 스펙의 논리식들을 이용하여 계속 인코딩되는 동안 유효성 또는 무효성에 대해 검사되는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 코드 북은 조합 로직 회로 및 ROM(read-only memory) 중 적어도 하나를 포함하도록 구현되는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 적어도 하나의 집적 회로(IC) 생산 테스트 스펙은 FSM을 이용하여 구현되는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 적어도 하나의 집적 회로(IC) 생산 테스트 스펙은, (ⅰ) DC 스펙 - 상기 수신기는 코드워드의 상기 DC 스펙 및 데이터 스트림의 상기 DC 스펙을 검증하는 DC 로직 유닛을 더 포함함 - ; 및 (ⅱ) RD 스펙 - 상기 수신기는 코드워드의 상기 RD 스펙 및 데이터 스트림의 상기 RD 스펙을 검증하는 RD 로직 유닛을 더 포함함 - 중 적어도 하나를 포함하는 고속 입력/출력(HSIO) 수신기. 제44항에 있어서, 비트 오류율 카운터를 더 포함하며, 상기 비트 오류율 카운터는 상기 데이터 패킷이 무효인 경우에 증분되는 고속 입력/출력(HSIO) 수신기. 제44항에 있어서, MISR을 더 포함하며, 동작 시, 상기 MISR은 상기 데이터 패킷이 무효인 경우에 오류를 등록하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 데이터 패킷이 무효인 경우에 내부 레지스터를 검사하기 위해서 클럭을 정지(halt)시키는 테스트 클럭 제어 구조를 더 포함하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 동시 코드 검사기는 4개의 상태들을 갖는 FSM을 포함하며, 동작 시, 상기 FSM은 상기 데이터 패킷이 그 일부인 데이터 스트림을 추적하는 고속 입력/출력(HSIO) 수신기. 제48항에 있어서, 상기 FSM은 상기 데이터 스트림으로부터 개시 포인트를 추출함으로써 자가 동기하는 고속 입력/출력(HSIO) 수신기. 제48항에 있어서, 상기 데이터 패킷이 무효인 경우에 내부 레지스터를 검사하기 위해서 클럭을 정지시키는 테스트 클럭 제어 구조를 더 포함하는 고속 입력/출력(HSIO) 수신기. 제48항에 있어서, 동작 시, 상기 FSM은 인터럽트 없이 비트 오류율(BER)의 연속 측정이 수행될 수 있도록 오류들로부터 복구하도록 구성되는 고속 입력/출력(HSIO) 수신기. 제46항에 있어서, 동작시, 상기 MISR은 이용된 인코딩 스킴과 무관한 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 동시 코드 검사기는 복수의 FSM을 포함하고, 동작시, 제1 FSM은 상기 인코딩된 데이터 패킷을 포함하는 데이터 스트림의 DC 밸런스를 추적하고 제2 FSM은 상기 데이터 스트림의 RD값을 추적하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 코드북은 ROM을 이용하여 구현되고, 동작시, 인코딩된 데이터 패킷들에 맞춤가능한 RD값들을 허용함으로써 구성가능한 테스팅을 허용하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 동시 코드 검사기는, 데이터 스트림에서의 상기 인코딩된 데이터 패킷의 DC값을 판정하도록 구성된 동시 코드 검사기 로직; 및 상기 데이터 스트림의 상태를 추적하도록 구성된 FSM 을 더 구비하고, 동작시, 상기 동시 코드 검사기 로직은 상기 인코딩된 데이터 패킷의 DC값을 상기 FSM에 송신하며, 상기 FSM은 상기 데이터 스트림의 현재 상태가 주어지면 상기 DC값을 이용하여 오류가 발생하였는지 여부를 판정하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 수신기의 상기 직병렬 변환기, 상기 동시 코드 검사기 및 디코더는, 테스트 중인 디바이스에 대한 내장 테스트 성능을 제공하기 위해 테스트할 디바이스와 동일한 칩 상에 구현되는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 동작시, 상기 인코딩된 데이터 패킷이 무효인 경우, 전송 오류를 등록하는 데이터 패킷 오류 로직을 더 포함하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 수신기는 FSM을 더 포함하고, 상기 동시 코드 검사기는 데이터 스트림의 인코딩된 데이터 패킷의 DC값을 판정하고, 상기 FSM은 상기 데이터 스트림의 상태를 추적하도록 구성되고, 상기 동시 코드 검사기는 상기 인코딩된 데이터 패킷의 DC값을 상기 FSM에 송신하기 위한 수단 - 상기 FSM은 상기 데이터 스트림의 현재 상태가 주어지면 상기 DC값을 이용하여 오류가 발생하였는지를 판정함 - 을 포함하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 동시 코드 검사기는 단일의 의사 랜덤 패턴 시퀀스만을 생성할 수 있는 PRBS 다항식과 무관하게 구현되고, 상기 동시 코드 검사기는 다수의 의사 랜덤 패턴 시퀀스를 검사할 수 있고, 상기 동시 코드 검사기는 제어 신호들에 응답하여 온라인 시스템 모드, 오프라인 집적 회로(IC) 생산 테스트 모드, 및 디버깅 모드로 동작하도록 구성되고, 상기 코드 북은, 상기 데이터 패킷의 무효성을 검사하기 위해 인코딩된 데이터 패킷에 적용되는 논리식들로 유효 코드워드들을 합성함으로써 구현되고, 제어 클럭을 정지시키는데 이용되는 TCCS(test clock control structure)를 더 포함하고, 디버깅이 발생하여 상기 동시 코드 검사기에 결합되게 하고, 상기 TCCS는 수신기 회로 상의 데이터 버스를 조절하는 상기 제어 클럭을 정지시키고, 상기 데이터 스트림의 전송을 조절하여, 디버깅이 발생하게 하도록 동작가능하고, 상기 동시 코드 검사기는, 오류가 발생하는 경우 상기 수신기의 동작을 정지시키도록 구성되어 레지스터들의 내부 값들을 검사함으로써 오류 디버깅이 진행하도록 허용하는 고속 입력/출력(HSIO) 수신기. 제37항에 있어서, 상기 동시 코드 검사기는, 코드 디리미터 검출기; 동시 코드 검사기 로직; RD FSM(running disparity finite state machine); MISR 카운터; 및 클럭 정지 회로 를 더 포함하고, 상기 동시 코드 검사기는 DC/RD FSM에 전달된 코드워드에 대한 DC 및/또는 RD 값을 생산하는 고속 입력/출력(HSIO) 수신기. 고속 입력/출력(HSIO) 수신기로서, 인입하는 직렬화된 인코딩된 데이터를 인코딩된 데이터 패킷으로 직병렬 변환하는 수단; 상기 인코딩된 데이터 패킷이 무효인지의 여부를 판정하는 코드 북 수단 - 상기 코드 북 수단은 인코딩 스킴의 모든 유효한 코드워드들, 및 무효 코드워드들이 테스트 중인 집적 회로의 내장된 자가 테스트를 수행하기 위한 적어도 하나의 집적 회로(IC) 생산 테스트 스펙을 만족시키는 한 상기 인코딩 스킴의 적어도 일부의 무효 코드워드들을 포함함 - ; 상기 인코딩된 데이터 패킷이 유효인지 무효인지를 검사하는 스펙 로직 수단 - 무효 데이터 패킷은 상기 코드 북 수단의 스펙들을 위반함 - ; 및 동작시, 상기 인코딩된 데이터 패킷이 무효인 경우, 데이터 패킷 전송 오류를 등록하는 등록 수단 을 포함하는 고속 입력/출력(HSIO) 수신기. 고속 입력/출력(HSIO) 수신기를 동작시키는 방법으로서, 인입하는 직렬화된 인코딩된 데이터를 인코딩된 데이터 패킷으로 직병렬 변환하는 단계; 상기 인코딩된 데이터 패킷이 무효인지의 여부를 코드 북을 이용하여 판정하는 단계 - 상기 코드 북은 인코딩 스킴의 모든 유효한 코드워드들, 및 무효 코드워드들이 테스트 중인 집적 회로의 내장된 자가 테스트를 수행하기 위한 적어도 하나의 집적 회로(IC) 생산 테스트 스펙을 만족시키는 한 상기 인코딩 스킴의 적어도 일부의 무효 코드워드들을 포함함 - ; 상기 인코딩된 데이터 패킷이 유효인지 무효인지를 검사하는 단계 - 무효 데이터 패킷은 상기 코드 북의 집적 회로(IC) 생산 테스트 스펙을 위반함 - ; 및 동작시, 상기 인코딩된 데이터 패킷이 무효인 경우, 데이터 패킷 전송 오류를 등록하는 단계 를 포함하는 고속 입력/출력(HSIO) 수신기 동작 방법. 제62항에 있어서, 상기 코드 북, 및 동시 코드 검사기 내의 적어도 하나의 집적 회로(IC) 생산 테스트 스펙을 이용하여 상기 동시 코드 검사기를 동작시키는 단계; 동작시, 스펙 로직이 상기 데이터 패킷의 정적 특성들 및 상기 데이터 패킷을 포함하는 데이터의 스트림의 동적 특성들을 이용하여 상기 데이터 패킷의 무효성을 검사하는 단계; 상기 인입하는 직렬화된 인코딩된 데이터는 10 비트 코드워드들의 스트림이고, 동작시, 상기 스펙 로직은 10 비트 코드워드들의 스트림에서의 1들 및 0들의 수가 균형을 이루었는지의 여부를 판정하거나, 상기 10 비트 코드워드들의 스트림의 RD가 상기 인코딩 스킴을 위반하는 지의 여부를 판정하는 단계; 상기 데이터 패킷이 무효인 경우, 비트 오류율 카운터를 증분시키는 단계; 상기 데이터 패킷이 무효인 경우, MISR 내에 오류를 등록하는 단계; 및 상기 데이터 패킷이 무효인 경우, 내부 레지스터들을 검사하기 위해 클럭을 정지시키는 단계 를 더 포함하고, 상기 스펙 로직은 4개의 상태들로 동작하는 FSM을 포함하고, 동작시, 상기 FSM은 상기 데이터 패킷이 그 일부인 데이터 스트림을 추적하고, 상기 데이터 스트림으로부터 개시 포인트를 추출함으로써 상기 FSM을 자가 동기하고, 상기 FSM은 인터럽트 없이 비트 오류율(BER)의 연속 측정이 수행될 수 있도록 오류들로부터 복구하고, 동작시, 상기 MISR은 이용된 인코딩 스킴과 무관하고, 상기 스펙 로직은 복수의 FSM을 포함하고, 동작시, (ⅰ) 제1 FSM을 이용하여 상기 인코딩된 데이터 패킷을 포함하는 데이터 스트림의 DC 밸런스를 추적하고, (ⅱ) 제2 FSM을 이용하여 상기 데이터 스트림의 RD값을 추적하고, ROM을 이용하여 상기 코드 북을 구현하고, 동작시, 상기 인코딩된 데이터 패킷들에 맞춤가능한 RD값들을 허용함으로써 구성가능한 테스팅을 허용하는 고속 입력/출력(HSIO) 수신기 동작 방법. 제63항에 있어서, 스펙 로직을 이용하여 검사하는 단계는, 오류 검출 회로를 이용하여 오류들을 검출하는 단계를 더 포함하고, 상기 오류들을 검출하는 단계는, 동시 코드 검사기(C3) 로직을 이용하여 데이터 스트림의 인코딩된 데이터 패킷의 DC값을 판정하는 단계; 및 FSM에서 상기 데이터 스트림의 상태를 추적하는 단계 를 포함하고, 동작시, 상기 C3 로직은 상기 인코딩된 데이터 패킷의 상기 DC값을 상기 FSM에 송신하며, 상기 FSM은 상기 데이터 스트림의 현재 상태가 주어지면 상기 DC값을 이용하여 오류가 발생하였는지 여부를 판정하는 고속 입력/출력(HSIO) 수신기 동작 방법. 제63항에 있어서, 시스템을 테스팅 모드로 구성하기 위해 상기 동시 코드 검사기 (C3) 로직의 적어도 하나의 레지스터를 프로그래밍하는 단계; 코드워드들을 모니터링하고 검출된 유효 코드워드들의 수를 판정하는 단계; 미리 결정된 수의 유효 코드워드가 검출되었다면, 코드 디리미터 검출기(CDD) 내의 테스트 제어 회로가 RD FSM(running disparity finite state machine)을 인에이블하여 데이터 스트림의 유효성을 검사하게 하는 단계; 상기 RD FSM이 인에이블되면, 상기 RD FSM을 이용하여 상기 데이터 스트림을 모니터링하고 상기 데이터 스트림에 동기화시키는 단계; 동기화 후, 완료 때까지 상기 C3 로직은 상기 집적 회로(IC) 생산 테스트 스펙을 계속하여 추적하는 단계; 및 테스트가 완료되면, 상기 C3 로직을 디스에이블시키는 단계 를 더 포함하는 고속 입력/출력(HSIO) 수신기 동작 방법. 제65항에 있어서, 상기 시스템을 테스팅 모드로 구성하는 단계는 상기 시스템을 온라인 테스팅 모드로 구성하는 단계를 포함하고, 상기 온라인 테스팅 모드는, 데이터 스트림의 시작을 동기화하기 위해 상기 코드 디리미터 검출기(CDD)에서 유효 코드워드(valCW)를 인에이블하는 단계; 및 CEC를 인에이블하기 위한 코드 오류 검사기 제어 신호(CEC_en), 및 이용가능한 테스트 스펙들로부터 테스트 스펙을 선택하기 위한 DC/RD 제어 신호들(DC 또는 RD 스펙 검사)을 구성하는 단계 를 더 포함하는 고속 입력/출력(HSIO) 수신기 동작 방법. 프로세싱 로직을 갖는 컴퓨팅 디바이스를 포함하는 고속 입력/출력(HSIO) 수신기의 동작을 제어하기 위한 명령어들을 포함하는 컴퓨터 프로그램을 갖는 컴퓨터 판독가능한 기록 매체로서, 상기 명령어들은, 인입하는 직렬화된 인코딩된 데이터를 인코딩된 데이터 패킷으로 직병렬 변환하는 단계; 상기 인코딩된 데이터 패킷이 무효인지의 여부를 코드 북을 이용하여 판정하는 단계 - 상기 코드 북은 인코딩 스킴의 모든 유효한 코드워드들, 및 무효 코드워드들이 테스트 중인 집적 회로의 내장된 자가 테스트를 수행하기 위한 적어도 하나의 집적 회로(IC) 생산 테스트 스펙을 만족시키는 한, 상기 인코딩 스킴의 적어도 일부의 무효 코드워드들을 포함함 - ; 상기 인코딩된 데이터 패킷이 유효인지 또는 무효인지를 검사하는 단계 - 무효 데이터 패킷은 상기 코드 북의 집적 회로(IC) 생산 테스트 스펙을 위반함 - ; 및 동작시, 상기 인코딩된 데이터 패킷이 무효인 경우, 데이터 패킷 전송 오류를 등록하는 단계 를 포함하는 수신 방법의 단계들을 수행하기 위한 명령어들인 컴퓨터 판독가능한 기록 매체. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
说明书全文 |
|
등식 번호 | 등식값 |
1 | a=b=c=d |
2 | P13&!e&!i |
3 | P31&e&i |
4 | f=g=h=j |
5 | e=i=f=g=h |
6 | i!=e=g=h=j |
7 | (e=i!=g=h=j)&!(c=d=e) |
8 | !P31&e&!i&!g&!h&!j |
9 | !P13&!e&i&g&h&j |
10 | !a&!b&c&d&e&i&!f&!g&!h&j |
11 | a&b&!c&!d&!e&!i&f&g&h&!j |
표 1. 예시적인 IBM 8B/10B 등식들
일부 실시예들에서, 동시 코드 검사기(C3)는 BER 카운터 및/또는 MISR(multiple input signature register)에 연결될 수 있다. C3는 데이터 스트림에서 오류가 발생할 때 BER 카운터를 증분한다. BER 카운터의 값은 데이터 스트림에서의 오류 레이트를 결정하는데 이용될 수 있다. 일부 실시예들에서, MISR은 데이터 스트림을 컴팩트하게 만들고 테스트의 종료시 서명(signature)을 제공할 수 있다. 서명은 데이터 스트림에서의 가능한 오류들을 나타낼 수 있다. 종래의 CRC(Cyclic Redunduncy Check) 기반의 체크섬 방법들에 비하여, MISR은 보다 적은 하드웨어로 구현될 수 있고 매우 간단한 동기화 메커니즘을 이용할 수 있다. MISR(Multiple Input Signature Register)의 예시적인 기술은 다음의 서적에서 발견될 수 있다: Digital Systems Testing and Testable Design, M. abramovici, M. Breuer, A, Friedman, Wiley-IEEE Press, 1994(인용에 의하여 본 명세서에 포함됨).
CRC(cyclic redunduncy check)는 통상적으로, 컴퓨터 파일의 블럭 또는 네트워크 트래픽의 패킷과 같은 데이터의 블럭에 대하여 체크섬(checksum)(통상적으로, 적은, 고정된 비트수)을 생성하는데 이용된 해시 함수의 한 종류일 수 있다. 체크섬은 송신 또는 기억 이후 오류를 검출하는데 이용될 수 있다. 송신 또는 기억 이전에 CRC가 계산되어 부가되며, 나중에 전송시 변경이 발생하지 않은 것을 확인하기 위하여 수신자에 의하여 검증된다. CRC들은 바이너리 하드웨어로 구현이 간단하기 때문에 인기가 있고, 수학적으로 분석하기에 용이하며, 특히 송신 채널들의 노이즈에 의하여 야기된 공통 오류들을 검출하는데 적합하다. 그러나, 종래의 CRC 기반 체크섬 방식들은 체크섬 및 데이터의 경계를 식별하기 위한 포맷팅(formatting) 및 프레이밍(framing)을 요구하는 점에서 잘 구성되어(highly structured) 있다. PRBS와 유사하게, 체크섬은 TX 및 RX 양측에서 계산될 필요가 있으며 TX 및 RX에서의 체크섬들은 동기화될 필요가 있어서 유연성을 제한한다. CRC 기반 체크섬에서 오류 검출은 순간적이지 않다. 오류 검출 시간은 CRC 계산 시간에 의존한다. 그러나, MISR은 임의의 데이터 스트림을 컴팩트하게 만들고 종단에 서명을 생성한다. MISR에서의 오류 검출은 순간적이며 서명(또는 테스트 결과)은 어느 때라도 언로드될 수 있다.
일부 실시예들에서, C3은 선택적으로 TCCS(test clock control structure)에 연결될 수 있다. 그 후 TCCS는 제어 클럭을 중단하고 디버깅이 발생하도록 하는데 이용될 수 있다. 일부 실시예들에서, TCCS는 제어 클럭을 중단시키고 수신 회로의 데이터 버스를 조절한다. 일부 실시예들에서, TCCS는 제어 클럭을 중단시키고 데이터 스트림의 송신을 조절한다. 일부 실시예들에서, C3는 오류가 발생할 때 수신기의 동작을 중단하도록 구성될 수 있어서, 오류 디버깅이, 예를 들면, 레지스터들의 내부 값들을 조사함으로써 진행하도록 한다. 발명자 Chinsong sul의 명의의 2006년 6월 27일자, 미국 특허출원 11/476,457 "Test Clock Control Structures to Generate Configurable Test Clocks for Scan-based Testing of Electronic Circuits using Programmable Test Clock Controllers"는 본 발명과 함께 이용될 수 있고, 그 출원이 인용에 의하여 포함될 수 있는 특별한 테스트 클럭 제어 구조에 대한 추가적인 정보를 제공한다.
도 2는 송신 오류들에 대한 인코딩된 데이터를 체크하도록 구성된 동시(concurrent) 코드 검사기를 포함하는 예시적인 HSIO 회로를 도시한다. HSIO 회로(200) 는 직병렬 변환기(deserializer)(200) 및 동시 코드 검사기(C3)(204)를 포함한다.
직병렬 변환기(202)는 직렬화된 데이터 송신을 수신하도록 구성된다. 직병렬 변환기(202)는 C3(204)에 결합되며, 수신된 데이터 패킷들을 C3(204)에 전송한다. 직병렬 변환기(202)와 C3(204)의 결합은 공지되거나 편리한 임의의 방식일 수도 있다. 비한정적인 실시예에서 이러한 결합 또는 접속은 데이터 버스로서 구현된다.
C3(204)는 코드북(212) 및 DC/RD 스펙들(specifications)(214)을 포함한다. 몇몇 예시적인 실시예에서, C3는 조합 로직 또는 리드-온리 메모리(ROM)와 같은 회로를 이용하여 구현될 수도 있다. C3(204)는 직병렬 변환기(202)로부터 데이터 패킷들을 수신한다. 이러한 패킷은 인코딩되는 동안 무효(invalidity)에 대하여 체크될 수도 있으며, 무효는 코드북(212) 내의 논리식(logical equations)을 이용하여 판정될 수도 있다. 비한정적인 일 실시예에서, 코드북(212) 내의 논리식을 이용하는 이러한 판정은 데이터 패킷의 2진 데이터값을 하드웨어에서 구현된 논리식에 적용함으로써 구현되는데, 이러한 결과값은 무효의 데이터 패킷이 사용되었는지 여부를 나타낸다. 몇몇 예시적인 실시예들에서, 코드북은 데이터 패킷의 DC 값을 생성한다. DC/RD 명세서(214)는 DC/RD 규칙(rule)들이고/이거나, 코드워드들로서, 그리고 데이터 스트림 내의 코드들로서의 양자(both)를 충족시키는 인코딩 구성 조건이다.
몇몇 예시적인 실시예들에서, DC/RD 스펙들 또는 스펙들(specs)은 인코딩 구성으로부터 도출되고, 오류 모델에 연관될 수도 있다. 몇몇 예시적인 실시예들에서 DC 스펙은 (DC(c k )∈{-2, 0, 2})∧(-2≤ DC ( s i )≤2) 일수도 있는데, 여기에서 데이터 스트림 s i 의 DC 는 i>0 에 대하여, DC ( s i )= DC ( s i -1 )+ DC ( c i ) 로서 규정되는데, 여기에서 DC(s 0 )∈{-2, 0, 2} 이다.
몇몇 예시적인 실시예들에서, 코드워드들 및 데이터 스트림들의 정적 및 동적인 특성은 조합 논리 및 유한-상태-머신(FSM:finite-state-machine)을 이용하여 각각 구현된다. 몇몇 예시적인 실시예들에서, 유효한 코드워드의 DC 값을 체크하는 것은 5-비트 가산기(adder)와 같은 조합 회로를 이용하여 구현된다. 몇몇 예시적인 실시예들에서, 유효 데이터 스트림의 RD 애스팩트(aspect)는 논리식을 이용하여 결정되고, 몇몇 예시적인 실시예들에서는, 데이터 스트림이 RD 명세서를 충족시키는지 여부를 체크하는 무한 상태 머신을 이용하여 구현된다.
동시 코드 검사기는, 무효 데이터 패킷들 또는 데이터 패킷들 내의 무효 비트들이 검출된 경우에 증분되는 비트-오류-레이트(BER) 카운터(206)에 결합될 수도 있다. BER 카운터(206)는 공지되거나 편리한 임의의 수단들에 의해 구현될 수도 있다. 몇몇 예시적인 실시예들에서 다중입력 시그너쳐 레지스터(MISR: multiple input signature register)는 BER 카운터 대신에, 또는 이에 추가하여 오류 정보를 수집하는데 이용될 수도 있다. 몇몇 예시적인 실시예들에서, MISR 은 다중 동시 코드 검사기들(C3s)의 출력들을 동시에 관측하도록 구성되고, 오버플로우(overflow) 없이 (만일 발생한다면) 다수의 오류들을 캡쳐하도록 구성될 수도 있다.
옵션적인 테스트 클럭 제어 구조(TCCS: test clock control structure)(208)는 오류 또는 실패의 원인을 발견하기 위하여 클럭을 정지시켜 내부 레지스터들을 조사하는데 이용될 수도 있다. TCCS(208)는 공지되거나 편리한 임의의 수단에 의해 구현될 수도 있다. 몇몇 예시적인 실시예들에서, TCCS 는 데이터 버스 클럭을 제어하도록 구성된다.
도 3은 예시적인 코드북의 값들의 샘플 표현을 도시한다. 제1열은 10-비트 코드워드들로 인코딩될 수도 있는 8-비트 워드들의 샘플을 도시한다. 제2열은 8-비트 워드들 및 네거티브 러닝 디스패리티(negative running disparity) 또는 RD- 에 대응하는 코드워드들의 샘플을 도시한다. 제3열은 8-비트 워드들 및 인코딩된 포지티브(positive) 러닝 디스패리티 RD+ 에 대응하는 코드워드들의 샘플을 도시한다. 몇몇 예시적인 실시예들에서, RD- 및 RD+ 값들은 타입들로서 해석될 수도 있다. 예시적인 실시예들에서 코드워드들의 임의의 DC 값은 DC(c i )∈{0, 2} 및 DC(c i )∈{-2, 0} 을 각각 충족시켜야 한다. 패킷들 및 RD 에 기초한 데이터 스트림들의 분할은 DC 스펙을 세분(refine)하고, 식별될 송신 오류들의 보다 큰 개수를 허용하는데 옵션적으로 이용될 수도 있다.
몇몇 예시적인 실시예들에서, 코드워드들 및 데이터 스트림들의 RD 함수가 추가적으로 규정될 수 있다. RD u =RD - ∪RD + , RD 0 =RD - ∩RD + , RD_'=RD - -RD 0 , 및 RD' + =RD + -RD 0 이라 한다. 코드워드 c i 의 RD 타입(RDT) 함수는 c i ∈RD' - 및 RD' + 인 경우에, 각각 RDT(c i )= -1 및 1 로서 규정될 수 있다. 코드워드 c i ∈RD 0 은 RDT(c i )=0 으로서 또한 규정될 수 있고, 무효인 RD 타입은 RDT(c i )=F 로서 규정될 수 있다. 따라서, 몇몇 예시적인 실시예들에서, 유효한 코드워드 c i 는 이하의 사항 RDT(c i )∈{-1, 0, 1} 을 충족시켜야 한다. 11개의 논리식들의 세트인 IBM 8B/10B 인코딩 스킴을 이용한 일부 비-제한적이고 예시적인 실시예들이 주어진 코드워드가 무효한지 검사하기 위하여 사용될 수 있다. 그외의 인코딩 스킴들은 상이한 수 또는 형태의 논리식들을 사용하거나 필요로 할 수 있다.
일부 예시적인 실시예들에서, RD' - 및 RD' + 세트는 유효한 코드워드의 DC 값에 관하여 더 분할될 수 있다. 분할이란 무효성 또는 검지된 오류에 기초하여 코드워드들을 세트들로 나누는 것을 말한다. dc ∈ {0, 2}에 대해, RD - dc = RD'∩C dc 이고 RD + dc = RD'+∩C - dc 라고 하자. RD + dc ⊆ C - dc 이고 RD - dc ⊆ C + dc 임을 유의한다. 유사하게, 일부 예시적인 실시예들에서, 스트림 s i 의 RD 함수는 RD(s i ) = RD(s i -1 ) + DC(c i )에 의해 정의될 수 있고, 여기서 RD(s 0 ) ∈ {-1, 1}이다. RD 함수는 유효한 코드워드의 DC가 RD에 관련되는 방식을 나타낸다. 즉, 유효한 코드워드의 DC는 RD의 데이터 스트림에 대하여 DC(c i ) = RD(s i ) - RD(s i -1 )로서 표현될 수 있다. 스트림의 RD 함수를 이용하여, 유효한 코드워드 스트림의 DC는 i≥0에 대하여 DC(s i ) = RD(s 0 )로 쓸 수 있다.
편의를 위해 스펙 1로 불리는 일부 예시적인 실시예들에서, RD (테스트) 스펙은 c i ∈ RD -2 ∪RD +2 에 대해서 RD(c i ^s i -1 ) = -RD(s i -1 )로 유사하게 정의될 수 있다. 일부 예시적인 실시예들에서, 데이터 스트림은 DC 스펙 대응물과 동등하고, 유효한 코드워드들의 RD 스펙인 차이점은 DC 스펙을 만족시키는 사용되지 않는 코드워드들을 제외할 수 있다.
일부 예시적인 실시예들에서, 데이터 스트림의, 편의를 위해 스펙 2로 불리는, RD (테스트) 스펙은 P1 ∨ P2로 정의될 수 있고, 여기서, k>0에 대해 P1 = {(RD(c i ^s i-1 ) = RD(s i -1 )) ∧ (c i ∈ RD u ∩ C 0 )}이고 P2 = {(RD(c i ^s i -1 ) = -RD(s i -1 )) ∧ (c i ∈ RD u ∩ C dc )}이며, ^는 데이터 스트림의 연속(concatenation)을 나타내고 dc = -2RD(s i -1 )이다. 일부 예시적인 실시예들에서 P2는 RD 스펙 1을 포함한다. 일부 예시적인 실시예들에서 RD 스펙 1 및 2는 DC 스펙을 정제하고 많은 수의 오류들을 검출하는데 사용된다.
도 4는 동시 발생 코드 검사기(400)의 내부 구조를 묘사한다. 동시 발생 코드 검사기(400)는 코드 구획 문자(delimiter) 검출기(CCD)(402), 동시 발생 코드 c검사기(C3) 로직(404), 러닝 불일치 제한 상태 머신(RD FSM)(406), MISR/카운터 미 클록 홀팅(halting) 회로를 포함한다.
C3 로직(404)은 들어오는 코드워드들을 입력으로 수신한다. C3는 코드워드의 무효성을 검사할 수 있고, DC/RD FSM(406)으로 통과된 코드워드에 대한 DC 및/또는 RD 값을 생산한다. 일부 예시적인 실시예에서 C3 로직은 입력 데이터 스트림의 시작을 동기화시키기 위하여 코드워드 유효성과 CCD(402)에 대한 DC 값을 제공할 수 있다. 일부 예시적인 실시예들에서, C3 로직은 DC/RD 동기화를 위하여 DC/RD FSM에 대한 DC 및/또는 RD 값들을 제공할 수 있다. 일부 실시예들에서, CCD가 유효한 코드워드 경계를 검출할 때, CCD는 DC/RD FSM, BER 카운터, 및/또는 클록 홀팅 회로를 인에이블시킬 수 있다.
CDD(402)는 C3로부터 특정 제어 문자 및 유효 신호를 이용하여 유효 코드워드 경계를 동기화할 수 있다. 몇몇 예시적인 실시예에 있어서, K28.3 제어 문자 등의 제어 문자가 이용될 수 있다. K28.3 제어 문자는 당해 기술 분야에 공지된 것이며, K. Girmsrud 및 M. Smith 저(著) Serial ATA Storage Architecture and Applications, Intel Press, 2003(P130)에 개시되어 있으며, 이는 본 명세서에 참조로서 포함된다. CDD(402)는 제어 문자 검출 시에 인에이블 신호를 생성하여 DC/RD 체크를 개시한다. 몇몇 예시적인 실시예에 있어서, 부하 제어 플립플롭들은 원하는 동기화 스킴이 인에이블되도록 한다. 몇몇 예시적인 실시예에 있어서, CDD는 임의의 특정 문자 검출 회로의 제거를 허용하는 유효 신호를 생성할 수 있다. 몇몇 예시적인 실시예에서는, 시스템이 이미 CDD를 포함하고 있으며, 시스템으로부터의 CDD는 회로로부터 전용 CDD의 제거를 허용하여 재이용될 수도 있기 때문에 CDD는 임의적으로 선택가능하다. 몇몇 예시적인 실시예에 있어서, 하나 이상의 코드워드가 수신되는 경우, 데이터 스트림의 유효성을 체크하도록 DC/RD FSM이 인에이블될 수 있으며, 몇몇 실시예에서는 유효(또는 무효) 코드워드 신호 또는 DC값을 통해 동기화를 허용한다.
RD FSM(406)은 코드워드 경계가 검출되는 경우에 인에이블되고, 정확한 DC/RD 시퀀스를 위해 체크를 행한다. 코드워드의 DC 및/또는 RD값은, 코드워드의 유효성을 판정하도록 그 결과값을 DC/RD FSM에 제공할 수 있는 C3 로직(404)에 의해 계산된다. 몇몇 예시적인 실시예에 있어서, RD 타입과 결합되는 DC는 RD의 계산에 적용될 수 있다. 몇몇 예시적인 실시예에 있어서, RD FSM은 자동 동기화(self-synchronizing) FSM이다. 몇몇 예시적인 실시예에서는, 자동 동기화를 위하여 코드 오류 검사기(code error checker; CEC)에 의해 생성되는 무효 신호가 이용될 수 있다. 하나의 유효 코드워드 또는 수많은 연속의 유효 코드워드들이 검출되는 경우, 테스트 제어부(504)는 DC/RD FSM을 인에이블하여 오류 검출을 개시가능하게 한다. DC/RD FSM은 상태 S에서 개시될 수 있으며, 데이터 스트림의 DC 또는 RD 상태를 결정할 수 있는 코드워드가 나오는(encounter) 경우, 유효한 DC 또는 RD 상태들로 천이할 수 있다. 예를 들어, C+2 또는 RD-O 타입의 코드워드가 나오는 경우, DC/RD FSM은 코드워드의 위치를 이용하여 데이터 스트림의 DC 또는 RD값을 추적할 수 있다. 이에 따라, 원하는 동기화가 확립된다. 오류에 의해 데이터 패킷이 제어 문자로 변경되는 경우에는, 오류를 등록한 후 동기화가 회복(regain)될 수 있다.
C3 로직(404)은 파생된 DC/RD 스펙에 기초하여 구현된다. C3 로직(404)은 유효 코드워드 및 데이터 스트림의 DC/RD 스펙들을 참작한다. 데이터 스트림의 DC값은 C3 로직(404)에 의해 RD FSM(406)에 제공된다. 코드워드의 DC값이 무효인 경우, C3 로직은 무효 신호를 RD FSM(406)에 제공할 수 있는데, 이는 무효 신호를 어서트(assert)한다. 몇몇 예시적인 실시예에 있어서, C3 로직은 5 비트 가산기 및 하나 이상의 DC 맵핑 회로를 이용하여 C3 로직 블록을 구현함으로써 실현될 수 있다.
D 플립플롭(412)은 클록 정지 신호의 활성화 및 비활성화를 가능하게 하는 제어 플립플롭을 나타낸다. 몇몇 예시적인 실시예에 있어서, 제어 플립플롭은 I2C(Inter-IC)를 통해 외부적으로 액세스될 수 있거나, 또는 내부적으로 제어될 수도 있다.
도 5는 예의 CDD(code delimiter detector)(500)의 내부 구조의 예시적인 실시예를 도시한다. CDD(500)는 K28.3 검출기(502), 테스트 제어 회로(504), 유효 DC 검출기(506) 및 C3 로직으로부터의 유효 코드워드 신호(val_cw)를 포함한다. K28.3 검출기(502)는 K28.3 제어 특성을 검출하여, DC/RD 검사를 시작할 수 있다. 유효 DC(506)는 유효 DC 값을 검출하여, 유효 DC 값이 검출되면 유효 DC(valDC=1)를 출력한다. K28.3이 검출되면, 테스트 제어 회로는 DC/RD FSM이 코드워드 및 데이터 스트림의 유효성을 검사할 수 있도록 한다. 예시적인 실시예에서, 유효 코드워드(val_cw) 신호 또는 유효 DC(valDC)는 데이터 스트림의 처음을 검출하는데 사용된다. 일부 예시적 실시예들에 있어서, 하나 또는 소정수의 유효 코드워드 또는 DC 값이 충돌하면, 테스트 제어가 C3를 인에이블한다. 대안의 디스에이블 신호가 제공되어, DC/RD FSM 및 이것이 인에이블하는 다른 회로들을 디스에이블하는 테스트 제어(504)를 디스에이블한다. 이러한 기능 또는 동등한 기능을 수행하는 다른 대안의 검출기들을 이용할 수 있다. 일부 예시적 실시예들에서는, CDD가 C3를 동기시키는데 이용될 수 있다.
도 6a는 DC 스펙용 DC 검사기를 예시적 자기 동기화하기 위한 예시적인 FSM(finite-state-machine)(600)을 도시한다. FSM(600)은 코드워드가 유효하다는 결정 후에 코드워드의 DC를 생성한다. 도시된 예시적인 유한 상태 기계(finite state machine)는, 코드워드가 유효한 경우 및 시스템을 고장 상태로 전이시키는 무효의 코드워드가 검출된 경우의 두 가지 조건들을 설명하고 있다. 표 2는 예의 DC 값과 대응하는 2비트 표현을 도시한다. 표 3은 예의 RD 값과 대응하는 2비트 표현을 도시한다.
일부 예시적인 실시예들에서, FSM(600)은 무효 DC 값 및 무효 RD 값의 서브세트의 판정을 허용한다. 무효 값에 이르면, FSM(600)은 "고장" 상태가 된다. "동기(Sync)" 상태는 FSM(600)의 상태를 나타내며, 신규 데이터 스트림이 도달되는 경우 또는 FSM이 오류(고장) 상태로부터 회복되는 경우, 올바른 DC 또는 RD 상태로 동기하도록 대기 상태로 이용된다.
도 6b는 예시적인 RD 스펙을 구현하는데 이용되는 자기 동기화 FSM(finite-state-machine)(650)의 일례를 도시한다. RD FSM이 인에이블 신호를 수신하는 경우, RD FSM은 RD 트랙킹을 위한 시작점과 동기하도록 적절한 RD 타입을 기다린다. 도 6b의 유한 상태 기계의 구현은, 입력이 "고장" 상태로 전이하는 경우, RD FSM이 RD -0 및 RD +0 타입의 코드워드에 관련된 오류들을 검출하도록 한다. 일부 예시적인 실시예들에서는, 제2 유한 상태 기계 FSM(650)은 제1 유한 상태 기계 FSM(600)과 함께 이용되어, 데이터 스트림의 대다수의 가능한 오류들을 검사한다. FSM(650)이 "고장" 상태에 도달한 FSM(600)과 관련하여 이용되는 경우, 어느 하나의 FSM은 오류를 나타낼 것이다. RDT가 마스킹되어 있으면(즉, RDT=0), FSM(650)은 FSM(600)으로 된다.
도 7은 오류 검출 회로(700)의 일 구현예를 도시한다. 오류 검출 회로는 C3 로직(702) 및 DC FSM(704)을 포함한다. C3 로직(702)은 DC FSM(704)에 출력 및 패스 또는 전달되어 DC FSM(704)에서의 상태 업데이트에 이용되는 DC 값을 생성한다. 표 4는 C3 로직에서 10 비트 코드워드를 이용하여 2 비트 출력으로 맵핑하는 예시적인 실시예를 도시한다.
DC | DC[1:0] |
-2 | 01 |
0 | 11 |
2 | 10 |
비사용 | 00 |
표 2. 예시적인 DC 값들
RD | RD[1:0] |
-1 | 01 |
1 | 10 |
비사용 | 11 |
비사용 | 00 |
표 3. 예시적인 RD 값들
코드[9:0] | DC[1:0] |
-2 | 01 |
0 | 11 |
2 | 10 |
무효 | 00 |
표 4. 예시적인 10 비트 코드워드 DC 맵핑
가산기 값 | DC[1:0] |
4 | 01 |
5 | 11 |
6 | 10 |
무효 | 00 |
표 5. 예시적인 DC 맵핑
도 8은 컨커런트(concurrent) 코드 검사기(C3) 로직(800)의 일 구현예를 도시한다. C3 로직은 가산기(802) 및 DC 맵퍼(804)를 포함한다. 가산기(802)는 공지되었거나 인코딩 스킴 이용 시에 적합한 가산기로서 구현되어도 좋다. 예컨대, IBM 8B/10B 인코딩 스킴을 이용하는 비제한 실시예에 있어서는, 5 비트 가산기를 이용하여 C3 로직 블록을 구현할 수 있다.
DC 맵퍼(804)는 DC 값을 맵핑된 DC 값으로 맵핑한다. IBM 8B/10B 인코딩 스킴을 이용하는 비제한 실시예에 있어서, DC 맵퍼는 DC 값을 대응하는 2 비트 인코딩된 DC 값, DC[1:0]으로 맵핑한다. 표 5는 5 비트 가산기의 값들이 DC[1:0]으로 맵핑되는 일 실시예를 도시한다. 일부 실시예에 있어서, 비사용 코드워드는 진리값 표에서 유효(valid)로 기입될 수 있다. 예컨대, IBM 8B/10B 인코딩의 비제한 예에서 비사용 코드워드는 -2, 0, 및 2의 유효 DC 값을 가질 수 있다. 유효 DC 값을 갖는 IBM 8B/10B 인코딩에서의 비사용 무효(invalid) 코드워드의 일부 예는 코드워드 4160, 5051, 및 4061이며, 여기서 코드워드 "M1NO" 또는 "NOM1"은 M개의 1과 N개의 0으로 이루어진 10 비트 코드워드를 나타낸다.
몇몇 실시예에서는, DC 스펙을 충촉시키는 미사용 코드워드를 검출하는데 유효성 코드워드의 RD 스펙이 사용될 수 있다. 대부분의 상황에서, RD 스펙을 구현하기 위해서는 완비된 코드북이 구현되어야 할 것이다. IBM 8B/10B 인코딩 스킴을 사용하는 비제한적인 실시예에서는, IBM 8B/10B 인코딩 스킴에 대해, 유효성 코드워드를 무효성 코드워드로부터 구별해내기 위해 11개의 논리식을 사용하는 코드 오류 검사기가 사용될 수 있다.
도 9는 코드워드 및 데이터 스트림의 유효성을 검증하도록 적응되는 DC/RD 로직(900)의 구현 예를 도시한다. DC/RD 로직(900)은 C3 로직(902) 및 FSM(904)을 포함한다.
도 10은 예시적인 C3 로직(1000)을 도시하는 도면이다. C3 로직(1000)은 코드 오류 검사기(CEC; 1002) 및 DC 계산 로직(1004)을 포함한다.
몇몇 실시예에서는, 도 10에 도시된 C3 로직(1000)이 도 9에서의 C3 로직(902)으로서 사용될 수 있다. 코드 오류 검사기(CEC; 1002)는 FSM(904)으로 전달되는 코드워드의 유효성을 검증하여, FSM(904)으로 하여금 유효 입력 코드워드들만이 수신될 것이라는 가정하에 동작하게 한다. 몇몇 실시예에서는, 코드워드에 오류가 발생할 수 있지만, 데이터 스트림의 콘텍스트 없이 고려될 때, 변형된 코드워드가 여전히 기술적으로 유효할 것이고, 오류 검사기에 의해 유효성을 검증받을 것이며, 코드워드가 데이터 스트림의 콘텍스트에 무효성인지 여부를 결정하기 위해 FSM으로 보내어질 것이다. 몇몇 실시예에서는, 코드워드가 무효성일 때, 코드 오류 검사기(1002)는 FMS(904)를 실패 또는 오류 상태로 강요하는 "무효성(invalid)" 신호를 주장할 것이다. 따라서, 일부 실시예에서는, 코드 오류 검사기 신호가 무효성 신호를 주장하는 경우, DC 또는 RD 계산 회로의 출력이 "돈-케어(don't-care)" 상태에 있다. 일부 실시예에서는, 무효성 코드워드를 마주치게 되면 돈-케어 신호를 사용하여 DC/RD 계산 회로에서의 로직(또는 하드웨어)을 최소화할 수 있다. 몇몇 실시예에서는, DC 계산 회로, RD 계산 회로 및/또는 기타 DC/RD 조합 계산 회로가 유효성 출력을 생성하도록 요구되는 상태의 수를 제거함으로써 감소(reduction)가 가능하다.
도 11은 코드워드의 DC 스펙 및 데이터 스트림의 RD 스펙을 검증하는 DC/RD 로직(1100)의 구현 예를 도시한다. DC/RD 로직(1100)은 C3 로직(1102) 및 FSM(1104)을 포함한다.
FSM(1104)은 사용된 인코딩 스킴에 따라 하나 이상의 유한-상태-머신들(finite-state-machines)을 사용하여 데이터 스트림의 상태를 모델링한다. 예를 들어, 데이터 스트림의 RD는, 도 6a 및 6b에서 이미 설명된 FSM 모델들에서와 같이 IBM 8B/10B 인코딩 스킴에 따라 모델링될 수 있다. FSM(1104)의 상태는 C3 로직(1102)으로부터 수신되는 값들에 의해 업데이트된다. 체크되어야 할 DC 스펙 또는 RD 스펙의 선택을 제공하기 위한 제어 신호 DC/RD가 추가되어도 좋다. 몇몇 실시예에서는, 코드 오류 검사기를 인에이블시키거나 디스에이블시키 위한 제어 신호 CEC_en이 추가되어도 좋다. 표 6은 가능한 제어 신호들의 몇몇 구현 예를 제공한다.
도 12는 이에 수반하는 코드 검사기(C3) 로직(1200)의 구현에 대한 실시예를 도시한다. C3 로직(1200)은 코드 오류 검사기(CEC; 1202), RD 타입(RDT) 로직(1204) 및 DC 로직(1206)을 포함한다. 몇몇 실시예에서는, 도 12에 도시된 것이 도 11에서의 C3 로직(1102)으로서 사용될 수 있다.
CEN_en | DC/RD | Spec Check |
0 | 0 | DC |
0 | 1 | XX |
1 | 0 | RD1 |
1 | 1 | RD2 |
표 6. 예시적인 C3 스펙 선택
CEC(1202)는 무효 코드워드가 수신될 때 "무효"를 출력하도록 구성된다. 일부 실시예에서, CEC(1202)는 상보 신호(즉, "유효")를 출력하도록 또한 구성된다. 일부 예시적인 실시예에서, 코드워드는 데이터 버스로부터 수신된다. 일부 예시적인 실시예에서, 무효 신호는 소정의 구현에 따라 고전압 신호(이진수 1) 또는 저전압 신호(이진수 0)일 것이다. CEC(1202)는 예컨대 로직 회로 또는 ROM과 같은 임의의 공지된 또는 편의의 방식으로 구현된다.
RD 타입 로직(1204)은 RD 타입이 데이터 스트림의 RD를 모델링하는 FSM에 적용될 때 코드워드의 "RD 타입"을 결정하더록 구성된다. 코드워드의 RD 타입은 구현에서 사용되는 인코딩 스킴에 달려있다. 일례로서, IBM 8B/10B를 이용하는 것은 전술한 스펙 2의 정의를 참고하라.
DC 로직(1206)은 코드워드의 DC 값을 결정하도록 구성된다. 예컨대, 코드워드가 1이 아닌 2개 이상의 0을 가진다면, DC값은 -2이다. DC 로직(1206) 및 RD 타입 로직(1204)은 매핑 로직(1208)에 연결된다. 매핑 로직(1208)은 DC 로직(1206) 및 RD 타입 로직(1204)에 의해 생성된 값을 맵핑하며, 데이터 스트림의 상태를 모델링하는 FSM에 의해 사용되는 이진수 값에 그 결과를 매핑한다.
일부 실시예에서, 비사용 코드워드가 테스트 패턴에 포함되고 다른 것에서 유효하다고 고려될 것을 요구하는 테스트가 행해질 때, C3(1200)은 모든 DC 및 RD 스펙이 이롭게 구현되도록 구성될 수 있다. RD 스펙은 C3을 구성하기 위하여, 2개의 제어 신호, CEC 인에이블(CEC_en) 제어 신호 및 DC/RD 제어 신호를 이용하여 구현된다. CEC 인에이블 제어 신호는 CEC가 테스트에 포함되는지를 판정하는데 사용될 수 있고, DC/RD 제어 신호는 DC 또는 RD 스펙(specification)을 선택하는데 사용될 수 있다. 몇몇 예시적 실시예에서는, DC, RD 스펙 1 및 2는, 인에이블 또는 디스에이블되는 CEC의 제어를 이용하여, DC/RD를 프로그래밍하는 맵핑 회로를 통해 구현될 수 있다. 몇몇 실시예에서, CEC의 출력은, 필요에 따라 외부적으로 또는 내부적으로 제공될 수 있는 CEC 인에이블 신호에 의해 조건부로 인에이블될 수 있다. 몇몇 실시예에서, CEC 인에이블 신호는, 테스트 또는 사용 동안, 매우 다양화된 코드워드(codewords)(또는 테스트 입력)를 허용하는 무효 신호를 마스크(mask) 또는 필터(filter)하는 데 사용될 수 있다.
몇몇 실시예에서, C3 로직은 ROM(Read-Only Memory)를 이용하여 구현될 수 있다. 코드워드의 유효성은, RD 및 DC 값을 포함하는 몇몇 실시예에서, ROM의 각 위치 내에 프로그래밍될 수 있고, 코드워드는 ROM에 대한 어드레스 입력으로서 사용될 수 있다. ROM은, 대응하는 인코딩 스킴에 있어서, 코드워드의 실제의 유효성에 상관없이, 테스트 하의 어떤 코드워드에 대해서 무효 또는 유효 상태를 실행할 수 있으며, 이에 의해 매우 다양한 테스팅 옵션을 허용한다.
도 13은 데이터의 테스트 패턴 내의 오류 검출 회로 또는 로직(1300)에 대한 예시적 회로이다. 오류 검출을 위한 회로(1300)는 제1 직병렬 변환기(deserializer)(1302), 동시 코드 검사기(concurrent code checker)(C3)(1304), MISR/카운터(1306), TCCS(Test Clock Code Checker)(1308), PLL(Phase-Lock Loop)(1310), 가령, FIFO(First-In-First-Out)(1312)와 같은 FIFO 버퍼, 제2 직병렬 변환기(1314), 제1 D 레지스터(1316), 및 제2 D 레지스터(1318)를 포함한다.
오류 검출 회로(1300)는 C3 로직(1304)이 임의의 직병렬 변환 버스를 관찰하기 위해 어떻게 공유되고 구성되는지를 나타낸다. 상이한 프로그래밍은 D 레지스터들(1316, 1318)을 프로그래밍함으로써 실행될 수 있다. 몇몇 실시예에서, 맞춤형 테스트 패턴 또는 데이터 세트는 오류를 유도하는 타겟 오류에 적용될 수 있다. 몇몇 실시예에서, 정규 기능 또는 동작 모드 동안 C3은 원하는 위치상의 또는 원하는 위치로부터의 트래픽을 모니터하도록 인에이블될 수 있다. 몇몇 예시적 실시예에서, 데이터의 테스트 패턴은 PRBS(Pseudo-Random Binary Sequence)에 의해 생성될 것이다. 몇몇 예시적 실시예에서, 제1 및 제2 D 레지스터(1316, 1318)는 상기 회로 또는 관련 회로에 의해 내부적으로 또는 외부적으로 모두 제어될 수 있는 제어 플립-플롭이다.
도 14는 데이터의 테스트 패턴에서 대안적이고 예시적인 오류 검출용 회로(1400)를 도시한다. 오류 검출용 회로(1400)는 자동 테스트 장비(ATE)(1402), 송신기/PRBS(1404), 제1 직병렬 변환기(1406), 제2 직병렬 변환기(1408), 제1 동시 코드 검사기(C3)(1410), 제2 동시 코드 검사기(1412), BER 카운터(1414), 제1 FIFO(1416), 제2 FIFO(1418) 및 MISR(1420)을 포함한다.
제1 직병렬 변환기(1406) 및 제2 직병렬 변환기(1408)는 동시에 데이터 스트림을 수신하도록 구성될 수 있다. 제1 및 제2 직병렬 변환기(1406 및 1408)는 제1 및 제2 FIFO(1420 및 1422)에 각각 연결된다. 제1 및 제2 FIFO(1420 및 1422)는 차례로 제1 및 제2 동시 코드 검사기(C3)(1410 및 1412)에 연결된다. C3(1410 및 1412)는 전송 오류가 발생했는지 여부를 판정하기 위해, 각각의 연결된 FIFO로부터 송신된 유효성을 위해 수신된 데이터 패킷을 검사한다. 몇몇 예시적인 실시예에서, C3은 각각의 수신된 패킷의 유효성을 확인하고, 문맥상에서 데이터 패킷이 부분적인 각각의 데이터 스트림의 유효성을 확인한다. BER 카운터(1414)는 제1 C3(1410) 및 제2 C3(1412) 모두에 연결될 수 있고, 제1 C3(1410) 또는 제2 C3(1412)가 전송 오류를 만나게 될 때, 내부 카운터 값을 증가시키도록 구성될 수 있다.
오류 검출용 회로(1400)는 BER 카운터 및 TCCS와 같은 주변 하드웨어가 어떻게 공유되는지를 도시한다. 몇몇 예시적인 실시예에서, 테스트 패턴의 상이한 소스들이 제1 및 제2 직병렬 변환기(1406 및 1408)에 동시에 인가될 수 있고, 이에 따라 수신기가 테스트 데이터보다는 실제 월드 데이터를 수신하는데 이용될 수 있는 때와 같이, 필드내에서 기능적 동작을 더 모방할 수 있게 된다. 몇몇 예시적인 실시예에서, BER 카운터는 복수의 C3로부터 BER을 수집하는 통상적인 기능 동안 인에이블될 수 있다. 몇몇 예시적인 실시예에서, 데이터의 테스트 패턴은 PRBS에 의해 산출된다. 몇몇 예시적인 실시예에서, 일래스틱(elastic) FIFO는 FIFO(1416) 및/또는 FIFO(1418)을 위해 이용될 수 있다.
몇몇 예시적인 실시예에서, 도 11 및 도 12 각각에서의 C3(1102) 및 C3(1200)은 도 9 및 도 10의 C3(902) 및 C3(1000)의 슈퍼셋이고, 도 7 및 도 8의 C3(702) 및 C3(800)의 슈퍼셋이 될 수 있다. 몇몇 예시적인 실시예에서, 도 12의 RDT가 디스에이블되면(RDT의 출력 = 0), 회로(1200)는 도 9 및 도 10의 C3와 동일하게 될 수 있다. 몇몇 예시적인 실시예에서, CEC 및 RDT 모두가 디스에이블되면, 회로(1200)는 도 7 및 도 8과 동일하게 된다.
도 15는 오류 체킹 인코딩 데이터의 방법의 예시적인 실시예의 흐름도(1500)를 도시한다. 이 방법은 인입하는 직렬화된 인코딩된 데이터 패킷을 수신하는 단계(1502)와, 인입하는 직렬화된 인코딩된 데이터 패킷을 직병렬 변환하는 단계(1504)와, 데이터 패킷의 유효성을 체크하는 단계와, 직병렬 변환된 인코딩된 데이터 패킷의 DC값을 유도하는 단계(1506)와, DC 또는 RD 값이 무효인지판정하는 단계(1508)와, 직병렬 변환된 인코딩된 데이터 패킷이 유효 DC 또는 RD 값을 가지지 못한다면, 실패로서 입력 데이터를 플래그하는 단계를 포함한다.
본 발명의 추가 실시예를 들면, 본 발명이 시스템 내의 데이트 스트림을 이용하여 C3(concurrent code checker) 로직의 성능을 테스트하는 방법에 대한 실시예들을 포함한다는 것을 이해할 수 있다. 일 실시예에서, 이 방법은 C3 로직 내의 적어도 하나의 레지스터를 프로그래밍하여 시스템을 테스트 모드로 구성하는 단계를 포함할 수 있다. 이 방법은 코드워드(codeword)들을 모니터링하는 단계 및 이 모니터링 단계 동안 검출된 유효 코드워드들의 수를 결정하는 단계를 포함할 수도 있다. 이 방법은 소정 수의 유효 코드워드가 검출된다고 판정되면, CDD(code delimiter detector) 내의 테스트 제어 회로가 RD FSM(running disparity finite state machine)을 인에이블하여 데이터 스트림의 유효성을 검사하는 단계를 더 포함할 수 있다. RD FSM이 인에이블되는 경우, RD FSM을 사용하여 데이터 스트림을 모니터링하고 데이터 스트림에 적절하게 동기시키는 단계를 더 포함할 수 있다. 이 방법의 실시예들은, 동기화 이후, C3가 테스트 스펙을 완료될 때까지 계속 추적하는 단계를 더 포함할 수 있다. 이 방법의 실시예들은 테스트가 완료되는 경우 C3 로직을 디스에이블하는 단계를 포함할 수도 있다.
시스템 내의 데이터 스트림을 이용하여 C3의 성능을 테스트하는 방법에 대한 적어도 하나의 실시예는, 시스템을 테스트 모드로 구성하는 단계가 시스템을 온라인 테스트 모드로 구성하는 단계를 포함하는 것을 더 제공할 수 있다. 일 실시예에서, 온라인 테스트 모드는; CDD 내의 유효 코드워드(valCW)를 인에이블하여 데이터 스트림의 시작을 동기화시키고; 코드 오류 검사기 제어 신호(CEC_en)을 구성하여 CEC 및 DC/RD 제어 신호들(DC 또는 RD 스펙 검사)를 인에이블하여 가용한 테스트 스펙들에서 임의의 테스트 스펙(test specification)를 선택하는 것을 더 포함할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 가용한 테스트 스펙이 DC 스펙, RD 스펙 및 DC와 RD 스펙들의 조합들을 포함하는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 초기에 정상적인 시스템 동작을 개시한 후, 시스템을 온라인 테스트 모드로 구성하는 단계를 더 포함할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 시스템이 작동하는 동안, C3 로직 내의 I2C(Inter-IC) 버스 레지스터들을 프로그래밍하여 시스템을 테스트 모드로 구성하는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 테스트 모드가 온라인 테스트 모드를 포함하는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 적어도 하나의 레지스터가 적어도 하나의 I2C 레지스터를 포함하는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 적어도 하나의 레지스터가 다수의 I2C 레지스터를 포함하는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 C3를 디스에이블하는 단계가 테스트 제어 유닛을 디스에이블하는 것에 의해 달성될 수 있는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 테스트 제어 유닛을 디스에이블하는 것이 디스에이블 신호를 I2C를 통해 프로그래밍함으로써 달성될 수 있는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 동기화 이후 테스트 스펙을 완료될 때까지 계속적으로 추적하는 단계가 오류를 만나는 경우, BER(Bit Error Rate) 카운터를 증분시키는 단계를 더 포함하는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 필드에서의 표시 채널 품질로서 오류들의 수를 결정하도록 BER 카운터의 계수 또는 내용을 관측하는 단계를 더 포함할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 테스트 스펙이 DC 테스트 스펙, RD 테스트 스펙 및 이들의 조합들을 포함하는 테스트 스펙들의 세트로부터 선택되는 것을 제공할 수 있다.
C3 로직의 성능을 테스트하는 방법의 또 다른 실시예에서, 이 방법은 시스템이 작동하는 동안 프로그래밍이 수행되는 것을 제공할 수 있다.
본 발명의 실시예들은 회로 로직 최적화를 제공할 수도 있다. 하드웨어를 감소시키는 로직 최적화는 종종 상업용 EDA(Electronic Design Automation) 로직 합성 도구에 의해 수행된다. 로직 회로 또는 로직 회로들의 세트 또는 어레이에 대한 진리표에 지정된 무시 조건(don't care condition)이 많을수록, 그 로직 회로, 또는 로직 회로들의 세트 또는 어레이를 구현하는 하드웨어는 보다 간단하고 보다 컴팩트해지는 것이 사실이다. 예를 들어, 로직 입력들을 지정하는 것으로부터 실제 물리적 AND 게이트 로직 회로까지 논리 진리표를 지정하는 것에서 발생할 수 있는 회로는, 이들 진리표가 "무시(don't care)" 상태들 - 예를 들어, 무시의 상태들은 논리 "0" 또는 논리 "1"이거나 또는 그들의 대응 신호 전압값들일 수 있음 - 로 지정되는 경우 배선 또는 접속으로 간단화될 수 있다. 따라서, 제안된 접근법에서, 코드워드 유형들 및/또는 코드워드 오류 검사기의 기존의 무효 출력 신호에 기초하여 무시(don't care)들이 생성된다.
도 16은 예시적인 논리 진리표(1600)이다. 좌측 열(1602)은 진리표의 입력("Code [9:0]"의 10-비트 코드)을 식별하고, 우측 열은 합성될 출력 함수들을 식별한다. 목표하는 출력 함수들은 코드워드의 DC 값(1608), 유효 코드워드(invalCW)(1610) 및 코드워드 c i 의 RD 유형(RDT) 함수(1612)이다. 본 명세서의 다른 곳에서도 그 기재로부터, RDT(c i ) ∈ {-1, 0, 1) 및 DC(c i ) ∈ {-2, 0, 2)임을 알 수 있다. 표에서의 심볼 "X"는 무시(don't care)의 조건을 식별한다. 일부 예시적인 실시예들에서, 유효 코드워드를 검출하는 11개의 논리적 식들을 사용하여 필요한 유효 코드워드(invalCW)를 구현할 수 있다. 다른 실시예들도 또한 다른 논리적 또는 수학적 식들이나, 다른 수의 식들을 사용하여 필요한 유효 코드워드(invalCW) 함수를 구현할 수 있다.
코드워드가 유효(invalCW)일 때, 이 상태는 본 명세서의 다른 곳에 기재된 식들의 집합을 사용하여 구현되는 invalCW 출력 함수에 의해 식별될 수 있다. invalCW에 대한 식들은 큰 반도체 영역을 소모하지 않는 간단한 로직에 구현될 수 있다. 기존의 invalCW 출력 함수 및 RDT 함수에 삽입된 코드 유형을 이용하면, 필요하거나 특정된 입력들의 수를 현저하게 감소시킬 수 있고, DC 및 RDT 출력 함수들에 대한 진리표에서의 동일한 수의 출력 무시(don't care)를 현저하게 증가시킬 수 있다. 일부 실시예들에서, 증가된 수의 무시(don't care)를 이용함으로써 얻어지는 로직 및 대응하는 회로 영역의 감소는, 본 발명의 무시(don't care)의 최적화를 이용하지 않는 로직 회로들에 비해 적어도 50%이다. 다른 실시예들에서, 로직 회로들 및 영역의 감소는 적어도 60%이거나, 다른 실시예들에서, 적어도 70%이거나, 다른 실시예들에서, 적어도 80%이거나, 훨씬 더 감소할 수 있다. 이것은 기재된 특정 예에 비추어 볼 때 훨씬 용이하게 알 수 있을 것이다.
유효 DC 값들을 갖는 IBM 8B/10B 인코딩의 예시적인 사용되지 않는 유효 코드워드는 코드워드(4160, 5051 및 4061)이고, 여기서, 코드워드 "M1N0" 또는 "N0M1"은 M개의 1 및 N개의 0으로 이루어진 10-비트 코드워드라는 것에 주목한다. RD -2 및 RD 2 유형의 코드워드는 행들(1621 및 1625)에 표시되어 있는 바와 같은 DC 값들에 의해서만 식별될 수 있기 때문에, RDT는 모든 4160 및 4061 코드워드에 대해 무시(don't care)될 수 있다. DC 값들로부터 추론될 수 있는 RD 유형들은 전체 수의 234(2x117) 무시(don't care)들을 삽입할 수 있다. 무시(don't care) 방법의 이용에 의해, 열(1606)의 행들(1621 및 1626)에서의 RDT 출력 함수의, 삽입구인 "(117)"에 의해 표시된 수로서, 117개의 특정된 입력들을 제거할 수 있다.
DC 값들 및 RD 유형들은 유효 코드워드에 대해 고려될 필요가 없을 수 있는데, 그 이유는, DC 값들 및 RD 유형들은 invalCW 출력 함수를 구현하는 코드워드 오류 검사기(codeword error checker)에 의해 검출될 수 있기 때문이다. 따라서, DC 및 RDT의 출력은 44, 186 및 356개의 무시(don't care)를 각각 삽입하는 행들(1624, 1627 및 1628)에 대해 무시(don't care)될 수 있다.
C3 회로들에 적용되는 본 발명의 제안된 무시(don't care) 방법의 결과로서, RDT 및 DC 출력 함수들에 대해 각각 전체 1024개로부터 출력 무시(don't care)들의 816(117+44+117+186+352)개 및 582(44+186+352)개가 된다. 따라서, 이 제안된 방법은 RDT 함수에 대해 816/1024=0.7968 또는 거의 80% 및 DC 출력 함수에 대해 거의 57%만큼 특정된 입력의 수를 감소시켰다. 이것들은 특정 예시적 설계에 대한 수들이고, 다소 상이한 수들의 전체 무시(don't care)가 대안적인 설계에 대한 전체를 나타낼 수 있다는 것을 알 것이다. 임의의 경우에, 반도체 구현에서의 결과로 생기는 로직 및 대응하는 반도체 영역의 감소는 현저할 수 있다.
본 명세서에서 사용되는 바와 같이, "실시예"라는 용어는 한정적인 의미로서가 아니라 예시적인 의미로 설명하기 위한 실시예를 의미한다.
이 기술분야의 당업자들이라면, 전술한 예들 및 실시예들은 본 발명의 범위를 한정하기 위한 것이 아니라 예시적인 것임을 알 것이다. 본 명세서 및 도면들을 읽은 이 기술분야의 당업자들에게는 명백한 모든 치환, 개선, 등가물 및 개량은 본 발명의 진정한 사상 및 범위 내에 포함되는 것으로 의도된다. 그러므로, 다음의 첨부된 청구범위는 본 발명의 진정한 사상 및 범위 내에 있는 모든 이러한 변경, 치환 및 등가물을 포함하는 것으로 의도된다.
본 발명에 따르면, 고속 입/출력 시스템들에서 오류들을 테스트하기 위한 방법, 디바이스 및 시스템이 제공된다. 이 시스템 및 디바이스는, 데이터 스트림의 동적 속성들 및 데이터 패킷 정적 속성들을 통해 부호화된 데이터 패킷들 내의 오류들을 검사하는 C3(concurrent code checker)를 포함할 수 있으며, 패킷들을 포함하는 데이터 스트림의 동적 속성들 및 데이터 패킷 정적 속성들을 사용하여 무효의 부호화된 패킷들을 검출하는 단계를 수반할 수 있다. 무시(don't care)의 조건들을 사용하여 C3 로직의 설계를 최적화할 수 있고, C3 회로에 필요한 로직 요소 및 반도체 영역을 감소시킨다.