首页 / 国际专利分类库 / 电学 / 基本电子电路 / 一般编码、译码或代码转换 / 单个数字表示形式的转换 / 내장된 자가-테스트 및 디버그 특징을 갖는 동시 코드검사기 및 하드웨어 효율적인 고속 I/O

내장된 자가-테스트 및 디버그 특징을 갖는 동시 코드검사기 및 하드웨어 효율적인 고속 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) 생산 테스트 스펙을 위반함 - ; 및
    동작시, 상기 인코딩된 데이터 패킷이 무효인 경우, 데이터 패킷 전송 오류를 등록하는 단계
    를 포함하는 수신 방법의 단계들을 수행하기 위한 명령어들인 컴퓨터 판독가능한 기록 매체.
  • 说明书全文

    내장된 자가-테스트 및 디버그 특징을 갖는 동시 코드 검사기 및 하드웨어 효율적인 고속 I/O{CONCURRENT CODE CHECKER AND HARDWARE EFFICIENT HIGH-SPEED I/O HAVING BUILT-IN SELF-TEST AND DEBUG FEATURES}

    도 1은 인코드된 데이터의 전송 오류를 검사하도록 구성된 고속 입력/출력(HSIO) 디바이스의 예시적 실시예를 나타내는 도면.

    도 2는 인코드된 데이터의 전송 오류를 검사하도록 구성된 동시 코드 검사기를 포함하는 HSIO 회로의 예시적 실시예를 나타내는 도면.

    도 3은 코드북의 예시적 실시예의 내부 값의 샘플 표현을 나타내는 도면.

    도 4는 동시 코드 검사기의 예시적 실시예의 내부 구조를 나타내는 도면.

    도 5는 CDD(code delimiter detector)의 예시적 실시예의 내부 구조를 나타내는 도면.

    도 6a는 DC 스펙에 대한 자가-동기화 DC 검사기의 예시적 실시예에 이용되는 예시적 유한 상태 기계를 나타내는 도면.

    도 6b는 RD 스펙에 대한 자가-동기화 RD 검사기의 예시적 실시예에 이용되는 유한 상태 기계의 예시적 실시예를 나타내는 도면.

    도 7은 오류 검출 회로의 구현의 예시적 실시예를 나타내는 도면.

    도 8은 동시 코드 검사기 로직의 구현의 예시적 실시예를 나타내는 도면.

    도 9는 코드워드의 DC 스펙 및 데이터 스트림의 DC 스펙을 검증하는 DC 로직의 구현의 예시적 실시예를 나타내는 도면.

    도 10은 동시 코드 검사기 로직의 구현의 예시적 실시예를 나타내는 도면.

    도 11은 코드워드 및 데이터 스트림의 DC 및 RD 스펙을 검증하는 DC/RD 로직의 구현의 예시적 실시예를 나타내는 도면.

    도 12는 동시 코드 검사기 로직의 구현의 예시적 실시예를 나타내는 도면.

    도 13은 데이터의 테스트 패턴 내의 오류 검출을 위한 회로의 예시적 실시예를 나타내는 도면.

    도 14는 데이터의 테스트 패턴 내의 오류 검출을 위한 회로의 다른 예시적 실시예를 나타내는 도면.

    도 15는 인코드된 데이터를 오류 검사하기 위한 절차의 예시적 실시예의 흐름도.

    도 16은 동시 코드 검사기 회로의 로직 및 반도체 영역을 줄이기 위해 ㅁ무무시(don't care) 신호 조건을 이용하는 설계 최적화에 연관된 예시적 표를 나타내는 도면.

    <도면의 주요 부분에 대한 부호의 설명>

    102: 직병렬 변환기

    106: 디코더

    104: 동시 코드워드 검사기

    202: 직병렬 변환기

    204: 무효 CLK 중지

    212: 코드북

    214: DC/RD 스펙 검사기

    1302: 직병렬 변환기

    1306: MISR/카운터

    1314: 직병렬 변환기

    1402: 탄성 FIFO

    1406: 직병렬 변환기

    1402: 탄성 FIFO

    1408: 직병렬 변환기

    <관련 출원으로의 상호 참조>

    본 출원은 35 USC §119하에 "Chinsong Sul", "Hoon Choi", 및 "Gijung Ahn"에 의해 2006년 1월 20일에 출원되고 명칭이 "Concurrent Code Checker"인 미국 가출원 제60/760,601(본원에 참조로서 포함됨)호의 권리를 청구한다.

    본 출원은 35 USC §120하에 발명자가 "Chinsong Sul"이며 발명의 명칭이 "Test Clock Control Structures to Generate Configurable Test Clocks for Scan-based Testing of Electronic Circuits using Programmable Test Clock Controllers"이며 2006년 6월 27일에 출원된 미국 특허 출원 제11/476,457(본원에 참조로서 포함됨)호의 권리를 청구한다.

    본 발명은 일반적으로 고속 데이터 전송 오류에 대한 테스팅을 위한 시스템, 디바이스, 및 방법에 관한 것으로, 보다 상세히는 동시 코드 검사기(concurrent code checker)를 이용하여 데이터 스트림에 오류가 있는지 검사하기 위한 시스템, 디바이스, 및 방법과 최적화된 동시 코드 검사기 로직 회로에 관한 것이다.

    후술될 종래 기술의 예들 및 이와 관련되어 한계들은 예시적인 것이지 그것에만 한정되는 것은 아니다. 종래 기술의 다른 한계는 당업자들이 명세서를 읽고 도면을 습득할 때 보다 명백해질 것이다.

    고속 입/출력(HSIO)에 대한 가장 일반적인 내장된(빌트-인) 테스트는 2개의 동일한 의사-임의 2진 시퀀스(Pseudo-Random Binary Sequence: PRBS) 생성기를 채용하는데, 그 중 하나는 송신기(TX)에 위치하고, 다른 하나는 수신기(RX)에 위치한다. 두 PRBS는 모두 동기화되어서 RX로 하여금 TX가 생성하는 것을 정확하게 복제하게 해야 한다. RX는 수신된 데이터 전송을 예측되었던 데이터 전송과 비교하고 수신된 데이터 전송과 테스트 데이터 세트에서 생성되었던 전송 간의 차이가 있다면 실패를 식별한다. PRBS에 의해 생성되거나 검사된 테스트 패턴은 채용된 LFSR 다항식에 의해 제한된다. PRBS에 이용되는 LFSR은 일반적으로 의사-임의 패턴의 단일 시퀀스를 공급할 수 있다. 추가적인 패턴이 요구되었을 경우, 여분의 하드웨어를 추가함으로써 이를 구현할 수 있다.

    다수의 고속 입/출력(HSIO) 시스템은 또한 10-비트 DC 밸런스드(balanced) 클럭-내장형 인코딩 방식을 이용하여 전송을 위해 데이터를 인코딩한다. IBM 8B/10B 인코딩 스킴은 이러한 스킴의 일례이며 8-비트 값을 10-bit 코드워드로 인코딩한다. 각각의 8-비트 값은 데이터 스트림 내의 1's와 0's의 개수가 균형을 이루도록 하는 2개의 할당된 코드워드를 가진다. 몇몇의 특정된 코드워드의 개수 상에서 1's와 0's의 개수가 동일하거나 거의 동일하다면 신호 레벨 DC-전압 레벨은 이 특정된 코드워드의 개수 상에서 균형을 이룬 것이다. 1's와 0's의 개수 간의 차이는 디스패리티(disparity) 또는 DC 값으로서 정의될 수 있다. DC-밸런싱은 ISI(inter-symbol interference) 문제를 감소시키며 AC 결합을 보다 적절하게 만드는 것이다. 예를 들어, 일련의 코드워드에서의 1's와 0's의 개수가 1(또는 0)에 편중되어 있다면, 채널의 편중되어 있는 상태를 극복하는 데에 상당히 많은 에너지가 필요하기 때문에 0(또는 1) 심볼을 전송하는 것이 어려워진다. 그러므로 전송된 반대 상태 심볼은 오류인 채로 복구될 수 있다. 즉, 3개의 연속적인 코드워드 (0000000000, 0000000010, 0000000000) 가 채널을 통해 전송된다면, 심볼은 ISI 문제 때문에 상실될 수 있다. 다수의 HSIO 시스템은 송신기와 수신기 간의 캐패시터를 이용하여 전원과 접지로부터 유래하는 저주파 전압 노이즈를 블록킹하는 AC 커플링을 이용한다. 상술한 예에서와 같이 저주파 데이터 스트림은 블로킹될 수 있고 수신하는 단일 전압 왜곡 또는 오류를 일으킬 수 있다. 특정된 타깃 내의 수신 데이터 오류를 억제하기 위하여, 전송 시에 코드워드의 최대 허용되는 디스패리티가 지정된다. 전송 코드워드에서 허용되는 최대 디스패리티는 DC-밸런스로서 정의된다. IBM 8B/10B 코딩 방식은 본 기술 분야에 공지되어 있으며 본원에 참조로서 포함되는, "AX Widmer" 및 "PA Franaszek"가 저술한 논문인 "A DC-Balance, Partitioned-Block, 8B/10B Transmission Code"(1983년 9월 IBM J. Res. Develop., Vol. 27, No. 5, PP. 440-451)에 기재되어 있다.

    종래의 PRBS 생성기, 시스템 및 방법의 한가지 단점은 이들은 종종, 온라인 및/또는 오프라인 테스팅 및/또는 칩의 디버깅 등과 같이, 실리콘 칩을 테스팅하기 위한 특징이 부족하다는 것이다. 온라인 및 오프라인 디버깅 또는 테스팅은 각각 필드 사용 및 테스팅 중에 실행되는 테스트를 말한다. 통상 모드는 통상 사용 환경 하에 칩을 이용하는 것을 말하며, 테스트 모드는 테스트 환경에서 칩을 사용하는 것을 말한다. 온라인과 오프라인을 모두 가지는 것은 통신 채널의 품질이 필드 내에서 테스팅되고 결정될 수 있기 때문에 바람직할 수 있다.

    통상적인 PRBS 시스템 및 방법의 다른 단점은 TX PRBS와 RX PRBS가 반드시 동기화되어 전송된 테스트 데이터가 수신된 데이터와 적절하게 비교되어 임의의 오류 또는 실패가 식별되도록 해야 하는 것을 요구한다는 점이다. TX PRBS 및 RX PRBS 시스템을 이용하는 경우, 테스트 중에 동기화 오류를 일으키는 전송 오류가 발생한다면, 시스템은 복구될 수 없다. 이러한 동기화 실패 이후의 테스트 결과는 의미가 없을 수 있다.

    그러므로 종래의 PRBS이 문제점과 한계를 극복하는 시스템 및 방법이 여전히 필요하다.

    일 양태에서, 본 발명은 빌트-인 자가-테스트 및 디버깅 특징을 가지는 하드 웨어 효율적인 고속 입/출력 및 동시 코드 검사기를 제공한다.

    다른 양태에서, 본 발명은: 인입하는 직렬화된(serialized) 인코드된 데이터를 인코드된 데이터 패킷으로 직병렬 변환하는 직병렬 변환기(deserializer); 상기 데이터 패킷이 무효인지 여부를 판단하는 코드 북(code book); 상기 데이터 패킷이 무효인 경우 상기 데이터 패킷을 인코드하는데 이용되는 인코딩 스킴의 스펙(specification)을 위반하는지를 확인하는 스펙(specification) 로직; 및 상기 인코드된 데이터 패킷이 무효인 경우, 동작시 전송 오류를 등록하는 데이터 패킷 오류 로직을 포함하는 수신기를 제공한다.

    또 다른 양태에서, 본 발명은: 데이터의 무결성을 검증하는 방법으로서, 입입되는 직렬화된 인코드된 데이터 패킷을 수신하는 단계; 인입하는 직렬화된 인코드된 데이터 패킷을 직병렬 변환하는 단계; 데이터 패킷이 유효한지 검사하는 단계; 인코드된 데이터 패킷의 DC (또는 RD) 값을 획득하는 단계; DC (또는 RD) 값이 유효한 DC (또는 RD) 값인지 무효한 DC (또는 RD) 값인지 판정하는 단계; 및 DC (또는 RD) 값이 무효하면, 입력되는 직병렬 변환된 인코드된 데이터 패킷을 실패됐다고 플래그하는 단계를 포함한다.

    또 다른 양태에서, 본 발명은 오류 검출 회로를 제공하는데, 이 오류 검출 회로는, 데이터 스트림 내의 인코드된 데이터 패킷의 DC 값을 판정하도록 구성된 동시 코드 검사기(C3) 로직; 및 데이터 스트림의 상태를 추적하도록 구성된 유한 상태 기계(FSM)를 포함하고, 여기서 C3 로직은 동작시에, DC 값을 이용하여 데이터 스트림의 현재 상태가 주어지면 오류가 발생했는지 판정하는 FSM에 인코드된 데이 터 패킷의 DC 값을 제공한다.

    또 다른 실시예에서, 본 발명은 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 프로그램을 제공하며, 이는 컴퓨팅 디바이스의 동작을 제어하기 위한 명령어들을 포함하는데, 이 명령어들은 컴퓨팅 디바이스가 다음과 같은 단계들을 수행하여 데이터의 무결성을 검증하게 하기 위한 명령어들을 포함한다: 인입하는 직렬화된 인코드된 데이터 패킷을 수신하는 단계; 인입하는 직렬화된 인코드된 데이터 패킷을 직병렬 변환하는 단계; 데이터 패킷의 유효성을 검사하는 단계; 인코드된 데이터 패킷의 DC (또는 RD) 값을 획득하는 단계; DC (또는 RD) 값이 유효한 DC (또는 RD) 값인지 무효한 DC (또는 RD) 값인지 판정하는 단계; 직병렬 변환된 인코드된 데이터 패킷이 유효한 DC (또는 RD) 값을 갖지 않으면, 인입하는 직병렬 변환된 인코드된 데이터 패킷을 실패했다고 플래그하는 단계. DC 값 및 RD 값 모두가 바람직한 테스트 응답일 경우, 이들 DC 및/또는 RD 값은 일반적으로 테스트 응답으로 참조될 수 있다.

    또 다른 실시예에서, 본 발명은 시스템 내에서 데이터 스트림으로 동시 코드 검사기(C3) 로직의 성능을 테스트하기 위한 방법을 제공하는데, 이 방법은 시스템을 테스트 모드로 구성하기 위해 동시 코드 검사기(C3) 로직에 적어도 하나의 레지스터를 프로그래밍하는 단계; 코드워드를 모니터링하여 검출된 유효한 코드워드들의 수를 결정하는 단계; 미리 결정된 수의 유효한 코드워드가 검출되면, 데이터 스트림의 유효성을 검사하기 위해, CDD 내의 테스트 제어 회로가 RD FSM(running disparity finite state machine)을 인에이블하는 단계; RD FSM이 인에이블되면, RE FSM을 이용하여 데이터 스트림을 모니터링하고 데이터 스트림으로 적절하게 동기화하는 단계; 동기화한 후, C3가 테스트가 완료될 때까지 계속적으로 테스트 스펙을 추적하는 단계; 테스트가 완료되면, C3 로직을 디스에이블하는 단계를 포함한다.

    또 다른 실시예에서, 본 발명은 진리표 정의 내에 더 많은 무시 조건들(don't care condition)을 식별 및 특정함으로써 동시 코드 검사기를 구현하기 위한 로직 구성요소의 수를 줄이도록 설계된 하드웨어 회로를 최적화하는 방법을 제공한다. 또 다른 양태에서, 본 발명은 반도체 디바이스로서 구현될 때 감소된 로직 회로 소자 및 보다 작은 영역을 갖는 회로 및 디바이스를 제공한다.

    본 발명의 이러한 및 다른 양태들은 수반되는 설명 및 도면의 견지에서 명백해질 것이다.

    본 발명의 실시예들이 도면에 예시되어 있다. 그러나, 실시예들 및 도면들은 제한적이기보다는 예시적인 것으로, 그들은 본 발명의 예를 제공한다.

    후술되는 설명에서, 본 발명의 일부 특정 실시예를 상세히 설명함으로써, 본 발명의 다른 양상의 철저한 이해를 제공한다. 그러나, 당업자는 본 명세서에 제공되는 설명에 비추어 본 발명이 하나 이상의 특정 상세 또는 특징없이 실행될 수 있거나 또는 다른 컴포넌트 등과 결합하여 실행될 수 있다는 것을 인식할 수 있을 것이다. 다른 예에서, 본 발명의 다양한 실시예의 양상을 모호하게 하는 것을 피하기 위해, 공지된 구현예, 동작 또는 회로 소자는 도시하지 않고 상세히 설명하지 않는다.

    예시적 실시예는 고속 I/O 시스템을 포함한다. 데이터 전송이 직렬 변환되어 인코딩 데이터 패킷으로 수신기에 전송된다. 수신기는 데이터 패킷을 직병렬 변환하고, 로직 등식의 코드북 및 DC/RD 스펙을 포함하는 동시 코드 검사기를 사용하여 무효용의 인코딩된 패킷 및 데이터 스트림을 검사한다. 일부 예시적 실시예에서, 인코딩된 데이터 패킷의 정적 특성 및 데이터 스트림의 동적 특성이 사용된다. 일부 예시적 실시예에서 동적 특성은 유한 상태 머신을 사용하여 추적된다.

    집적 회로(IC)는 비용 및 크기 절감의 압력을 계속하여 받고 있다. 고속 입출력(High Speed Input/Output; HSIO) 디바이스는 HSIO 디바이스 테스팅이 매우 어려워질 수 있고, 특별한 고성능 자동 테스트 장비(ATE)를 필요로 하기 때문에 특히 문제가 될 수 있다.

    적어도 일부 실시예에서, 온라인 테스트 모드에서 진보적인 테스팅이 수행된다. 이롭게도, 시스템이 정상 기능 모드로 동작하고 있는 동안에 온라인 테스트가 수행된다. 일반적으로, 동시에 동작하는 시스템의 다른 컴포넌트와 필드에서 실행되어 거의 정상 기능 모드 환경에서 테스트가 행해진다. 종래의 PRBS BIST(Built-In Self-Test)는 온라인 테스팅을 수행할 수 없다는 것이 이해될 수 있다. 종래의 PRBS BIST는 단지 테스트 동안 에이블될 수 있지만 기능 모드 동안에는 인에이블될 수 없다. 한가지 장점으로는 필드에서 BER을 측정함으로써 채널 품질을 측정할 수 있다는 것이다. 필드에서의 이러한 BER 측정은, 테스트의 동작 조건이 실제 애플리케이션의 동작 조건과는 어느 정도 다를 수 있기 때문에 테스트에서 측정되는 것 보다 더 실제적일 수 있다. 즉, 다양한 애플리케이션 모두에 대하여 테스트 중인 디바이스 또는 시스템의의 동일한 기능을 테스트가 정확하게 흉내낼 수는 거의 없다. 필드에서의 BER 측정은 고려중인 애플리케이션의 채널 품질에 대한 보다 정확한 측정일 수도 있거나, 테스팅이 가능한 한 거의 동일한 조건에서 실행된다는 신뢰 레벨을 적어도 제공할 수도 있다.

    제안된 시스템, 방법 및 디바이스는 장점 중에서도 특히 개선된 집적회로(IC)를 생산하고, HSIO 디바이스에 대한 테스팅 비용을 줄이는 장점이 있다. 이는 다른 방식과 비교되는 효율적이고 확고한 방식으로 이루어질 수 있다. 유용하게도, 제안된 시스템, 방법 및 디바이스는 인코딩된 데이터 스트림의 유효성을 검사한다. 본 발명의 이러한 장점 및 다른 장점은 도면들 중 몇몇 도면을 포함하는 첨부의 상세한 설명을 읽음으로써 자명해질 것이다.

    도 1은 전송 오류에 대하여 인코딩된 데이터를 검사하도록 구성된 HSIO(High-Speed Input/Output) 디바이스의 예를 도시한다. 일반적으로, 오류는 전송 동안에 전송(TX) 측에서, 또는 수신(RX) 측에서, 또는 양쪽의 결합 측에서 발생할 수도 있다. 비한정적인 실시예에서, 수신기(100)는 직병렬 변환기(102), 동시 코드 검사기(C3)(104) 및 디코더(106)를 포함한다. 일부 비한정적인 실시예에서, 예를 들어 도 1에 도시한 것과 같은 HISO 디바이스는 유용하지는 않지만 선택적으로 동일한 칩 상에서 구현하여 테스트중인 디바이스(DUT)에 고유한 테스트 능력을 제공할 수도 있다.

    직병렬 변환기(102)는 직렬 변환되어 인코딩된 고속 데이터 전송을 수신하도 록 구성한다. 직병렬 변환기는 디코더(106) 및 C3(104)에 커플링된다. 직병렬 변환기(102)는 수신된 직렬 데이터 패킷을 직병렬 변환하고, 그 결과의 직병렬 변환된 데이터를 디코더(106)와 C3(104)로 전달하도록 구성한다. 직병렬 변환기(102)와 디코더(106) 및 직병렬 변환기(102)와 C3(104)을 커플링하는 방식은 공지되거나 편리한 임의의 방식으로 이루어질 수 있다. 예를 들어, 직병렬 변환기와 디코더는 데이터 버스 시스템을 이용하여 커플링될 수 있다.

    디코더(106)는 커플링된 직병렬 변환기(102)로부터 수신된 인코딩된 데이터 패킷을 디코딩하도록 구성한다. 디코더(106)는 디코딩된 데이터를 공지되거나 편리한 임의의 디바이스 및/또는 시스템으로 송신할 수 있다. 인코딩된 데이터 패킷은 공지되거나 편리한 임의의 방식으로 인코딩될 수 있다.

    몇몇 예시적 실시예에서, 인코딩된 데이터 패킷은 전송된 1 및 0의 수의 균형을 맞추는 방식으로 인코딩될 것이다. 소정의 실시예에서 사용될 수 있는 데이터 패킷 인코딩 기법의 비-제한적 예는 본 기술 분야에서 공지되어 있는 바와 같은 IBM 8B/10B, 5B/6B, 4B/6B, 및/또는 공지되어 있거나 미래에 개발될 수 있는 다른 코딩 또는 인코딩 기법을 포함한다. 소정의 예시적 실시예에서, 전송된 데이터는 10-비트 DC-균형(DC-balanced) 클록-내장 인코딩 기법을 사용해서 인코딩될 수 있다.

    동시 코드 검사기(C3)(204)는 코드북(212) 및 DC/RD 스펙(214)를 포함한다. 코드북(212)은 조합 로직 회로 또는 롬(ROM)으로 또는 다른 방식으로 구현될 수 있다. DC 및/또는 RD 스펙은 예를 들어, 유한 상태 머신으로서 또는 공지되거나 편 리한 다른 방식으로 구현될 수 있다. C3(204)는 커플링된 직병렬 변환기(202)로부터 인코딩된 데이터 패킷을 수신한다. 그 다음, 인코딩된 데이터 패킷은, 여전히 인코딩되면서, 코드북(212) 및 DC/RD 스펙(214)의 논리식을 사용해서 무효의 유효성에 대해 검사될 것이다.

    코드북(212)의 논리식은, 코드워드(codeword)를 입력으로, 유효 또는 무효를 출력으로 고려하여, 코드북에 포함된 유효 코드워드를 분석함으로써 획득될 수 있고, 사용된 인코딩 기법과는 일반적으로 독립적일 수 있다. 소정의 예시적 실시예에서, 코드북은 상이한 인코딩의 상태 값을 포함 또는 내포할 것이다. 예를 들어, 비-제한적인 예시적 일 실시예에서, 코드북은 각각의 비-인코딩된 데이터 패킷에 대해 RD- 및 RD+ 인코딩된 데이터 값을 모두 포함할 수 있다. RD- 인코딩된 데이터 값은 예를 들어, 0보다 1이 더 많은 2진 데이터 값일 수 있다. 유사하게, RD+ 인코딩된 데이터 값은 1보다 0이 더 많은 2진 데이터 값일 수 있다. 몇몇 예시적 실시예에서, 코드북은 DC 값을, 인코딩 기법에서 사용된 코드워드로부터 얻어진 인코딩된 데이터 패킷에 할당할 수 있다. 코드북은 무효 (또는 유효) 데이터 패킷을 식별하기 위해 DC 값을 사용할 수 있다. 본 명세서에서 제시된 설명의 관점에서, 무효 데이터를 식별하여, 오류 또는 장애 상태의 표시를 제공하려고 하는 일반적 취지가 이해될 수 있을 것이다. 선택적으로, 모든 유효 데이터를 식별할 수 있지만, 이는, 예상되는 오류가 거의 없을 경우에, 예상된 소수의 무효 데이터 또는 오류 또는 장애 상태를 식별하는 것에 비해 덜 효율적일 수 있다. 따라서, 본 설명은, 유효 데이터 식별과 반대되는 규칙이 사용될 수 있다는 것을 이해하면서 무효 데이터의 식별에 초점을 맞춘다.

    몇몇 예시적인 실시예에서, C3은 데이터 스트림 내의 인코딩된 데이터 패킷의 무효성을 검사할 뿐만 아니라, 개별적인 인코딩된 데이터 패킷의 무효성 또한 검사할 수 있을 것이다. 몇몇 예시적인 실시예에서, C3은 무효 데이터 패킷 또는 데이터 패킷 내의 무효 비트가 발생하는 레이트를 수집하도록 구성되는 BER 시스템에 커플링된다. 몇몇 예시적인 실시예에서, C3은 비트 오류를 야기하는 결함을 검출하는 디바이스 및/또는 시스템에서 이용된다. 이러한 디바이스 및/또는 시스템은 소프트 오류(soft error) 및/또는 하드 오류(hard error)를 검출하도록 구성될 수 있을 것이다.

    몇몇 예시적인 실시예에서, C3은 데이터 스트림 내의 0과 1의 균형을 검사함으로써 동작하여, 무효 코드워드(codeword) 및/또는 전송 오류를 검출한다. C3은 몇몇 예시적인 실시예에서 동일한 수의 1과 0을 가지는 DC-균형 코드워드로 데이터를 인코딩하는 인코딩 체계가 이용되기 때문에 인코딩된 데이터 패킷이 무효인지 여부를 판정할 수 있다. 그러나, 몇몇 예시적인 실시예에서는 유효 코드워드 내의 1과 0의 수가 정확하게 균형을 이루지는 않으나, 소정의 DC 값으로 한정되어 C3이 그 범위 내의 패킷의 유효성을 검사할 수 있도록 하는 인코딩 체계가 이용된다. 그 범위는 DC(c i )=N 1 -N 0 (N 1 은 1의 수, N 0 은 0의 수)으로 주어진 패킷 내의 코드워드 c i 의 DC 값에 대한 표현을 계산함으로써 결정되는, 패킷의 DC 값에 의해서 결정될 수 있을 것이다.

    IBM 8B/10B 인코딩 체계를 이용하는 제한적이지 않은 예시적인 실시예에 대한 DC 스펙에 있어서, 코드워드 c i 의 DC 값은 DC(c i )∈{-2, 0, 2}일 수 있을 것이다. 패킷의 다른 DC 값은 DC 스펙을 위배할 것이다. 그러나, 인코딩 체계의 DC 스펙을 위배하지 않는 모든 코드워드가 반드시 유효 코드워드인 것인 아니다. 많은 인코딩 체계에 대한 DC 스펙은 무효성에 대한 충분 조건이지만, 필요 조건은 아니다. 예컨대, IBM 8B/10B 인코딩 체계의 제한적이지 않은 예에서는 442개의 유효 코드워드와 582개의 무효 코드워드가 존재하지만, 무효 코드워드 중 230개는 DC 스펙을 만족할 것이다. DC 스펙이 오류를 검출하기 위한 테스트에 이용되는 경우에, DC 스펙을 만족하는 이용되지 않은 코드워드가 테스트 기능을 향상시키기 위한 테스트 자극(stimulus)으로서 이용될 수 있을 것이다.

    몇몇 예시적인 실시예에서, 인코딩 체계가 코드워드의 데이터 스트림의 DC-균형을 맞추기 때문에 C3은 데이터 스트림 내의 오류를 검출한다. 몇몇 예시적인 실시예에서, 데이터 스트림의 DC 균형은 데이터 스트림의 RD(running disparity)를 추적함으로써 유효화될 수 있을 것이다. RD는 데이터 스트림에서의 0 또는 1의 초과가 현재까지 전송되었는지를 추적한다. 전송된 데이터 스트림에서의 0 또는 1의 과잉은 이 데이터 스트림의 RD로 지칭된다. 몇몇 실시예에서, RD는 데이터 스트림에서의 0 또는 1의 초과가 수신기에 전송되었는지를 추적하는데 이용되며, 따라서 전송 오류가 발생되었는지를 표시한다. 예를 들면, 데이터 스트림에서의 1의 초과가 전송되는 경우라면, RD는 양일 것이지만, 0의 초과는 음의 RD를 생성한다. 데 이터 스트림에서의 개별 데이터 패킷이 수신될 때, 그 데이터 패킷의 값은 데이터 스트림의 현재 RD를 변경할 수도 있다. 예를 들면, 더 많은 1 또는 0을 갖는 데이터 패킷은 그 RD를 양의 값 방향으로 변경할 것이지만, 동일한 수의 0과 1의 균형 데이터 패킷은 그 RD를 그대로 둔다.

    몇몇 실시예에서는, C3이 PRBS 다항식에 독립적일 수 있지만, 기본 인코딩 방법으로부터 유도되기 때문에, C3은 (예를 들어, DC 또는 RD 스펙 등의) 테스트 스펙을 충족시키는 모든 유효 코드워드 및 몇몇 무효 코드워드를 수용할 수 있다. C3 하드웨어는 (SIMG의 실험에 의하면) 종래의 PRBS의 50%일 수 있으며, 테스트 중에 더 큰 테스트 패턴을 처리할 수 있다. 더구나, PRBS는 C3이 처리할 수 있는 많은 시퀀스 중에서 하나의 의사 랜덤 패턴의 시퀀스를 생성할 수 있다.

    IBM 8B/10B 인코딩 방법의 어느 예에서는, C -2 및 C +2 타입의 코드워드는 데이터 스트림에 인터리브되어 DC-균형 데이터 스트림을 생성하며, 그 데이터 스트림의 DC (테스트) 스펙으로 불린다. 본 명세서에서는, C -2 및 C +2 타입의 코드워드는 제각기 1보다 2개 더 많은 0을 가지고, 0보다 2개 더 많은 1을 갖는 코드워드를 지칭한다. IBM 8B/10B 인코딩 방법은 임의의 유효 코드워드에서 동일한 수의 1과 0, 1보다 2개 더 많은 0, 또는 0보다 2개 더 많은 1을 필요로 하는 것으로 정해진다. 이 IBM 8B/10B의 예에서, 전송될 각각의 가능한 8-비트 값은 양의 10-비트 코드워드 값(0과 같거나 더 많은 1)과 음의 10-비트 코드워드 값(1과 같거나 더 많은 0) 모두로 배정되는 2개의 가능한 10-비트 코드워드를 가질 수 있다. IBM 8B/10B 인 코딩 방법은 주어진 시간에 정확히 균형을 이룰 DC 데이터 스트림을 필요로 하지는 않지만, DC 값의 범위를 규정한다.

    몇몇 실시예에서, RD의 값은 동시 코드 검사기(C3)에 의해 추적된다. C3은 데이터를 유한 상태 머신으로서 모델링하여 인코딩된 패킷의 데이터 스트림을 추적할 수 있으며, 그 데이터 스트림이 무효성에 대해 검사받게 한다. IBM 8B/10B 인코딩 체계의 비제한적인 예에는 두개의 유효 RD 상태, 즉, 네거티브 런닝 디스패리티 즉 "RD-" 및 포지티브 런닝 디스패리티 "RD+"이 있다. IBM 8B/10B 인코딩 체계에서 인코딩된 각각의 8 비트값은 두개의 가능한 10비트 코드워드를 갖기 때문에, 데이터 스트림은 실질적으로 DC 균형으로 유지될 수 있고, 따라서, 무효 RD값은 C3에 의해 검출될 수 있는 오류를 지시한다. 예를 들면, IBM 8B/10B 인코딩 체계에서, 네거티브 C -2 유형인 두개의 코드워드가 포지티브 C +2 유형에 인터리브하지 않고 전송되었다면, 전송된 데이터 스트림은 허용할 수 없을 정도로 1보다 0을 더 많이 가져 인코딩 체계를 위배하게 될 것이다.

    일부 예시적인 실시예들에서는, 코드워드의 홀수의 비트 오류들이 코드워드의 값을 무효(invalid) 코드워드로 변경할 것이다. 비트 변경은, CEC(code error checker)를 통해, 특정한 코드워드의 DC 값을 통해 또는 데이터 스트림의 RD 값을 통해 검출될 수 있다. 일부 예시적인 실시예들에서는, 데이터 스트림의 DC 값 및 코드워드의 롱 스트림의 변경에 의해 짝수의 비트 오류들이 검출될 수 있다. 검출가능한 오류들을 인터리브하지 않고 검출 불가능한 오류가 반복적으로 발생할 가능 성은 비교적 낮다. 일부 예시적인 실시예들에서는, 오류의 검출이 소스가 조건을 고려한 테스트 스펙 에 대하여 유효 코드워드 스트림을 생성한다는 가정에 기초한다. 일부 예시적인 실시예들에서는, 테스트 스펙이 RD 스펙 또는 DC 스펙이다. 일부 실시에들에서는, 테스트 스펙이 RD 스펙 및 DC 스펙이거나 또는 이들 둘의 특정한 조합일 수 있다. 유사하게, "테스트 응답(test response)"을 DC 값, RD 값, 및 "무효" 및 RD 타입과 같은 다른 응답 또는 조건에 대한 포괄적인 명칭으로 사용할 수 있다.

    코드북(12)은 통상, 유효 코드워드를, 데이터 패킷의 무효성을 점검하기 위해 인코드된 데이터 패킷에 적용될 수 있는 논리식에 합성함으로써 구현될 수 있다. 일부 예시적인 실시예들에서는, 논리식이 사용되는 인코딩 스킴에 의존할 것이다. 일부 예시적인 실시예들에서는, 10 비트 DC-밸런스드 클럭-임베디드 인코딩 스킴이 이용될 수 있다. IBM 8B/10B 인코딩 스킴을 이용하는 비제한적인 예에서는, 코드북이 17개의 논리식의 셋트를 이용하여 데이터 스트림 무효성 및/또는 전송 오류에 대한 점검을 할 수 있다. 이들 17개의 방정식들 중 하나의 예시적인 셋트가 여기에 참조로서 포함되며, 이하에 설명되는 AX Widmer and PA Franaszek reference("ADC-Balance, Partitioned-Block, 8B/10B Transmission code", IBM J. Res. Develop.,Vol.27, No.5, PP.440-451, Sept. 1983)에 기술되어 있다. 이 코드 셋트가 여기서는 특정한 적용성을 갖는다고 해도, 본 발명은 이러한 특정한 코드 셋트에만 제한되는 것은 아니라는 것을 이해할 것이다. 또한, 본 발명이나 본 발명의 특정한 실시예들 모두 17개의 수학식 또는 수학식의 이러한 특정한 셋트 또 는 형식에 제한되지 않고, 수학식이 등가의 수학 및/또는 논리 셋트로 재계산되어 사용될 수 있고, 이러한 수정된 형태로 사용되거나 구현될 수 있다는 것이 이해될 것이다. 한편, 본 발명의 적어도 하나의 실시예는 여기에 설명하는 동일한 형태의 8B/10B에 사용하기 위한 예시적인 17개의 수학식을 유리하게 사용할 수 있다.

    예시적인 실시예에서는, 다음의 수학식 중 임의의 것이 참(true)일 때에 무효 코드워드가 나온다. 10 비트의 코드워드의 경우, 비트 9는 j, 비트 8은 h, 비트 7은 g, 비트 6은 f, 비트 5는 I, 비트 4는 e, 비트 3은 d, 비트 2는 c, 비트 1은 b, 비트 0은 a이다. P13은 4비트 abcd 중 3개가 '0'이고, 다른 것이 '1', 즉 0001을 나타낸다. P31은 4비트 abcd 중 3개가 '1'이고 다른 것이 '0'이라는 것, 즉 1110을 나타낸다. 표 1은 IBM 8B/10B 인코딩 스킴에서 사용하기 위한 예시적인 수학식을 도시한다.

    표 1에 도시된 예시적인 수학식을 사용하여 IBM 8/10 코드북을 구현한다. 수학식은 CEC(code error checker) 회로 블록을 형성하는 로직 게이트의 네트워크에서 구현될 수 있다. CEC 회로는 10 비트 코드워드를 입력으로 받아들이고, 코드워드가 코드북 내에 포함되어 있는지 여부를 판정한다. 코드워드가 코드북 내에 포함되어 있지 않으면, CEC 회로는 코드워드가 무효 코드워드임을 나타내는 무효(invalCW=1)를 플래그하는 것이다.

    여기에 제공된 설명에 비추어, 상이한 수 및/또는 셋트의 수학식들이, 예를 들어 IBM 5B/6B, 4B/6B 또는 다른 코딩 스킴과 같은 상이한 코딩 스킴에 이용될 수 있다는 것이 이해될 것이다.

    등식 번호 등식값
    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 회로에 필요한 로직 요소 및 반도체 영역을 감소시킨다.

    QQ群二维码
    意见反馈