[go: up one dir, main page]

KR20130023199A - 통신 인터페이스 및 프로토콜 - Google Patents

통신 인터페이스 및 프로토콜 Download PDF

Info

Publication number
KR20130023199A
KR20130023199A KR1020127023090A KR20127023090A KR20130023199A KR 20130023199 A KR20130023199 A KR 20130023199A KR 1020127023090 A KR1020127023090 A KR 1020127023090A KR 20127023090 A KR20127023090 A KR 20127023090A KR 20130023199 A KR20130023199 A KR 20130023199A
Authority
KR
South Korea
Prior art keywords
value
error
frame
acknowledgment
indicator
Prior art date
Application number
KR1020127023090A
Other languages
English (en)
Other versions
KR101471733B1 (ko
Inventor
마이클 밀러
마이클 모리슨
필립 페롤리토
제이 파텔
토루 쿠주하라
Original Assignee
모시스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모시스 인코포레이티드 filed Critical 모시스 인코포레이티드
Publication of KR20130023199A publication Critical patent/KR20130023199A/ko
Application granted granted Critical
Publication of KR101471733B1 publication Critical patent/KR101471733B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0096Channel splitting in point-to-point links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L2001/125Arrangements for preventing errors in the return channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

장치는 수신기, 에러 검출 유닛, 및 응답확인 유닛을 포함한다. 수신기는 제1 통신 경로를 통해 제2 장치의 송신기 유닛으로부터 데이터의 프레임들을 수신할 수 있다. 에러 검출 유닛은 제1 통신 경로를 통해 수신된 데이터의 프레임들 내의 데이터 에러들을 검출할 수 있다. 응답확인 유닛은, 장치에 의해 수신된 프레임들이 에러가 없는지를 나타내는 응답확인 표시자를 유지할 수 있다. 에러 검출 유닛이 에러를 검출하는 것에 응답하여, 응답확인 유닛은 응답확인 표시자의 값을 프리즈함으로써 에러 조건이 존재함을 표시할 수 있거나, 또는 대안적으로 응답확인 유닛은 응답확인 표시자의 현재 값을 미리 결정된 에러 값으로 설정할 수 있다. 또한, 장치는, 장치가 프레임들을 수신하고 있는 동안에, 제2 통신 경로를 통해 제2 장치에 응답확인 표시자의 값들을 연속적으로 전달할 수 있다.

Description

통신 인터페이스 및 프로토콜{COMMUNICATION INTERFACE AND PROTOCOL}
본 발명은 통신 링크, 에러 검출 및 핸들링에 관한 것이다.
직병렬(SerDes) 기반 상호접속과의 통신 링크를 채용한 시스템은 직렬 및 병렬 데이터 포맷간에 데이터를 직렬화 및 병렬화(deserialize)하기 위한, 또한 손실 있는 채널을 통한 정확한 전송을 보장하기 위한 회로를 전형적으로 필요로 한다. 더욱 특히, 손실 있는 채널에서는 예컨대 내부 심볼 간섭, 클럭 지터, 전원 노이즈 등에 기인한 데이터 비트 손실의 한정된 가능성이 있다.
이런 시스템에서는, 프레임 데이터의 신뢰성 있는 트랜스포트의 보장을 담당하는 데이터 링크 레이어가 있을 수 있다. 그러나, 많은 수의 종래 시스템에서, 신뢰성과 연관된 일부 기능성은 상당한 구현 오버헤드를 초래할 수 있다. 일부 시스템에서 이런 구현 오버헤드는 다수의 스위치들을 통한 다수의 엔드포인트의 어드레싱, 오버-서브스크라이브드(over-subscribed) 스위치로부터 드롭된 패킷, 공통 모드 노이즈 등에 기인하여 필요할 수 있다. 따라서, 이런 시스템에서 필요할지라도, 구현 오버헤드는 특히 적은 수의 데이터 페이로드를 전송할 때 링크의 대역폭 효율성을 감소시킨다. 따라서, 종래 시스템에서 대역폭 활용의 효율성을 유지하기 위해서는, 구현 오버헤드가 큰 데이터 페이로드를 전송하여 보상될 수 있다. 그러나, 효율성 손실 및 구현 오버헤드의 부가 비용이 적은 수의 데이터 페이로드를 일차적으로 전송하는 시스템에서는 수용가능하지 않을 수 있다.
통신 인터페이스를 포함하는 디바이스의 여러 실시예가 개시된다. 일 실시예에서, 장치는, 제1 통신 경로를 통해 제2 장치의 송신기 유닛으로부터 데이터의 프레임을 수신하도록 구성되는 수신기 유닛을 포함한다. 장치는, 또한 제1 장치 경로를 통해 수신된 데이터의 프레임에서 데이터 에러를 검출하도록 구성된 에러 검출 유닛을 포함한다. 장치는, 또한 제1 직렬 통신 경로를 통해 장치에 의해 수신된 프레임이 에러가 없는지 여부를 나타내는 응답확인 표시자(Acknowledgement indicator)를 유지하도록 구성되는 응답확인 유닛을 포함한다. 에러 검출 유닛이 수신된 프레임에서 데이터 에러를 검출한 것에 응답하여, 응답확인 유닛은 응답확인 표시자의 값을 프리즈(freeze)하여 제1 통신 경로상에 에러 조건이 존재하는 것을 나타내도록 구성된다. 더욱이, 장치는, 적어도 하나의 에러가 없는 프레임이 장치로부터 수신된 것을 나타내는 적어도 하나의 값을 포함하는 프레임을 제1 통신 경로를 통해 수신하고 있는 동안, 제2 통신 경로를 통해 제2 장치에게 Ack 표시자의 값을 연속적으로 전달하도록 구성될 수 있다.
일 특정 실시예에서, 응답확인 표시자는 초기화 이벤트 이후에 장치에 의해 수신된 에러가 없는 프레임의 수를 나타내는 카운트 값을 포함할 수 있다. 또한, 응답확인 표시자의 값을 프리즈하면 적어도 2개의 연속적인 동일 카운트값들이 전달되게 할 수 있다.
다른 특정 구현에서, 응답확인 표시자는 싱글 비트를 포함한다. 이런 구현에서 응답확인 유닛은 어떤 데이터 에러도 에러 검출 유닛에 의해 검출되지 않는 수신된 프레임들 각각에 대한 응답확인 표시자의 상태를 토글하도록 구성된다. 더욱이, 응답확인 표시자의 값을 프리즈하는 것은 응답확인 표시자의 적어도 2개의 연속적인 동일 값들이 제2 장치에게 전달되게 한다.
다른 실시예에서, 장치는 데이터의 프레임들을 제1 통신 경로를 통해 제2 장치의 수신기 유닛에 송신하도록 구성된 송신기 유닛을 포함할 수 있다. 또한, 상기 장치는, 송신기 유닛이 제1 경로를 통해 프레임들을 송신하는 동안, 제2 장치로부터 제2 통신 경로를 통해, 적어도 하나의 에러 없는 프레임이 제2 장치의 수신기 유닛에 의해 수신되었다는 것을 나타내는 적어도 하나의 값을 포함하는 응답확인 표시자의 값들을 연속적으로 수신하도록 구성될 수 있는 수신기 유닛을 포함한다. 응답확인 표시자의 값들은 에러 없는 프레임들이 제1 통신 경로를 통해 제2 장치에 의해 수신되었는지를 나타낸다. 또한, 상기 장치는 상기 장치의 수신기 유닛이 제2 장치로로부터 응답확인 표시자의 프리즈된 값(frozen value)을 수신하였다는 것을 검출하는 것에 응답하여 에러 조건이 존재한다라고 결정하도록 구성될 수 있는 에러 핸들링 유닛을 포함할 수 있다.
특정 구현에서, 에러 핸들링 유닛은 또한 응답확인 표시자의 적어도 2개의 연속적인 동일한 값들을 검출하는 것에 응답하여 에러 조건이 존재한다라고 결정하도록 구성될 수 있다.
도 1은 2개의 디바이스 간의 통신을 포함하는 시스템의 일 실시예의 블록도다.
도 2는 도 1에 도시된 시스템의 통신 링크 내에서 사용되는 데이터 링크 레이어 프레임 프로토콜의 일 실시예를 도시하는 도이다.
도 3은 도 1에 도시된 통신 인터페이스의 일 실시예의 블록도이다.
도 4a는 도 1 및 도 3에 도시된 통신 인터페이스의 수신기 유닛의 일 실시예의 동작을 도시한 플로우도이다.
도 4b는 도 1 및 도 3에 도시된 통신 인터페이스의 수신기 유닛의 다른 실시예의 동작을 도시한 플로우도이다.
도 5는 도 1 및 도 3에 도시된 통신 인터페이스의 수신기 유닛의 일 실시예의 동작을 도시한 플로우도이다.
도 6은 도 1 및 도 3에 도시된, 제1 통신 인터페이스의 송신기 유닛의 실시예와 제2 통신 인터페이스의 수신기 유닛의 일 실시예의 동작을 도시한 플로우도이다.
상기 도면들에 특정 실시예들이 예로서 도시되며, 이하에서 상세히 설명될 것이다. 그러나, 상기 도면들 및 상세한 설명은, 특정 구성에 대해 단 하나의 실시예만이 설명된 경우라도, 본원의 특허청구범위를 개시된 특정 실시예들에 한정하려고 의도된 것이 아니라는 것이 이해되어야 한다. 반대로, 본 개시의 이익을 갖는 당업자들에게 명백할 변형물들, 균등물들 및 대체물들 모두를 커버하기 위해 의도된 것이다. 본 명세서에 제공되는 특징들의 예는 달리 언급되지 않는다면 제한을 위한 것이라기보다는 예시를 위해 의도된 것이다.
본 명세서를 통해 사용되는, 단어 "할 수 있다(may)"는 강제적인 의미(즉, 해야만 함을 의미하는 것)보다는 오히려, 허가하는 의미(즉, 할 가능성이 있음을 의미하는 것)로 사용된다. 마찬가지로, "포함한다(include)", "포함하는(including)" 및 "포함한다(includes)"라는 용어는 포함하지만 이에 제한되지 않음을 의미한다.
다양한 유닛들, 회로들, 또는 다른 요소들이 태스크 또는 태스크들을 수행"하기 위해 구성되는" 것으로 설명될 수 있다. 이러한 문맥들에서, "하기 위해 구성되는"은 일반적으로 동작 동안에 태스크 또는 태스크들을 수행"하는 회로를 가지는"을 의미하는 구조의 넓은 설명이다. 이처럼, 유닛/회로/요소는, 그 유닛/회로/요소가 현재 온(on)이 아닌 경우에도, 태스크를 수행하기 위해 구성될 수 있다. 일반적으로, "하기 위해 구성되는"에 대응하는 구조를 형성하는 회로는 하드웨어 회로들을 포함할 수 있다. 마찬가지로, 다양한 유닛들/회로들/요소들은 설명의 편의를 위해 태스크 또는 태스크들을 수행하는 것으로 설명될 수 있다. 이러한 설명들은 문구 "하기 위해 구성되는"을 포함하는 것으로 설명되어야만 한다. 하나 이상의 태스크들을 수행하기 위해 구성되는 유닛/회로/요소를 인용하는 것은 미국 특허법 112조 6번째 단락, 유닛/회로/요소에 대한 설명을 적용하기 위한 것이 분명히 아니다.
다수의 종래의 통신 링크들은 정확한 긍정 응답확인 스킴들(positive Acknowledgement schemes)을 사용한다. 이러한 종래의 시스템들에서, 오류들이 긴 레이턴시(latency) 채널들에 대해 상당히 자주 발생할 수 있고, 따라서 그 시스템은 수신된 매 프레임을 정확하게 응답한다. 적절한 크기의 시간에서 응답확인되지 않은 임의의 프레임은 재전송된다. 링크 대역폭 효율은 제어에서의 복잡성의 비용 및 응답확인 정보 흐름에 할당된 더 높은 대역폭으로 최적화된다. 이러한 솔루션들은 더 많은 복잡성, 윈도우 큐잉(window queuing), 및 프로토콜 복잡성을 요구한다. 많은 경우에서, 이러한 종류의 시스템들은 내장된 컨트롤러들 내의 마이크로 코드 또는 소프트웨어 드라이버들에서 구현된다. 윈도우 어프로치(window approach)는 전송 측에서 재전송 큐(queue)를 요구할 뿐만 아니라, 누락된 프레임들이 회복될 때까지 큐가 모들 프레임들을 유지하고 있는 것을 요구함으로써 수신기 측에서 레이턴시 및 복잡성에 추가할 수 있다.
도 1에서, 두 개의 디바이스 사이의 통신 링크를 포함하는 시스템의 일 실시예의 블록도가 도시된다. 시스템(10)은 직렬 통신 링크(16)을 통해 다른 디바이스(예를 들어, 디바이스(2))에 결합된 디바이스(예를 들어, 디바이스(1))를 포함한다. 디바이스(1)는 통신 인터페이스(12A)를 포함하고, 디바이스(2)는 통신 인터페이스(12B)를 포함한다. 일반적으로, 각각의 디바이스들(1 및 2)은 임의의 종류의 장치를 구현할 수 있고, 원하는 임의의 특정 기능을 구현할 수 있다. 이처럼, 각각의 디바이스들(1 및 2)을 구현하는 회로 또는 그것의 측면들은 하나의 집적 회로(IC) 상에 또는 상이한 집적 회로들 상에 포함될 수 있다. 일 예시적인 실시예에서, 하나의 디바이스(예를 들어, 디바이스(1))는 메모리 컨트롤러를 대표할 수 있고, 다른 디바이스(예를 들어, 디바이스(2))는 메모리 디바이스를 대표할 수 있다.
통신 링크(16)와 같은 통신 링크는, 유선이든 또는 무선이든 간에, 정보를 전달하기 위한 두 개의 디바이스 사이의 물리적인 상호 연결로 칭해짐이 주목된다. 예를 들어, 회로 보드 상에 탑재된 두 개의 집적 회로(IC) 칩들이 유선 통신 링크를 통해 상호 연결되는 일 실시예에서, 그 통신 링크는 회로 보드 상에서 임의의 수의 와이어 트레이스(wire trace)들을 포함할 수 있다. 따라서, 도 1에 도시된 실시예에서, 통신 링크(16)는 디바이스 1으로부터 디바이스 2로 정보를 연속으로 전달하는 단방향 통신 경로들(예컨대, 14A) 및 디바이스 2로부터 디바이스 1으로 정보를 연속으로 전달하는 단방향 통신 경로들(예컨대, 14B)를 포함한다. 다양한 실시예에서, 직렬 통신 링크(16)내에 임의의 수의 단방향 통신 경로들(14A 및 14B)이 존재할 수 있다는 것을 유의한다. 그러나, 다른 실시예에서, 통신 링크(16)는 대신에 임의의 수의 양방향 직렬 통신 경로들을 포함할 수 있다는 것도 유의한다. 대안적으로, 통신 링크(16)는 단방향 및 양방향 직렬 통신 경로들 모두를 포함할 수 있다.
이하 도 3의 설명과 관련하여 더 상세히 기술되는 바와 같이, 일 실시예에서, 각각의 통신 인터페이스(12)는 각각의 디바이스내의 다른 회로들로부터의 트랜잭션들을 수신하고, 특정 데이터 프레임 포맷(도 2에 도시됨)을 이용하여 트랜잭션들을 포맷팅하고, 포맷팅된 데이터의 프레임들을 통신 링크(16)상에서 송신 및 수신하기 위한 로직을 포함할 수 있다. 또한, 각각의 통신 인터페이스(12)는 수신된 프레임들에 대한 에러를 체크하고, 에러를 발견하면 응답확인을 프리즈하도록 구성될 수 있다.
도 2를 참조하면, 도 1의 통신 링크(16)상에서 전달될 수 있는 DLL(data link layer) 프레임의 일 실시예를 도시하는 도면이 도시된다. 프레임(200)은 페이로드 필드(201), DLL 필드(203), 수신 응답확인(Rx Ack) 필드(205), 및 CRC(cyclic redundancy code) 필드(207)를 포함한다.
일 실시예에서, 페이로드 필드(201)는 프레임이 예컨대, 판독 및 기록 메모리 데이터(즉, 로드 또는 저장 각각)와 같은 데이터를 트랜스포트할 때 데이터 비트들의 수를 포함한다. 그러나, 프레임이 제어 프레임인 경우, 페이로드 필드(201)는 하나 이상의 제어 또는 커맨드 워드와 같은 제어 정보를 포함할 수 있다. 하나의 특정 구현에서, 페이로드 필드(201)는 72 비트 길이가 될 수 있다. 그러나, 다른 실시예에서, 다른 수의 비트들이 이용될 수 있다.
DLL 필드(203)는 프레임이 데이터(예컨대, 트랜잭션 레이어 정보)를 전달하는지 또는 프레임이 제어 정보(예컨대, 데이터 링크 정보)를 전달하는지 여부를 수신기에 표시하는데 이용된다. 일 실시예에서, DLL 필드(203)는 싱글 비트가 될 수 있고, 다른 실시예에서는, DLL 필드(203)는 다양한 타입의 데이터 또는 다양한 타입의 제어 프레임들을 나타내는데 이용되는 멀티 비트 인코딩이 될 수 있다. Rx Ack 필드(205)는, 에러가 이전에 송신된 프레임들에서 발견되지 않은 프레임들을 송신한 디바이스의 송신기로 긍정 응답확인 표시자를 다시 전달하는데 이용된다. 일 실시예에서, Rx Ack 필드(205)는 싱글 비트 Ack 표시가 될 수 있고, 다른 실시예에서, Rx Ack 필드(205)는 카운트 값을 제공하는 멀티 비트 인코딩이 될 수 있다. CRC 필드(207)는 에러 체크를 위해 CRC 비트들을 하나의 디바이스의 송신기로부터 다른 디바이스의 수신기로 전달하는데 이용된다. 하나의 특정 구현에서, CRC 필드(207)는 프레임(200)의 나머지(remainder)내의 또는 원하는 하나 이상의 이전 프레임들내의 비트들의 수를 보호하는데 충분한 임의의 수의 비트들을 포함할 수 있다.
도 3을 참조하면, 도 1의 통신 인터페이스들(12A 및 12B)의 일 실시예의 보다 상세한 측면들을 나타내는 도면이 도시되어 있다. 통신 인터페이스(12A)는 리플레이 큐(310)에 결합된 송신(Tx) 요청 트랜잭터 큐(305)를 포함하는 송신기 유닛(301)을 포함한다. 리플레이 큐(310)는 Tx 직/병렬화(315), 링크 제어 유닛(345)에 결합되며, Tx 직/병렬화(315)에 또한 결합되는 CRC 발생기(320)에 결합된다. Tx 직/병렬화(315)는 통신 링크(16)의 통신 레인(14A)을 통해 통신 인터페이스(12B)의 Rx 직/병렬화(350)에 결합된다. 몇몇 실시예들에서, 송신기 유닛(301)이 리플레이 큐(310) 없이 작동될 수 있다는 점에 유의하여야 한다.
통신 인터페이스(12A)는 차례로 링크 제어 유닛(345)에 결합되고 또한 리플레이 큐(310)에 결합되는 에러 핸들링 유닛(335)에 결합된 Rx 직/병렬화(330)를 포함하는 수신기 유닛(302)을 또한 포함한다. 에러 핸들링 유닛(335)은 이전 Ack 표시자 저장소(325)에 또한 결합된다.
디바이스(12B)의 수신기 유닛(303)은 Rx 타겟 트랜잭터 큐(365)에 결합되고 또한 CRC 에러 체크 유닛(355)에 결합되는 Rx 직/병렬화(350)를 포함한다. CRC 에러 체크 유닛(355)은 Rx Ack 발생기 유닛(360)에 결합된다. Rx Ack 발생기 유닛(360)은 디바이스(12B)의 송신기 유닛(304)의 Tx 직/병렬화(370)에 결합된다. Tx 직/병렬화(370)는 통신 링크(16)의 통신 레인(14B)을 통해 디바이스(12A)의 Rx 직/병렬화(330)에 결합된다.
일 실시예에서, Tx 요청 트랜잭터 큐(305)는 예를 들어 디바이스(1)의 다른 회로 부분들로부터 수신되는 트랜잭션들을 저장할 수 있다. 전송될 트랜잭션들은 리플레이 큐(310)를 이용하는 구현에서 리플레이 큐(310)에 저장될 수 있다. 각각의 트랜잭션은 예를 들어 도 2에 도시된 프레임 포맷으로 포맷팅될 수 있으며, Tx 직/병렬화(315)의 Tx 큐(317) 내에 저장될 수 있다. 일 실시예에서, CRC 발생기(320)는 프레임에서의 나머지 비트들에 기반하여 CRC를 발생시키고, 그 후 그 CRC를 프레임에 부가할 수 있다. 다른 실시예에서, 더 강한 에러 검출을 제공하기 위해, CRC 발생기(320)는 두 개의 프레임에 기반하여 CRC를 발생시키고, 어떤 프레임 단독의 CRC 필드(207) 내에 맞는 것보다 더 큰 CRC를 생성할 수 있다. 이러한 실시예에서, CRC는 두 개의 프레임으로 전달될 수 있다. 구체적으로, CRC는 두 개의 프레임에 기반하여 발생되고, 그 후 후속하는 두 개의 프레임으로 전달될 수 있다. 따라서, 두 개의 프레임에 대한 완전한 CRC는 CRC가 발생되었던 두 개의 프레임을 래그할 것이다. 또 다른 실시예에서, CRC 발생기(320)는 이전 프레임에 기반하여 CRC를 발생시킬 수 있다. 따라서, 이러한 실시예에서, CRC 발생기(320)는 일 프레임에서의 나머지 비트들에 기반하여 CRC를 발생시키고, 그 후 그 CRC를 다음 프레임의 CRC 필드(207)에 보낸다. 따라서, 주어진 프레임에 대한 CRC는 자신이 일 프레임에 의해 발생되었던 프레임을 래그할 것이다.
다양한 실시예들에서, CRC는 Tx 큐(317)에의 저장 전 또는 후 중 어느 하나에 프레임에 부가될 수 있다. 링크 제어 유닛(345)과 같은 다른 로직은 프레임이 데이터 프레임 또는 제어 프레임인지 여부에 따라 그 프레임의 DLL 표시(203)를 제어할 수 있다. 더 구체적으로, 일 실시예에서 프레임이 데이터 프레임이라면, DLL 표시는 0의 논리값으로 클리어될 수 있으며, 프레임이 예를 들어 재개 또는 리플레이 프레임과 같은 제어 프레임이라면, DLL 표시는 1의 논리값으로 설정될 수 있다. 다른 실시예들에서, 프레임이 제어 프레임인 경우에, DLL 표시가 0의 논리값으로 클리어되거나 또는 그 역으로 되는 식으로, DLL 표시의 논리값이 바뀔 수 있다는 점에 유의하여야 한다.
또한, 통신 인터페이스(12B)에 도시된 로직에 유사한, 통신 디바이스(12A) 내의 로직(도시되지 않음)은 통신 디바이스(12A)에 의해 전송될 각각의 프레임에 대해 적합한 Rx Ack 표시자(이하에서 추가로 설명함)를 발생시킬 수 있다.
포맷된 프레임들은 통신 경로(14A)를 통해 Tx 직/병렬화(315)에 의해 Rx 직/병렬화(350)로 송신될 수 있다. CRC 에러 체크 유닛(355)은 각각의 프레임을 에러에 대해 체크할 수 있다. 일 실시예에서, CRC 에러 체크 유닛(355)은 수신된 프레임으로부터 CRC 값을 발생시키고 새롭게 발생된 CRC 값을 프레임 내의 전달된 CRC 값과 비교함으로써 수신된 프레임들 내의 에러들을 검출할 수 있다. 검출된 에러들이 없다면, 각각의 프레임의 페이로드는 Rx 트랜잭터 큐(365)에게 포워딩될 수 있다. 또한, CRC 에러 체크 유닛(355)은, 에러가 현재 프레임에 존재하는지를 Rx Ack 발생기 유닛(360)에게 알릴 수 있다. 일 실시예에서, 에러가 있는 경우에, CRC 에러 체크 유닛(355)은 Rx Ack 발생기 유닛(360)에게 프리즈 신호를 제공하여 에러가 있다는 것을 표시할 수 있고, 에러가 없는 경우에는 Ack 신호를 제공할 수 있다. 그러나, 다른 실시예들에서, 멀티 비트의 에러 있는/에러 없는 신호가 이용될 수 있다. 이에 대응하여, Rx Ack 발생기 유닛(360)은 Rx Ack 표시자의 값을 발생시키고 Tx 직/병렬화(370)에게 보낼 수 있다. Tx 직/병렬화(370)는 Rx Ack 표시자를 하나 이상의 프레임을 이용하여 통신 인터페이스(12A)에게 보낼 수 있다.
더 특별하게는, Rx Ack 발생기 유닛(360)은 Rx 직/병렬화(350)에 의해 수신된 프레임들이 에러가 없었는지를 표시하는 Ack 표시자를 유지할 수 있다. 따라서, 일 실시예에서, 에러가 없는 프레임이 수신되고 CRC 에러 체크 유닛(355)이 Ack 신호를 보낼 때마다, Rx Ack 발생기 유닛(360)은, 통신 링크(16)가 초기화되거나 재초기화된 이후 수신된 에러 없는 프레임들의 수를 표시하는 러닝 카운트 값을 업데이트(즉, 예를 들어, 증가)시킬 수 있다. 그러나, CRC 에러 체크 유닛(355)이 에러를 검출하고 고정 신호를 보내면, Rx Ack 발생 유닛(360)은 카운트 값을 고정하고 고정된 카운트 값은 Tx 직/병렬화(370)에게 제공할 수 있다. 따라서, 이러한 실시예서, Rx Ack 표시자는 카운트 값에 대응할 수 있다. 일 실시예에서, 각각의 프레임 내의 Rx Ack 필드(205)는 1 비트 값만을 전달할 수도 있다. 그러한 이유로, 멀티 비트 카운트 값은 다수의 프레임을 이용하여 보내질 수 있다. 예를 들어, 카운트 값이 1011b이면, Rx Ack 발생기(360)는 이 카운트 값을 한번에 1 비트씩 Tx, 네 개의 프레임을 이용하여 한번에 1 비트씩 카운트 값을 보내는 직/병렬화(370)에게 제공할 수 있다. 일 실시예에서, Rx Ack 발생기(360)는 각각의 새로운 카운트 값을 Tx 직/병렬화(370)에게 연속적으로 제공할 수 있고, 에러 핸들링 유닛(335)은 어떤 프레임들이 유효한 Rx Ack 표시 카운트 값을 포함하는지 기록하도록 구성될 수 있다.
이에 따라, 카운트 값을 프리즈하는 것은 카운트 값이 변하는 것을 멈추는 것을 말한다. 따라서, 프리즈된 카운트 값이 Tx 직/병렬화(370)에게 연속적으로 보내지면, 수신기 유닛(302)은 적어도 두 개의 연이은 회차에서 동일한 카운트 값을 "봄"으로써 에러 조건을 검출할 수 있다. 일 실시예에서, 통신 링크(16)의 초기화 이벤트 동안에, 카운트 값은 0(또는 다른 사전에 결정된 초기화 값)과 같은 초기화 값으로 초기화될 수 있다. 에러가 없는 프레임들이 수신되면, 카운트 값은 증가될 수 있다. 예를 들어, 11개의 프레임이 수신되고 에러가 12번째 프레임에서 검출된다면, Rx Ack 발생기 유닛(360)은 카운트 값을 11로 프리즈할 수 있고, 통신 링크가 재개 동작으로 다시 초기화되거나 프레임들이 리플레이될 때까지, 이 프리즈된 카운트 값(즉, 11)을 Tx 직/병렬화(370)에게 연속적으로 제공할 수 있다.
또 다른 실시예에서, 각각의 프레임 내의 보내지는 Rx Ack 표시자는 에러가 없는 프레임이 수신되는 각 회차에 토글하는 싱글 비트일 수 있다. 그러한 이유로, Rx Ack 발생기 유닛(360)은 Ack 표시자를 각 회차에 단순히 토글할 수 있고, 에러의 이벤트시, Rx Ack 발생기(360)는 Ack 표시자 값을 마지막으로 토글된 값에 고정할 수 있다.
위의 실시예에서, 카운트 값을 프리즈하는 것은 카운트 값의 토글을 멈추게 하는 것을 가리킨다. 일 실시예에서, 통신 링크(16)의 초기화 이벤트 동안, Rx Ack 표시자 값은, 0과 같은 초기값(또는 미리 결정된 다른 초기값)으로 초기화될 수 있다. 에러 없는 각각의 프레임이 수신될 때, Rx Ack 표시자 값은 토글된다. 에러가 검출되면, Rx Ack 발생기 유닛(360)은, Rx Ack 표시자 값을 마지막 Rx Ack 표시자 값으로 프리즈하고, 이어서, 통신 링크가 재개 동작에서 다시 초기화되거나 또는 프레임들이 리플레이될 때까지, 프리즈된 Rx Ack 표시자 값을 Tx 직/병렬화(370)에 제공할 수 있다.
또 다른 실시예에서, Rx Ack 표시자 값은, 프레임들이 에러가 없는 한, 동일하게 머무르는 싱글 비트일 수 있다. 에러가 검출되면, Rx Ack 발생기(360)는 마지막 Rx Ack 값을 토글할 수 있다. 대안적으로, Rx Ack 발생기(360)는, Rx Ack 표시자 값이 미리 결정된 에러 값과 같은 상이한 값으로 설정되게 할 수 있다.
Rx 직/병렬화(330)은, Rx Ack 필드(205) 내의 표시자를 수신된 프레임(들)로부터 에러 핸들링 유닛(335)으로 전달할 수 있다. 에러 핸들링 유닛(335)은, 연속하여 수신되는 Rx Ack 표시자들로부터 새로운 Rx Ack 표시자(예컨대, 멀티 비트 카운트 값)을 생성하고, 새로운 Rx Ack 표시자(유효할 경우)를 이전 Ack 표시자 저장소(325)에 저장된 이전 Rx Ack 표시자와 비교하도록 구성될 수 있다. 비교가 완료되면, 새로운 Rx Ack 표시자는 다음 비교를 위해 이전 Ack 표시자 저장소(325)에 저장될 수 있다.
Rx Ack 표시자가 멀티 비트 카운트 값인 실시예에서, 에러 핸들링 유닛(335)은, 2개의 연속적인 Rx Ack 표시자 카운트 값이 동일한 경우에(즉, 프리즈된 Rx Ack 표시자) 에러가 발생했음을 검출할 수 있다. Rx Ack 표시자가 토글 비트인 실시예에서, 에러 핸들링 유닛(335)은, Rx Ack 표시자가 2개의 연속적인 프레임에 대해 동일 값을 갖는 경우(즉, 프리즈된 Rx Ack 표시자) 에러가 발생했다고 판정할 수 있다. 에러가 발생했을 때까지 Rx Ack 표시자 값이 동일한 값에 머무르는 실시예에서, 에러 핸들링 유닛(335)은, Rx Ack 표시자 값이 임의의 연속적인 2개의 프레임에서 상이하거나 또는 Rx Ack 표시자 값이 미리 결정된 에러 값으로 설정되는 경우, 에러가 발생했다고 판정할 수 있다.
상기한 바와 같이, 구현에 따라서, 에러 핸들링 유닛(335)은, Rx Ack 표시자 값이 임의의 연속적인 2개의 프레임에서 상이하거나 또는 Rx Ack 표시자 값이 미리 결정된 에러 값으로 설정된 경우에, 프리즈된 Rx Ack 표시자 때문에 에러가 발생했다고 검출할 수 있다. 그러나, 수신기가 적극적으로 모든 프레임에 대해 응답확인할 필요는 없다. 더 구체적으로, 일 실시예에서, 제어 프레임(즉, 프레임이 제어 프레임이라는 것을 나타내는 DLL 비트를 갖는 프레임)은 수신기에 의해 적극적으로 응답확인되지 않을 수 있다. 그러한 실시예에서, Rx 직/병렬화(303)는, 제어 프레임을 검출하고, 에러 없는 제어 프레임이 수신된 경우에, 수신기 유닛(303) 내의 Rx Ack 발생기(360)에게 증가하거나 변경하지 말라고 (또는 일 실시예에서 동일한 값에 머무르지 말라고) 통지할 수 있다. 제어 프레임에서 에러가 검출되면, 단순하게 그것들은 버려질 수 있다. 따라서, 실제로 프리즈되지 않더라도, 디바이스(12A)에게 Rx Ack 표시자는 프리즈된 것으로 보일 수 있다.
따라서, 이러한 실시예에서, 디바이스(12A)가 에러 상태를 잘못 검출하지 않도록, 링크 제어 유닛(345)은, 라운드 트립 지연에 대해 설명하면서, 송신된 데이터 프레임의 수 및 제어 프레임의 수를 추적할 수 있다. 일 실시예에서, 수정된 Ack 값을 생성하기 위해, 링크 제어 유닛(345)은, 트랜잭션 전송 카운터 및 수신된 Rx Ack 표시자 사이에 (링크 초기화에서의) 라운드 트립 지연과 매치되는, 단순 고정 길이 지연 FIFO(미도시)를 구현할 수 있다. 다른 실시예에서, 링크 제어 유닛(345)은, 얼마나 많은 프레임이 디바이스 12A와 12B 사이에서 전송되는지를 추적하여 수정된 Ack 값을 생성하기 위한 카운터 및 로직을 구현할 수 있다.
일 실시예에 있어서, 링크 제어 유닛(345)은 이전 Ack 표시자 저장소(325)에 저장하기 위해 에러 핸들링 유닛(335)으로 정정된 Ack 값을 제공할 수 있다. 일 실시예에 있어서, 에러 핸들링 유닛(335)은 이 값을 이용하여 이전 Ack 표시자 저장소(325)에 저장된 값을 변경하거나 또는 대안적으로 저장소(325)의 값 대신에 이 정정된 Ack 값을 이용할 수 있다.
에러가 검출되는 경우, 에러 핸들링 유닛(335)은 링크 제어 유닛(345)에 통지한다. 일 실시예에 있어서, 링크 제어 유닛(345)은, 예를 들어 리플레이 프레임들이 송신될 것임을 통신 인터페이스(12B)의 수신기 섹션에 나타내기 위해서 그리고 수신기 동작들을 언프리즈(unfreeze)하기 위해서 하나 이상의 제어 프레임들을 송신함으로써 리플레이 동작들을 개시할 수 있다. 일 실시예에 있어서, 링크 제어 유닛(345)은, DLL 표시(203)가 프레임이 제어 프레임임을 나타내게(예를 들어, DLL 비트가 설정되게) 하며 프레임의 페이로드 필드(201)에서의 송신을 위해 사전 결정된 제어 정보를 제공하게 할 수 있다. 이러한 사전 결정된 정보는 예를 들어 다음의 프레임들이 리플레이 데이터 프레임들임을 나타내는 제어 워드일 수 있다. 리플레이 큐(310)에서의 트랜잭션들은 도 2의 프레임 포맷으로 재포맷팅되고, CRC가 포맷팅된 프레임에 첨부되어, 프레임이 송신될 수 있다. 이에 응답하여, 수신기 유닛은 Rx Ack 표시자 값을 초기화 값으로 재설정하거나 재초기화할 수 있다.
그런 다음, 링크 제어 유닛(345)은 리플레이 큐(310)에서의 대응하는 트랜잭션들이 재송신되게 할 수 있다. 일 실시예에 있어서, 리플레이 큐(310)는 리플레이 중에 재송신될 다음의 트랜잭션을 포인팅하는 송신 포인터 및 새로운 트랜잭션으로 기록될 다음의 위치를 포인팅하는 기록 포인터를 이용할 수 있다. 리플레이 큐는 Rx Ack 루프 시간을 통하여 디바이스들 사이의 왕복 지연을 수용할 정도로 클 수 있다. 새로운 트랜잭션들이 도달하며 송신됨에 따라, 리플레이 큐에서의 아이템들이 겹쳐쓰기될 수 있는데, 그 이유는 정의에 의하면 이들은 성공적으로 송신된 것으로 가정되었기 때문이다. 에러가 검출되는 경우, 프리즈된 Rx Ack 카운트 값이 이용되어, Tx 포인터를 Rx 카운트 값에 1을 더한 것으로 재설정할 수 있고, 그 위치로부터 리플레이가 시작될 수 있다.
리플레이 큐를 이용하지 않는 실시예들에 있어서, 링크 제어 유닛(345)은, DLL 표시(203)가 프레임이 제어 프레임임을 나타내게(예를 들어, DLL 표시가 설정되게) 하며 프레임의 페이로드 필드(201)에서의 송신을 위해 사전 결정된 제어 정보를 제공하게 할 수 있다. 이러한 사전 결정된 정보는 예를 들어 통신 인터페이스(12B)의 수신기 유닛을 언프리즈하고/하거나 재초기화하는 "재개" 제어 워드일 수 있다. 또한, 제어 정보는 예를 들어 디바이스 상태 조회, 유휴 또는 일시정지 메시지와 같은 데이터 링크 메시지일 수도 있다.
도 4a에는, 도 1 및 도 3에 도시된 통신 인터페이스의 수신기 유닛(302)의 일 실시예의 동작을 설명하는 흐름도가 도시되어 있다. 도 1 내지 도 4를 종합하여 참조하며, 일 실시예에서 도 4의 블록(401)에서 시작하면, Rx 직/병렬화(330)가 각각의 프레임을 수신함에 따라, Rx Ack 표시자 값이 에러 핸들링 유닛(335)으로 포워딩된다. Rx Ack가 멀티 비트 카운트 값인 실시예들에 있어서, 에러 핸들링 유닛(335)은, 예를 들어 시프트 레지스터를 이용하여 새로운 Rx Ack 표시자 값인 멀티 비트 카운트 값을 형성하기 위해서 각각의 Rx Ack 값을 저장할 수 있다. 그런 다음, 에러 핸들링 유닛(335)은 이전 Rx Ack 표시자 저장소(325)에 저장된 카운트 값과 새로운 Rx Ack 표시자 값을 비교할 수 있다(블록(403)). Rx Ack 표시자가 매번 토글링되는 싱글 비트인 실시예들에 있어서, 에러 핸들링 유닛(335)은 이전 Rx Ack 표시자와 각각의 싱글 비트를 비교할 수 있다. 비교 중에 값이 동일하지 않은 경우에는, 동작은 블록(401)의 설명과 관련하여 전술한 바와 같이 진행된다.
새로운 Rx Ack 표시자 값이 이전 Rx Ack 표시자와 동일한 경우에는(블록(405)), 에러 핸들링 유닛(335)은 에러 핸들링을 개시한다(블록(407)). 예를 들어, 전술한 바와 같이, 에러 핸들링 유닛(335)은, 에러가 존재함을 데이터 링크 제어 유닛(345)에 통지하여, 리플레이 동작들을 개시하거나 재개 동작을 발행할 수 있다. 일 실시예에 있어서, 에러 핸들링 유닛(335)는 업스트림 디바이스 로직에 에러를 통지할 수 있어, 디바이스 로직이 손실된 트랜잭션들에 대하여 적절한 결정을 할 수 있게 된다.
도 4b에 도시된 흐름도는 도 1 및 도 3에 도시된 통신 인터페이스의 수신기 유닛(302)의 다른 실시예의 동작을 설명한다. 도 1 내지 도 3을 총체적으로 참조하면서, 일 실시예의 도 4b의 블록(411)에서 시작하면, Rx 직/병렬화(330)가 각각의 프레임을 수신함에 따라, Rx Ack 표시자 값은 에러 핸들링 유닛(335)으로 포워딩된다. 그 후, 에러 핸들링 유닛(335)은 새로운 Rx Ack 표시자 값을 이전 Rx Ack 표시자 저장소(325)에 저장된 값과 비교할 수 있다(블록(413)). 비교 기간 동안에 값이 동일하면, 동작은 블록(411)의 설명과 결합하여 위에서 설명된 바와 같이 진행된다.
새로운 Rx Ack 표시자 값이 이전 Rx Ack 표시자 값과 상이한 경우, 또는 새로운 Rx Ack 표시자 값이 미리 정해진 에러 값으로 설정되는 경우(블록(415)), 에러 핸들링 유닛(335)은 에러 핸들링을 개시한다(블록(417)). 예를 들어, 전술한 바와 같이, 에러 핸들링 유닛(335)은 데이터 링크 제어 유닛(345)에게 에러가 있다는 것을 통지하여 리플레이 동작들을 개시하거나 재개 동작을 발행하게 할 수 있다. 일 실시예에서, 에러 핸들링 유닛(335)은 업스트림 디바이스 로직에게 에러를 통지하여, 디바이스 로직이 손실된 트랜잭션에 대해 적절한 결정들을 할 수 있게 한다.
도 5에, 도 1 및 도 3에 도시된 통신 인터페이스의 수신기 유닛의 일시예의 동작을 설명하는 흐름도가 도시되어 있다. 도 1 내지 도 3 및 도 5를 총체적으로 참조하면서, 도 5의 블록(501)에서 시작하면, Rx 직/병렬화(350)는 통신 경로(예를 들어, 14A)를 통해 프레임을 수신한다. CRC 에러 체크 유닛(355)은 에러들에 대한 프레임을 체크할 수 있다(블록(503)). 일 실시예에서, CRC 에러 체크 유닛(355)은 수신된 프레임으로부터 CRC를 생성하고, 새로운 CRC를 프레임에서 수신된 CRC와 비교한다. 프레임이 에러를 갖지 않고(블록(505)), 수신기 Ack 상태가 프리즈되지 않으면(블록(507)), 추가의 처리를 위하여 프레임이 Rx 타겟 트랜잭터 큐(365)로 포워딩된다(블록(509)).
또한, CRC 에러 체크 유닛(355)은 Rx Ack 발생기 유닛(360)에게 Rx Ack 표시자를 업데이트하거나 변경할 것을 통지할 수 있다(블록(511)). 일 실시예에서, Rx Ack 발생기 유닛(360)은 초기화 이벤트(예를 들어, 통신 링크(16)가 초기화되거나 재초기화된 마지막 시간) 이후 수신된 에러 없는 프레임들의 수를 나타내는 실행 중인 멀티 비트 카운트 값(즉, Rx Ack 표시자)을 유지 및 증분시킬 수 있다. 다른 실시예에서, Rx Ack 발생기 유닛(360)은 1비트 Rx Ack 표시자 값을 간단히 토글링할 수 있다. Rx Ack 표시자는 통신 경로(14B) 상에서의 송신을 위해 Tx 직/병렬화(370)로 포워딩된다. Rx Ack 표시자로서 멀티 비트 카운트 값을 사용하는 실시예들에서는, Tx 직/병렬화(370)가 전술한 바와 같이 별개의 프레임에서 각각의 비트를 송신할 수 있지만(블록(513)), 싱글 비트 실시예들에서는, Tx 직/병렬화(37)가 멀티 비트 Rx Ack 값을 송신할 수 있다.
블록(505)을 다시 참조하여, 만약 에러가 있으면, CRC 에러 체크 유닛(355)은 Rx Ack 발생기 유닛(360) 및 Rx 직/병렬화(350)에게 에러를 통지한다. Rx Ack 발생기 유닛(360)은 Ack 상태 및 Rx Ack 표시자 값을 프리즈할 수 있다(블록(515)). 프리즈된 Rx Ack 표시자는 통신 경로(14B) 상에서의 송신을 위해 Tx 직/병렬화(370)로 포워딩될 수 있다. Rx 직/병렬화(350)는 현재 프레임을 폐기하고, Rx 타겟 트랜잭터 큐(365)로 임의의 후속 프레임들을 포워딩하는 것을 중단하고(블록(517)), 다른 디바이스가 전술한 바와 같이 통신 링크(16)를 리플레이하거나 재초기화하는 것을 시작할 때까지 계속해서 프리즈된 Rx Ack 표시자 값을 전송할 수 있다.
따라서, 블록(507)을 다시 참조하여, 수신기가 프레임을 수신하고, Ack 상태가 프리즈되고, Rx 직/병렬화(350)가 프레임이 제어 프레임이 아닌 것으로 결정하면(블록(519)), Rx 직/병렬화(350)가 프레임을 드롭한다(블록(521)). 그러나, 프레임이 제어 프레임(예를 들어, 페이로드에 적절한 링크 제어 정보를 포함하는 프레임)이면(블록(519)), Rx 직/병렬화(350)는 Ack 상태를 클리어할 수 있고, Rx Ack 표시자 값을 재설정할 수 있다(블록(523)). 전술한 바와 같이, 제어 프레임은 리플레이 데이터 프레임들이 뒤따르는 것 또는 표준 데이터 프레임들의 수신을 재개하는 것을 나타낼 수 있다. 마찬가지로, 다른 실시예에서, 모든 제어 프레임들은 Ack 상태가 프리즈되었더라도, 에러가 없으면, 처리될 수 있다.
단, 전술한 바와 같이, 다른 실시예에서, Rx Ack 표시자 값은 일정하게 유지되고 수신된 프레임들에서 어떠한 에러도 검출되지 않은 값(예를 들어, 싱글 비트 값)일 수 있음에 유의하도록 한다. 이 값은 에러가 없는 상태를 표시하도록 반복적으로 보내진다. 수신된 프레임 내의 에러를 검출하는데 있어서, Rx Ack 발생기 유닛(360)은 (예를 들어, 미리 결정된 에러 값으로) 값을 변경한다. 이들의 어떤 대안적인 실시예들에서, Ack 상태는 블럭(625) 내의 에러를 검출하는데 있어서 프리즈될 수 있고, Ack 값을 프리즈하는 것 대신에, Rx Ack 발생기 유닛(360)은 Ack 값을 (예를 들어, 미리 결정된 에러 값으로) 변경할 수 있으며, 이후에, 이 값은 블럭(617)에서 전송된다. 유사하게, 블럭(615) 내의 Ack 값을 업데이트하는 것 대신에, Rx Ack 값은 동일하게 유지된다.
도 6에서, 도 1 및 도 3에 도시된 하나의 통신 인터페이스의 송신 유닛의 실시예 및 제 2 통신 인터페이스의 수신기 유닛의 실시예의 동작을 설명하는 순서도가 도시된다. 도 1 내지 도3, 및 도 6, 및 일 실시예의 도 6의 블럭 601 내의 시작을 총괄적으로 참조하면, 디바이스(1) 내의 업스트림 로직은 Tx 요청 트랜잭터 큐(305)에 트랜잭션들을 저장할 수 있다. 디바이스(1)의 송신기가 새로운 트랜잭션에 대해 준비됨에 따라, Tx 요청 트랜잭터 큐(305)(블럭 601)가 트랜잭션을 요청한다. CRC는 CRC 발생기 유닛(320)에 의해 연산되고, 트랜잭션 프레임은 프레임에 첨부되는 CRC와 함께 포맷된다(블럭 603). 포맷된 프레임은 Tx 큐(317) 내에 저장된다(블럭 605). 프레임은 송신 큐로부터 통신 링크(16)의 하나 이상의 통신 경로(14)를 통해 송신된다(블럭 607).
Rx 직/병렬화(350)는 통신 경로(예를 들어, 14A)를 통해 프레임을 수신한다(블럭 609). CRC 에러 체크 유닛(355)은 에러에 대해 프레임을 체크한다. 프레임이 에러를 가지지 않고(블럭 611), 수신기 Ack 상태가 프리즈되지 않은 경우(block 613), 프레임은 수용되고, CRC 에러 체크 유닛(355)은 위에서 설명된 것과 같이 Rx Ack 표시자 값을 업데이트 하도록 Rx Ack 발생기 유닛(360)에 통지한다(블럭615). 일 실시예에서, 마지막 통신 링크(16)가 초기화 또는 재초기화 되었기 때문에, Rx Ack 발생기 유닛(360)은 수신된 에러가 없는 프레임의 수를 나타내는 러닝 멀티 비트 카운트 값(즉, Rx Ack 표시자 값)을 유지하고 증가시킬 수 있다. 다른 실시예에서, Rx Ack 표시자 값은 에러가 없는 프레임이 수신될 때마다 토글될 수 있는 싱글 비트 값이다. 업데이트된/토글된 Rx Ack 표시자 값은 송신을 위해 통신경로(14B) 상에서 Tx 직/병렬화(370)로 포워딩된다. Tx 직/병렬화(370)는 위에서 설명한 것처럼 하나 이상의 프레임들을 이용하여 Rx Ack 값을 송신할 수 있다(블럭 617).
Rx 직/병렬화(330)는 Rx Ack 값을 포함하는 프레임을 수신한다(블럭 619). Rx Ack 값은 에러 핸들링 유닛(335)으로 포워딩된다. 에러 핸들링 유닛(335)은 이후에 새로운 Rx Ack 값과 이전의 Rx Ack 표시자 저장소(325)에 저장된 값을 비교할 수 있다. 만약, 비교 도중에 Rx Ack 값이 동일하지 않다면(블럭621), 동작은 위에서 설명된 것과 같이 블럭들(601 및 619)의 설명과 결합하여 진행된다.
그러나, 만약, 새로운 Rx Ack 값이 이전의 Rx Ack 값과 동일한 경우(블럭621), 에러 핸들링 유닛(335)은 에러 핸들링을 시작한다(블럭 623). 예를 들어, 위에서 설명된 것과 같이, 에러 핸들링 유닛(335)은 에러가 있다는 것과 리플레이 동작을 시작하거나 재개동작을 발행하도록 데이터 링크 컨트롤 유닛(345)에 통지할 수 있다.
블럭(611)을 다시 참조하면, 만약, CRC 에러 체크가 수신된 프레임 내에 에러가 있다고 결정한 경우, CRC 에러 체크 유닛(355)은 Rx Ack 발생기 유닛(360)과 Rx 직/병렬화(350)에 그 에러를 통지한다. Rx Ack 발생기 유닛(360)은 Ack 상태와 Rx Ack 표시자 값을 프리즈할 수 있다(블럭 625). 프리즈된 Rx Ack 표시자 값은 Tx 직/병렬화(370)에 포워딩될 수 있고, 통신 경로(14B) 상에서 송신될 수 있다(블럭 617). 위에서 설명된 것과 같이, 동작은 블럭(619)의 설명과 결합하여 진행된다.
블럭(613)을 다시 참조하면, 만약, 수신기가 프레임을 수신하고, Ack 상태가 프리즈되는 경우, Rx 직/병렬화(350)가 프레임이 제어 프레임이 아니라고 결정한다면(블럭 627), Rx 직/병렬화(350)는 프레임을 드롭시킨다(블럭 629). 그러나, 만약 프레임이 제어 프레임이라면(블럭 627), Rx 직/병렬화(350)는 Ack 상태를 클리어하고, Rx Ack 표시자 값을 리셋(즉, 초기화)한다(블럭 631). 동작은 블록(617)의 설명과 관련하여 상술한 바와 같이 진행된다.
위에서 설명한 바와 같이, 대안적인 실시예에서는, Rx Ack 표시자 값이, 수신된 프레임 내에서 에러가 검출되지 않은 동안에는 일정하게 남아있는 값 (예컨대, 싱글 비트 값)일 수 있다. 이 값은 이 에러 없는 상태를 나타내기 위해 반복적으로 전송된다. 수신된 프레임 내에서 에러가 검출되면, Rx Ack 발생기(360)는 값을 (예컨대, 미리 결정된 에러 값)으로 변경한다. 이러한 특정의 대안적인 실시예들에서는, 블록(625)에서 에러를 검출할 때 Ack 상태가 프리즈될 수 있고, Ack 값을 프리즈하는 대신에, Rx Ack 발생기(360)는 Ack 값을 (예컨대, 미리 결정된 에러 값)으로 변경하여, 변경된 값이 블록(617)으로 전송될 수 있다. 마찬가지로, 블록(615)에서 Ack 값을 업데이트하는 대신에, Rx Ack 값이 동일한 상태로 남아있을 수 있다.
또한, 동작 흐름이 특정한 순서로 설명되고 도시되더라도, 다른 실시예들에서는, 도 4a 내지 도 6의 다양한 블록들 내에 도시된 동작들이, 원하는 바에 따라, 서로 다른 순서로 수행될 수 있다는 점을 이해해야 한다.
위의 많은 실시예들에서는, 에러가 빈번하지 않고, 통신 링크 레이턴시가 낮을 것으로 상정한다. 이에 따라서, 위에서 설명한 적어도 일부의 실시예들은, 에러 없는 수신을 정확하게 추적하고 낮은 대역폭 링크에서 덜 빈번하게 진행 상황을 응답확인할 수 있다. 에러가 있는 프레임이 수신되면, 응답확인 채널은, 에러를 갖는 프레임의 재전송에 의해 에러가 클리어되거나 시스템 에러가 상술한 바와 같이 클리어될 때까지, 마지막의 알려진 양호한 프레임의 식별자를 계속해서 전송함으로써 실패 지점을 정확하게 식별할 수 있다.
따라서, 위의 다양한 실시예들은, 통신 링크가 프레임 시간에 대한 더 긴 응답 시간의 댓가로, 정상 동작 동안 가장 낮은 오버헤드를 갖도록 최적화시킬 수 있다. 또한, 일부실시예들에 도시된 재전송 큐가, 스토어-어사이드 버퍼(store-aside buffer)일 수 있어서, 심각한 레이턴시 경로로 되지 않는다. 또한, 수신측에서 임시 보류 큐(temporary hold queue)를 필요로 하지 않아, 복잡성과 시스템 레이턴시를 또한 저감시킬수 있다.
위의 실시예들을 직렬 통신 링크 측면에서 설명하였지만, 다른 실시예들에서는, 병렬 링크도 사용될 수 있음을 이해해야 한다.
위의 실시예들이 상당히 상세하게 설명되었지만, 상기한 개시 내용을 충분히 이해한다면 당업자에게는 많은 변화 및 변형이 명백하게 될 것이다. 이하의 특허 청구범위는 이러한 변화 및 변형을 모두 포함하는 것으로 해석되어야 한다.

Claims (27)

  1. 장치로서,
    제1 통신 경로를 통해 제2 장치의 송신기 유닛으로부터 데이터의 프레임들을 수신하도록 구성된 수신기 유닛;
    상기 제1 통신 경로를 통해 수신된 상기 데이터의 프레임들 내의 데이터 에러들을 검출하도록 구성된 에러 검출 유닛; 및
    상기 제1 통신 경로를 통해 상기 장치에 의해 수신된 프레임들이 에러가 없는지를 나타내는 응답확인 표시자를 유지하도록 구성된 응답확인 유닛 - 상기 에러 검출 유닛이 수신된 프레임 내의 데이터 에러를 검출하는 것에 응답하여, 상기 응답확인 유닛은 상기 응답확인 표시자의 값을 프리즈함으로써 상기 제1 통신 경로에 대한 에러 조건을 표시하도록 구성됨 -
    을 포함하고,
    상기 장치는, 상기 장치가 상기 제1 통신 경로를 통해 프레임들을 수신하고 있는 동안, 적어도 하나의 에러 없는 프레임이 상기 장치로부터 수신되었다는 것을 나타내는 적어도 하나의 값을 포함하는 상기 응답확인 표시자의 값들을 제2 통신 경로를 통해 상기 제2 장치에 연속적으로 전달하도록 구성되는 장치.
  2. 제1항에 있어서,
    데이터의 주어진 프레임은 상기 응답확인 표시자의 대응하는 값을 전달하기 위한 응답확인 필드를 포함하는 장치.
  3. 제2항에 있어서,
    상기 응답확인 표시자는, 초기화 이벤트 이후에 상기 장치에 의해 수신된 에러 없는 프레임들의 수를 나타내는 카운트 값을 포함하고, 상기 응답확인 표시자의 값을 프리즈하는 것은 적어도 두 개의 연속하는 동일한 카운트 값들이 상기 제2 장치에 전달되도록 하는 장치.
  4. 제3항에 있어서,
    상기 카운트 값은 멀티 비트 값이며, 상기 장치는 복수의 프레임을 사용하여 상기 멀티 비트 값을 상기 제2 장치에 전달하도록 구성된 장치.
  5. 제2항에 있어서,
    상기 응답확인 표시자는 싱글 비트를 포함하며, 상기 응답확인 유닛은 상기 에러 검출 유닛에 의해 데이터 에러가 검출되지 않은 각각의 수신된 프레임에 대하여 상기 응답확인 표시자의 상태를 토글하도록 구성되며, 상기 응답확인 표시자의 값을 프리즈하는 것은 상기 응답확인 표시자의 적어도 두 개의 연속하는 동일한 값들이 상기 제2 장치에 전달되도록 하는 장치.
  6. 제1항에 있어서,
    데이터의 주어진 프레임은 상기 주어진 프레임이 데이터를 전달하는지 아니면 상기 주어진 프레임이 상기 프레임의 페이로드 필드에 제어 정보를 전달하는지를 표시하는 제어 표시자를 전달하는 데이터 링크 필드를 포함하는 장치.
  7. 제1항에 있어서,
    데이터의 주어진 프레임은 상기 주어진 프레임이 데이터를 전달하는지 아니면 상기 주어진 프레임이 상기 프레임의 페이로드 필드에 제어 정보를 전달하는지를 표시하는 제어 표시자를 전달하는 데이터 링크 필드를 포함하며, 상기 데이터 링크 표시자에 기초하여 수신된 데이터의 프레임이 제어 프레임인 것을 결정하는 것에 응답하여, 상기 응답확인 유닛은 상기 응답확인 표시자의 값을 유지할 때 상기 제어 프레임을 무시하도록 구성된 장치.
  8. 장치로서,
    데이터의 프레임들을 제1 통신 경로를 통하여 제2 장치의 수신기 유닛으로 송신하도록 구성된 송신기 유닛;
    상기 송신기 유닛이 상기 제1 직렬 통신 경로를 통하여 프레임들을 송신하고 있는 동안, 적어도 하나의 에러 없는 프레임이 상기 제2 장치의 수신기 유닛에 의해 수신되었다는 것을 나타내는 적어도 하나의 값을 포함하는 응답확인 표시자의 값들을 제2 통신 경로를 통하여 상기 제2 장치로부터 연속적으로 수신하도록 구성된 수신기 유닛 - 상기 응답확인 표시자의 값들은 에러 없는 프레임들이 상기 제1 통신 경로를 통하여 상기 제2 장치에 의해 수신되었는지를 나타냄 - ; 및
    상기 장치의 상기 수신기 유닛이 상기 제2 장치로부터 상기 응답확인 표시자의 프리즈된 값을 수신하였다는 것을 검출한 것에 응답하여 에러 조건이 존재하는 것을 결정하도록 구성된 에러 핸들링 유닛
    을 포함하는 장치.
  9. 제8항에 있어서,
    데이터의 주어진 프레임은 상기 응답확인 표시자의 대응하는 값을 전달하는 응답확인 필드, 및 상기 주어진 프레임이 데이터를 전달하는지 아니면 상기 주어진 프레임이 제어 정보를 전달하는지를 표시하는 제어 표시자를 전달하는 데이터 링크 필드를 포함하는 장치.
  10. 제8항에 있어서,
    상기 에러 핸들링 유닛은 상기 응답확인 표시자의 수신된 값들을 상기 응답확인 표시자의 이전에 수신된 값들과 비교하여 상기 에러 조건이 존재하는지를 결정하도록 더 구성되는 장치.
  11. 제10항에 있어서,
    상기 에러 핸들링 유닛은 상기 응답확인 표시자의 적어도 두 개의 연속하는 동일한 값들을 검출한 것에 응답하여 에러 조건이 존재하는 것을 결정하도록 더 구성되는 장치.
  12. 제9항에 있어서,
    상기 에러 핸들링 유닛에 결합되고 제어 프레임의 페이로드 필드에서 특정한 인코딩을 가지는 제어 프레임이 상기 제2 장치로 보내지게 하도록 구성되는 링크 제어 유닛을 더 포함하며, 상기 제어 프레임은 상기 프레임이 제어 프레임인 것을 나타내는 데이터 링크 표시자를 포함하며, 상기 특정한 인코딩은 상기 응답확인 표시자의 프리즈된 값이 상기 제2 장치에서 재초기화되게 하도록 구성되는 장치.
  13. 제12항에 있어서,
    상기 링크 제어 유닛은 상기 제2 장치에 보내진 제어 프레임의 수보다 적은 데이터 프레임의 수에 대응하는 트랜잭션 프레임 카운트 값을 유지하도록 더 구성되고, 상기 에러 핸들링 유닛은 상기 응답확인 표시자의 수신된 값들을 상기 트랜잭션 프레임 카운트 값과 비교하여 상기 에러 조건이 존재하는지를 결정하도록 더 구성되는 장치.
  14. 시스템으로서,
    제1 디바이스; 및
    제1 통신 경로 및 제2 통신 경로를 통해 상기 제1 디바이스에 결합된 제2 디바이스
    를 포함하고,
    상기 제1 디바이스는 상기 제1 통신 경로를 통해 상기 제2 디바이스로부터 데이터의 프레임들을 수신하고, 상기 데이터의 프레임들 내의 에러들을 검출하도록 구성되며,
    상기 제1 디바이스는,
    에러 없는 프레임들이 상기 제1 통신 경로를 통해 수신되는지를 나타내는 응답확인 표시자를 유지하고,
    수신된 프레임 내의 데이터 에러를 검출하는 것에 응답하여 상기 응답확인 표시자의 값을 프리즈하고,
    상기 제1 디바이스가 상기 제1 통신 경로를 통해 프레임들을 수신하고 있는 동안, 적어도 하나의 에러 없는 프레임이 수신되었음을 나타내는 적어도 하나의 값을 포함하는 상기 응답확인 표시자의 값들을 상기 제2 통신 경로를 통해 상기 제2 디바이스에 연속적으로 전달하도록 더 구성되고,
    상기 제2 디바이스는 상기 제1 디바이스로부터 상기 응답확인 표시자의 값들을 수신하고, 상기 응답확인 표시자의 프리즈된 값을 수신하는 것에 응답하여 에러 조건이 존재하는 것을 결정하도록 구성되는 시스템.
  15. 제14항에 있어서,
    데이터의 주어진 프레임은 상기 응답확인 표시자의 대응하는 값을 전달하기 위한 응답확인 필드, 및 상기 데이터의 주어진 프레임이 데이터를 전달하는지 아니면 상기 주어진 프레임이 제어 정보를 전달하는지를 나타내는 제어 표시자를 전달하기 위한 데이터 링크 필드를 포함하는 시스템.
  16. 제15항에 있어서,
    상기 응답확인 표시자는, 초기화 이벤트 이후에 상기 제1 디바이스에 의해 수신된 에러 없는 프레임들의 수를 나타내는 카운트 값을 포함하고, 상기 응답확인 표시자의 프리즈된 값은 두개의 연속하는 동일한 카운트 값들에 대응하는 시스템.
  17. 제16항에 있어서,
    상기 카운트 값은 멀티 비트 값이며, 상기 제1 디바이스는 상기 멀티 비트 값을 복수의 프레임을 이용하여 상기 제2 디바이스에 전달하도록 구성되는 시스템.
  18. 제15항에 있어서,
    상기 응답확인 표시자의 값은, 싱글 비트를 포함하고, 상기 제1 디바이스는 에러 검출 유닛에 의해 에러가 검출되지 않은 각각의 수신된 프레임에 대하여 상기 응답확인 표시자의 값을 토글하도록 구성되고, 상기 프리즈된 응답확인 표시자는 상기 응답확인 표시자의 두개의 연속하는 동일한 값들에 대응하는 시스템.
  19. 제15항에 있어서,
    상기 제2 디바이스는 상기 응답확인 표시자의 프리즈된 값을 수신하는 것에 응답하여 상기 데이터의 프레임의 페이로드 필드에서 특정한 인코딩을 갖는 제어 프레임을 상기 제1 디바이스로 송신하도록 더 구성되고, 상기 제어 프레임은 상기 프레임이 제어 프레임인 것을 나타내는 데이터 링크 표시자를 포함하고, 상기 특정한 인코딩은 상기 제1 디바이스가 상기 응답확인 표시자의 프리즈된 값을 재초기화하게 하도록 구성되는 시스템.
  20. 제19항에 있어서,
    상기 제2 디바이스는, 프리즈된 응답확인 표시자를 수신하는 것에 응답하여 상기 페이로드 필드에서 특정한 인코딩을 갖는 제어 프레임을 송신한 후에, 하나 이상의 이전에 송신한 데이터의 프레임들을 상기 제1 디바이스에 재송신하도록 더 구성되는 시스템.
  21. 제14항에 있어서,
    상기 제2 디바이스는 상기 응답확인 표시자의 수신된 값들을 상기 응답확인 표시자의 이전에 수신된 값들과 비교하여 상기 에러 조건이 존재하는지를 결정하도록 더 구성되는 시스템.
  22. 제21항에 있어서,
    상기 제1 디바이스는 메모리 컨트롤러를 포함하고 상기 제2 디바이스는 메모리 디바이스를 포함하는 시스템.
  23. 제14항에 있어서,
    상기 제1 통신 경로 및 상기 제2 통신 경로는 직렬 통신 경로들인 시스템.
  24. 장치로서,
    제1 통신 경로를 통해 제2 장치의 송신기 유닛으로부터 데이터의 프레임들을 수신하도록 구성되는 수신기 유닛;
    상기 제1 통신 경로를 통해 수신된 상기 데이터의 프레임들 내의 데이터 에러들을 검출하도록 구성되는 에러 검출 유닛; 및
    상기 제1 통신 경로를 통해 상기 장치에 의해 수신된 프레임들이 에러가 없는지를 나타내는 응답확인 표시자를 유지하도록 구성되는 응답확인 유닛 - 상기 에러 검출 유닛이 수신된 프레임내의 데이터 에러를 검출하는 것에 응답하여, 상기 응답확인 유닛은 상기 응답확인 표시자의 현재 값을 미리 결정된 에러 값으로 설정함으로써 상기 제1 통신 경로에 대한 에러 조건을 표시하도록 구성됨 -
    을 포함하며,
    상기 장치는, 상기 장치가 상기 제1 통신 경로를 통해 프레임들을 수신하고 있는 동안, 적어도 하나의 에러 없는 프레임이 수신되었다는 것을 표시하는 적어도 하나의 값을 포함하는 상기 응답확인 표시자의 값들을 제2 통신 경로를 통해 상기 제2 장치에 연속적으로 전달하도록 구성되는 장치.
  25. 제24항에 있어서,
    상기 응답확인 표시자는 싱글 비트를 포함하며, 상기 미리 결정된 에러 값은 상기 응답확인 표시자의 마지막 값의 반대 값을 포함하는 장치.
  26. 장치로서,
    제1 통신 경로를 통해 데이터의 프레임들을 제2 장치의 수신기 유닛에 송신하도록 구성되는 송신기 유닛;
    상기 송신기 유닛이 상기 제1 통신 경로를 통해 프레임들을 송신하고 있는 동안, 적어도 하나의 에러 없는 프레임이 제2 장치의 수신기 유닛에 의해 수신되었다는 것을 표시하는 적어도 하나의 값을 포함하는 응답확인 표시자의 값들을 상기 제2 장치로부터 제2 통신 경로를 통해 연속으로 수신하도록 구성되는 수신기 유닛 - 상기 응답확인 표시자의 값들은 상기 제1 통신 경로를 통해 상기 제2 장치에 의해 에러 없는 프레임들이 수신되었는지를 나타냄 -; 및
    상기 장치의 수신기 유닛이, 상기 미리 결정된 에러 값으로 설정된, 응답확인 표시자의 현재 값을 상기 제2 장치로부터 수신하였다는 것을 검출하는 것에 응답하여 에러 조건이 존재한다는 것을 결정하도록 구성되는 에러 핸들링 유닛
    을 포함하는 장치.
  27. 제26항에 있어서,
    상기 응답확인 표시자의 각각의 값은 싱글 비트를 포함하며, 상기 미리 결정된 에러 값은 상기 응답확인 표시자의 마지막 값의 반대 값을 포함하는 장치.
KR1020127023090A 2010-02-01 2011-01-27 통신 인터페이스 및 프로토콜 Expired - Fee Related KR101471733B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/697,763 2010-02-01
US12/697,763 US8370725B2 (en) 2010-02-01 2010-02-01 Communication interface and protocol
PCT/US2011/022705 WO2011094395A2 (en) 2010-02-01 2011-01-27 Communication interface and protocol

Publications (2)

Publication Number Publication Date
KR20130023199A true KR20130023199A (ko) 2013-03-07
KR101471733B1 KR101471733B1 (ko) 2014-12-12

Family

ID=44320111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127023090A Expired - Fee Related KR101471733B1 (ko) 2010-02-01 2011-01-27 통신 인터페이스 및 프로토콜

Country Status (6)

Country Link
US (1) US8370725B2 (ko)
EP (1) EP2532110B1 (ko)
KR (1) KR101471733B1 (ko)
CN (2) CN105071904A (ko)
TW (1) TWI442733B (ko)
WO (1) WO2011094395A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954803B2 (en) * 2010-02-23 2015-02-10 Mosys, Inc. Programmable test engine (PCDTE) for emerging memory technologies
US8539254B1 (en) * 2010-06-01 2013-09-17 Xilinx, Inc. Method and integrated circuit for protecting against differential power analysis attacks
US8988956B2 (en) 2012-09-18 2015-03-24 Mosys, Inc. Programmable memory built in self repair circuit
US9363621B2 (en) 2012-11-12 2016-06-07 Huawei Technologies Co., Ltd. System and method adopting a reliable stop-and-wait hybrid automatic repeat request protocol
WO2017027028A1 (en) * 2015-08-12 2017-02-16 Hewlett Packard Enterprise Development Lp Serdes link management
EP3378178B1 (en) * 2015-11-18 2020-07-22 Telefonaktiebolaget LM Ericsson (PUBL) Toggling based indicator of reception success
WO2019000190A1 (en) * 2017-06-26 2019-01-03 Nokia Technologies Oy CRC AND POLAR CODE TRANSMISSION SCHEME
CN108134655B (zh) * 2017-12-19 2021-01-19 深圳先进技术研究院 一种确定通信链路状态的方法及控制器
US11855655B2 (en) * 2021-09-28 2023-12-26 Texas Instruments Incorporated Serial communications module with CRC

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4422171A (en) * 1980-12-29 1983-12-20 Allied Corporation, Law Department Method and system for data communication
US6148422A (en) * 1997-10-07 2000-11-14 Nortel Networks Limited Telecommunication network utilizing an error control protocol
US6088337A (en) * 1997-10-20 2000-07-11 Motorola, Inc. Method access point device and peripheral for providing space diversity in a time division duplex wireless system
JPWO2006046586A1 (ja) * 2004-10-28 2008-05-22 松下電器産業株式会社 データ通信装置、データ受信装置、データ送信装置および再送制御方法
JP4703310B2 (ja) * 2005-08-04 2011-06-15 株式会社東芝 通信方法および通信システム
CN101278529B (zh) * 2005-10-03 2011-10-19 松下电器产业株式会社 通信装置
KR100750170B1 (ko) 2005-11-15 2007-08-21 삼성전자주식회사 통신 네트워크에서 데이터 프레임을 효율적으로 전송하는방법 및 장치
WO2008117164A2 (en) 2007-03-26 2008-10-02 Marvell World Trade Ltd. Encoding and decoding systems with header and data transmission success indication
KR100899823B1 (ko) 2007-05-10 2009-05-27 포스데이타 주식회사 무선 통신시스템의 arq 피드백 방법 및 장치
CN101359980B (zh) * 2008-09-05 2011-02-09 华为技术有限公司 Rlc数据块发送过程中的异常处理方法

Also Published As

Publication number Publication date
TW201141122A (en) 2011-11-16
EP2532110B1 (en) 2014-01-15
US20110191647A1 (en) 2011-08-04
CN105071904A (zh) 2015-11-18
WO2011094395A3 (en) 2011-11-17
WO2011094395A2 (en) 2011-08-04
US8370725B2 (en) 2013-02-05
KR101471733B1 (ko) 2014-12-12
TWI442733B (zh) 2014-06-21
CN103004124A (zh) 2013-03-27
CN103004124B (zh) 2017-03-01
EP2532110A4 (en) 2013-05-15
EP2532110A2 (en) 2012-12-12

Similar Documents

Publication Publication Date Title
KR101471733B1 (ko) 통신 인터페이스 및 프로토콜
US8332729B2 (en) System and method for automatic communication lane failover in a serial link
US7016304B2 (en) Link level retry scheme
US8576843B2 (en) Packet format for a distributed system
US9673934B2 (en) Error correction on demand
US20080148131A1 (en) Command Packet Packing to Mitigate CRC Overhead
WO2013111010A1 (en) Chip-to-chip communications
KR20130140018A (ko) 선택적인 바이트 동기화를 이용하는 고속 직렬 통신 인터페이스 통신 시스템에서의 전력 절감 모드 시스템 및 방법
CN106487673B (zh) 一种基于三模冗余的检错重传容错路由单元
JP2015027100A (ja) パケット通信の伝送制御方法及びパケット通信システム
US20070195699A1 (en) System and method for efficient network flow control
US9465690B2 (en) Cumulative error detection in data transmission
US8427951B2 (en) Method, system, and apparatus for reliable data packet recovery in a link layer of a data center ethernet network
US20120106344A1 (en) Data communication acknowledgement in a network
JP3996928B2 (ja) 破損データを処理する方法
JP2019176263A (ja) 送受信システム、データ受信装置、およびデータ受信方法
US9306769B2 (en) Cell-based link-level retry scheme
US8522104B2 (en) Smart aging retry buffer
EP4149032B1 (en) Selection of processing mode for receiver circuit
US20060059273A1 (en) Envelope packet architecture for broadband engine
US20100208581A1 (en) Data transfer system, data transmitting device, data receiving device and data transfer method
US7310762B2 (en) Detection of errors
US10021587B2 (en) Congestion control in a transport network
JP4749820B2 (ja) 誤りがない場合のレイテンシに影響を与えることなく誤り訂正機能を実装したインターコネクト通信
US20060140122A1 (en) Link retry per virtual channel

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20120903

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20140826

Comment text: Request for Examination of Application

PA0302 Request for accelerated examination

Patent event date: 20140826

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20140927

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20141204

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20141204

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20171127

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20171127

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20181122

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20181122

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20191126

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20191126

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20201124

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20211123

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20221123

Start annual number: 9

End annual number: 9

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20240915