KR20230129554A - 데이터 전송 방법, 장치, 디바이스, 시스템 및 컴퓨터판독 가능 저장 매체 - Google Patents

데이터 전송 방법, 장치, 디바이스, 시스템 및 컴퓨터판독 가능 저장 매체 Download PDF

Info

Publication number
KR20230129554A
KR20230129554A KR1020237027975A KR20237027975A KR20230129554A KR 20230129554 A KR20230129554 A KR 20230129554A KR 1020237027975 A KR1020237027975 A KR 1020237027975A KR 20237027975 A KR20237027975 A KR 20237027975A KR 20230129554 A KR20230129554 A KR 20230129554A
Authority
KR
South Korea
Prior art keywords
data
chip
code type
fec code
codeword
Prior art date
Application number
KR1020237027975A
Other languages
English (en)
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 KR20230129554A publication Critical patent/KR20230129554A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • 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/0097Relays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Dc Digital Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Studio Devices (AREA)

Abstract

본 출원은 데이터 전송 방법, 장치, 디바이스 및 시스템, 및 컴퓨터 판독 가능 저장 매체를 개시한다. 데이터 전송 방법은, 제1 칩이 제1 FEC 코드 타입을 사용하여 코딩하여 획득한 제1 데이터를 획득하고; 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하며; 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하여 제2 데이터를 획득하고; 제2 데이터를 전송한다. 제3 칩은 제2 데이터를 수신하고 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하여 디코딩된 데이터를 획득한다. 이 방법에 따르면 전송되는 데이터는 더 높은 코딩 이득을 가질 수 있으며, 비트 오류가 발생하기 쉬운 채널 상에서 데이터가 전송될 때 오류 수정이 비트 에러가 발생하는 데이터에 대해 효과적으로 오류 수정을 수행하여 데이터 전송 품질을 향상시킬 수 있다.

Description

데이터 전송 방법, 장치, 디바이스, 시스템 및 컴퓨터 판독 가능 저장 매체
이 출원은 2021년 1월 25일에 출원된 "코딩 및 디코딩 방법, 장치 및 시스템"이라는 제목의 중국 특허 출원 번호 202110099748.1에 대한 우선권을 주장하며, 이는 그 전체 내용이 참조로 여기에 포함된다. 본 출원은 또한 2021년 2월 10일에 출원된 "데이터 전송 방법, 장치, 디바이스, 시스템 및 판독 가능 저장 매체"라는 제목의 중국 특허 출원 번호 202110185631.5에 대한 우선권을 주장하며, 이는 그 전체 내용이 참조로 여기에 포함된다.
기술 분야
본 출원의 실시예들은 통신 기술 분야에 관한 것으로, 특히 데이터 전송 방법, 장치, 디바이스 및 시스템, 컴퓨터 판독 가능 저장 매체에 관한 것이다.
순방향 오류 수정(forward error correction, FEC)은 전송되는 데이터에 패리티 비트를 제공하여 채널에서 데이터 전송 속도와 전송 거리를 향상시키는 데이터 코딩 방법이다. 데이터 전송 프로세스에서, 송신단은 특정 FEC 코드 타입을 사용하여 원본 데이터를 코딩하고 코딩된 데이터를 수신단으로 보낸다. 수신단은 동일한 FEC 코드 타입을 사용하여 수신된 데이터를 디코딩하여 원본 데이터를 획득한다.
본 출원은 고속 및/또는 장거리 데이터 전송에 적응하도록 FEC 코드 타입을 향상시키기 위한 데이터 전송 방법, 장치, 디바이스 및 시스템, 컴퓨터 판독 가능 저장 매체를 제공한다.
제1 측면에 따르면, 데이터 전송 방법이 제공된다. 방법은, 다음을 포함한다: 제1 칩이 제1 FEC 코드 타입을 사용하여 코딩하여 획득된 제1 데이터를 획득하고; 상기 제1 칩의 기준 클록 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하며; 그런 다음 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하여 제2 데이터를 획득하고; 제2 데이터를 전송한다.
방법에서, 제1 칩의 기준 클럭 주파수와 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하고, 제1 FEC 코드 타입을 사용하여 코딩하여 획득된 제1 데이터를 제2 FEC 코드 타입을 사용하여 다시 코딩하여 연결 코딩(concatenated coding)에서 제2 데이터를 획득한다. 따라서, 제2 데이터는 더 높은 코딩 이득을 가지며, 비트 오류가 발생하기 쉬운 채널로 데이터를 전송할 경우 비트 오류가 발생하는 데이터에 대해 효과적으로 오류 수정을 수행하여 데이터 전송 품질을 향상시킬 수 있다. 또한, 제2 데이터는 제1 데이터에 기초하여 직접 코딩하여 얻은 데이터이므로 방법의 구현 프로세스가 간단하고 데이터 전송 효율이 향상된다.
가능한 구현에서, 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도, 제2 데이터의 코드워드 길이 및 제2 데이터의 코드워드의 정보 길이는 오버헤드 비례 관계를 충족한다. 제1 칩의 기준 클럭 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 단계는, 제1 칩의 기준 클럭 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도 및 오버헤드 비례 관계에 기초하여 제2 FEC 코드 타입을 결정하는 단계를 포함한다. 오버헤드 비례 관계에 기초하여 제2 FEC 코드 타입을 결정하고, 이로써 제2 FEC 코드 타입을 사용하여 코딩하여 획득되는 오버헤드를 확보할 수 있고, 데이터 전송 성능을 더욱 향상시킬 수 있다.
가능한 구현에서 오버헤드 비례 관계에는 다음이 포함된다:
n/k×v_1=p×f.
여기서, n은 제2 데이터의 코드워드 길이, k는 제2 데이터의 코드워드 내 정보 길이, v1은 제1 FEC 코드 타입에 대응하는 출력 속도, p는 조정 파라미터, f는 제1 칩의 기준 클럭 주파수이고, p는 양의 정수이다.
가능한 구현에서, 제2 데이터의 코드워드 길이는 제2 데이터가 분배되는 로직 채널의 수량과 정수배 관계에 있다. 제2 FEC 코드 타입을 결정할 때 정수배 관계를 고려하며, 따라서 결정된 제2 FEC 코드 타입이 전송 시나리오에 더 적합하고 데이터 전송 성능이 향상된다.
가능한 구현에서, 제1 칩이 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하여 제2 데이터를 획득하는 것은, 제1 칩이 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하고, 제1 칩이 상기 제2 FEC 코드 타입에 기초하여 상기 복수의 제1 서브데이터를 획득하여 복수의 제2 서브데이터를 획득하는 것을 포함한다. 제1 칩이 제2 데이터를 전송하는 것은, 제1 칩이 복수의 제2 서브데이터를 전송하는 것을 포함한다.
가능한 구현에서 제1 칩은 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하는 것은, 제1 칩이 물리적 코딩 부계층(PCS) 채널을 통해 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하는 것; 또는 제1 칩이 물리적 매체 부착 부계층(PMA)를 통해 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하는 것을 포함한다.
가능한 구현에서, 제1 칩이 제2 데이터를 전송하는 것은, 제1 칩이 제2 데이터를 분배하여 복수의 제3 서브데이터를 획득하고, 복수의 로직 채널을 통해 복수의 제3 서브데이터를 전송하는 것을 포함한다.
가능한 구현에서, 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하기 전에, 방법은 다음을 더 포함한다: 제1 칩은 제1 칩이 송신한 데이터를 수신하는 제3 칩과 자동 협상을 수행하고; 연결 코딩(concatenated coding)이 필요함을 나타내는 자동 협상 결과에 응답하여, 제1 칩은 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 단계를 수행한다. 자동 협상은 실제 시나리오 요구 사항에 보다 잘 적용가능하고, 더 적합한 연결 코딩을 수행할지 여부를 결정하는 데 사용된다.
가능한 구현에서, 제1 데이터는 제1 칩 내부의 데이터이거나, 제1 데이터는 제1 칩에 의해 수신되고 제2 칩에 의해 송신되는 데이터이다. 제1 데이터는 제1 칩 내부의 데이터일 수도 있고, 다른 칩이 전송한 수신 데이터일 수도 있기 때문에, 이 방법이 적용되는 데이터 전송 시나리오는 유동적이다.
제2 측면에 따르면, 데이터 전송 방법이 제공된다. 이 방법은 다음을 포함한다: 제3 칩은 제2 데이터를 수신하고, 여기서 제2 데이터는 제1 데이터를 제2 순방향 오류 수정(FEC) 코드 타입을 사용하여 코딩한 데이터이고, 제1 데이터는 제1 FEC 코드 타입을 사용하여 코딩한 데이터이다. 제3 칩은 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하여 디코딩된 데이터를 얻는다. 제2 데이터는 제1 데이터를 제2 FEC 코드 타입으로 코딩하여 얻은 것이고, 제1 데이터는 제1 FEC 코드 타입으로 코딩하여 얻은 것이다. 따라서, 제3 칩에 의해 수신된 제2 데이터는 더 높은 코딩 이득 및 더 높은 오류 수정 능력을 갖는다. 획득된 디코딩된 데이터는 제2 데이터를 디코딩하여 더 높은 정확도를 갖는다.
가능한 구현에서, 제3 칩이 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하는 것은, 제3 칩이 제2 FEC 코드 타입에 기초하여 제2 데이터에 대해 연판정 디코딩을 수행하는 것을 포함한다.
가능한 구현에서, 제3 칩이 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩한 후, 디코딩된 데이터를 획득하기 위해, 방법은: 제3 칩이 제3 FEC 코드 타입에 기초하여 디코딩된 데이터를 다시 코딩하고, 다시 코딩된 데이터를 전송하는 것을 더 포함한다. 복호화된 데이터를 제3 FEC 코드 타입에 따라 다시 코딩함으로써 다음 링크의 데이터 전송 품질을 보호할 수 있다.
가능한 구현에서, 제3 FEC 코드 타입은 제2 FEC 코드 타입이다.
제3 측면에 따르면, 데이터 전송 디바이스가 제공된다. 장치에는 다음이 포함된다:
제1 데이터를 획득하도록 구성된 획득 모듈 - 상기 제1 데이터는 제1 순방향 오류 수정(FEC) 코드 타입을 사용하여 코딩하여 획득한 데이터임 -;
제1 칩의 기준 클록 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하도록 구성된 결정 모듈;
제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하여 제2 데이터를 획득하도록 구성된 코딩 모듈; 및
제2 데이터를 전송하도록 구성된 전송 모듈.
가능한 구현에서, 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도, 제2 데이터의 코드워드 길이 및 제2 데이터의 코드워드의 정보 길이는 오버헤드 비례 관계를 충족한다. 결정 모듈은 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도 및 오버헤드 비례 관계에 기초하여 제2 FEC 코드 타입을 결정하도록 구성된다.
가능한 구현에서 오버헤드 비례 관계에는 다음이 포함된다:
.
여기서, n은 제2 데이터의 코드워드 길이, k는 제2 데이터의 코드워드 내 정보 길이, v1은 제1 FEC 코드 타입에 대응하는 출력 속도, p는 조정 파라미터, f는 제1 칩의 기준 클럭 주파수, p는 양의 정수이다.
가능한 구현에서, 제2 데이터의 코드워드 길이는 제2 데이터가 분배되는 로직 채널의 수량과 정수배 관계에 있다.
가능한 구현에서, 코딩 모듈은 상기 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하고, 상기 제2 FEC 코드 타입에 기초하여 상기 복수의 제1 서브데이터를 개별적으로 코딩하여 복수의 제2 서브데이터를 획득하도록 구성된다. 송신 모듈은 복수의 제2 서브데이터를 전송하도록 구성된다.
가능한 구현에서, 코딩 모듈은 물리적 코딩 부계층(PCS) 채널을 통해 제1 데이터를 분배하여 복수의 제1 서브데이터 조각을 획득하도록 구성되고; 또는 물리적 매체 부착 부계층(PMA)를 통해 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득할 수 있다.
가능한 구현에서, 전송 모듈은, 복수의 제3 서브데이터를 획득하기 위해 제2 데이터를 분배하고, 복수의 로직 채널을 통해 복수의 제3 서브데이터를 송신하도록 구성된다.
가능한 구현에서, 장치는 제1 칩에 의해 송신된 데이터를 수신하는 제3 칩과 자동 협상을 수행하도록 구성된 자동 협상 모듈을 더 포함하며, 연결 코딩이 필요함을 나타내는 자동 협상 결과에 응답하여, 결정 모듈은 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정한다.
가능한 구현에서, 제1 데이터는 제1 칩 내부의 데이터이거나, 제1 데이터는 제1 칩에 의해 수신되고 제2 칩에 의해 송신되는 데이터이다.
제4 측면에 따르면, 데이터 전송 장치가 제공된다. 장치는 다음을 포함한다:
제2 데이터를 수신하도록 구성된 수신 모듈 - 제2 데이터는 제2 순방향 오류 수정(FEC) 코드 타입을 사용하여 제1 데이터를 코딩하여 획득한 데이터이고, 상기 제1 데이터는 제1 FEC 코드 타입을 사용하여 코딩하여 획득한 데이터임 -; 및
디코딩된 데이터를 획득하기 위해 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하도록 구성된 디코딩 모듈.
가능한 구현에서, 디코딩 모듈은 디코딩된 데이터를 얻기 위해 제2 FEC 코드 타입에 기초하여 제2 데이터에 대해 연판정 디코딩을 수행하도록 구성된다.
가능한 구현에서, 장치는 제3 FEC 코드 타입에 기초하여 디코딩된 데이터를 다시 코딩하도록 구성된 코딩 모듈, 및 다시 코딩된 데이터를 전송하도록 구성된 전송 모듈을 포함한다.
가능한 구현에서, 제3 FEC 코드 타입은 제2 FEC 코드 타입이다.
제5 측면에 따르면, 데이터 전송 디바이스가 제공된다. 디바이스는 프로세서를 포함하고, 프로세서는 메모리에 결합되고, 메모리는 적어도 하나의 프로그램 명령어 또는 코드를 저장하며, 적어도 하나의 프로그램 명령어 또는 코드는 프로세서에 의해 로드 및 실행되어 디바이스가 제1 측면 또는 제2 측면에 따라 데이터 전송 방법을 구현하게 한다.
제6 측면에 따르면, 데이터 전송 시스템이 제공된다. 시스템은, 제1 측면 또는 제1 측면의 가능한 구현 중 어느 하나에 따른 방법을 수행하도록 구성된 제1 데이터 전송 디바이스, 및 제2 측면 어느 하나 또는 제2 측면의 가능한 구현에 따른 방법을 수행하도록 구성된 제2 데이터 전송 디바이스를 포함한다.
제7 측면에 따르면, 컴퓨터 판독 가능 저장 매체가 제공된다. 컴퓨터 판독 가능 저장 매체는 적어도 하나의 프로그램 명령어 또는 코드를 저장하고, 프로그램 명령어 또는 코드가 프로세서에 의해 로딩되고 실행될 때, 컴퓨터가 인에이블되어 제1 측면 또는 제2 측면에 따른 데이터 전송 방법을 구현한다.
또 다른 통신 장치가 제공된다. 장치는 통신 인터페이스, 메모리 및 프로세서를 포함한다. 메모리와 프로세서는 내부 연결 경로를 사용하여 서로 통신한다. 메모리는 명령어를 저장하도록 구성된다. 프로세서는 데이터를 수신하도록 통신 인터페이스를 제어하고 데이터를 송신하도록 통신 인터페이스를 제어하기 위해 메모리에 저장된 명령어를 실행하도록 구성된다. 프로세서가 메모리에 저장된 명령어를 실행할 때, 프로세서가 인에이블되어 제1 측면 또는 제1 측면의 가능한 구현 중 임의의 하나의 방법을 수행하거나 제2 측면 또는 제2 측면의 가능한 구현 중 임의의 하나의 방법을 수행한다.
예시적인 실시예에서, 하나 이상의 프로세서가 있고, 하나 이상의 메모리가 있다.
예시적인 실시예에서, 메모리는 프로세서와 통합될 수 있거나, 메모리는 프로세서와 독립적으로 배치될 수 있다.
구체적인 구현 프로세스에서 메모리는 판독 전용 메모리(read-only memory, ROM)와 같은 비일시적(non-transitory) 메모리일 수 있다. 메모리와 프로세서는 하나의 칩으로 통합될 수도 있고, 서로 다른 칩에 별도로 배치될 수도 있다. 메모리의 타입과 메모리와 프로세서가 배치되는 방식은 본 출원의 이 실시예에서 제한되지 않는다.
컴퓨터 프로그램(제품)이 제공된다. 컴퓨터 프로그램(제품)은 컴퓨터 프로그램 코드를 포함한다. 컴퓨터 프로그램 코드가 컴퓨터에서 실행될 때 컴퓨터가 인에이블되어 전술한 측면에 따른 방법을 수행한다.
칩이 제공된다. 칩은 메모리로부터 메모리에 저장된 명령어를 호출하고 명령어를 실행하도록 구성된 프로세서를 포함하여 칩이 설치된 디바이스가 전술한 측면의 방법을 수행한다.
다른 칩이 제공된다. 칩에는 입력 인터페이스, 출력 인터페이스, 프로세서 및 메모리가 포함된다. 입력 인터페이스, 출력 인터페이스, 프로세서 및 메모리는 내부 연결 경로를 사용하여 서로 연결된다. 프로세서는 메모리에서 코드를 실행하도록 구성된다. 코드가 실행될 때, 프로세서는 전술한 측면의 방법을 수행하도록 구성된다.
디바이스가 제공되고, 이는 전술한 솔루션 중 어느 하나의 칩을 포함한다.
디바이스가 제공되고, 이는 전술한 솔루션 중 어느 하나의 제1 칩 및/또는 전술한 솔루션 중 어느 하나의 제3 칩을 포함한다.
전술한 실시예에서, 소프트 디코딩 동안, 먼저, 수신된 양자화된 연판정 정보에 기초하여 수신된 코드워드에서 각 비트의 신뢰도(신뢰성이라라고도 함, reliability)를 계산하여 신뢰 시퀀스를 획득하는 단계; 신뢰 시퀀스에서 M개의 가장 신뢰할 수 없는 비트 위치를 선택하고 M개의 가장 신뢰할 수 없는 비트 위치에서 연속적으로 0, 1, 2, ... 및 N(N ≤ M) 비트 위치의 모든 조합에 대해 비트 반전 수행을 시도하여 복수의 테스트 코드워드를 획득하는 단계; 각 테스트 코드워드에 대해 경판정 디코딩 오류 수정을 수행하는 단계; 그런 다음 신뢰 시퀀스와 모든 수정된 테스트 코드워드 사이의 유클리드 거리를 계산하는 단계; 및 가장 짧은 거리에 대응하는 수정 테스트 코드워드를 최종 수정 코드워드 출력으로 선택하는 단계를 포함한다. 테스트 코드워드에 수정 가능한 코드워드가 없으면 원래 수신된 코드워드에 대응하는 경판정 결과를 출력 코드워드로서 사용한다.
도 1은 본 출원의 실시예에 따른 데이터 전송 방법의 구현 시나리오의 개략도이다.
도 2는 본 출원의 실시예에 따른 데이터 전송 방법의 흐름도이다.
도 3은 본 출원의 실시예에 따라 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하는 개략도이다.
도 4는 본 출원의 실시예에 따른 제1 데이터의 분배를 나타내는 개략도이다.
도 5는 본 출원의 실시예에 따라 PCS 채널을 통해 제1 데이터의 분배를 나타내는 개략도이다.
도 6은 본 출원의 실시예에 따라 제2 데이터의 분배를 나타내는 개략도이다.
도 7은 본 출원의 실시예에 따라 제2 데이터의 분배를 나타내는 또 다른 개략도이다.
도 8은 본 출원의 실시예에 따른 데이터 전송 방법의 다른 구현 시나리오의 개략도이다.
도 9는 본 출원의 실시예에 따른 데이터 전송 디바이스의 구조의 개략도이다.
도 10은 본 출원의 실시예에 따른 다른 데이터 전송 디바이스의 구조의 개략도이다.
도 11은 본 출원의 실시예에 따른 데이터 전송 디바이스의 구조의 개략도이다.
본 출원의 구현 부분에서 사용한 용어는 단지 본 출원의 실시예를 설명하기 위해 사용된 것으로, 본 출원을 한정하려는 의도가 아니다. 다음은 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다.
통신 기술 분야에서 FEC를 사용한 데이터 코딩은 데이터 전송 프로세스에서 비트 오류율을 줄이고 데이터 전송 품질을 더욱 향상시키기 위한 중요한 기술적 수단이다. 링크 속도가 향상되고 채널이 더 어려운 시나리오에서는, 더 높은 코딩 이득을 가진 FEC가 필요할 수 있다. 예를 들어, 800기가비트 이더넷(gigabit Ethernet, GE)/1.6테라비트 이더넷(terabit Ethernet, TE)의 이더넷 인터페이스 또는 200G 4 세대 펄스 진폭 변조(4 pulse amplitude modulation, PAM 4) 광 링크의 경우, 전송 속도가 높을수록 일반적으로 채널 및 비트 오류율에 대한 요건이 더 엄격하며, 사전-수정 비트 오류율(pre-correction bit error rate)이 개선된 후에 FEC가 더 강할수록 수정 후 비트 오류율이 더 낮게 유지될 수 있다. 이와 관련하여, 본 출원의 실시예는 데이터 전송 방법을 제공한다. 이 방법에서, 데이터를 전송하는 제1 칩의 기준 클럭 주파수(reference clock frequency)와 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하고, 제1 FEC 코드 타입을 사용하여 코딩된 제1 데이터를 획득하여 연결 코딩에서 제2 데이터를 얻기 위해 제2 FEC 코드 타입을 사용하여 다시 코딩된다. 따라서, 제2 데이터는 더 높은 코딩 이득을 가지며, 비트 오류가 발생하기 쉬운 채널로 데이터를 전송할 경우 비트 오류가 발생하는 데이터에 대해 효과적으로 오류 수정을 수행할 수 있고, 이로써 데이터 전송 품질을 향상시킬 수 있다. 또한, 제2 데이터는 제1 데이터에 기초하여 직접 코딩하여 획득한 데이터이므로, 방법의 구현 프로세스가 간단하고 데이터 전송 효율이 향상된다. 또한, 특정 트리거 조건 하에서 연결 코딩의 프로세스가 수행될 수 있다. 예를 들어, 이 방법에서, 칩들이 자동 협상(auto-negotiation)을 수행하고, 연결 코딩(concatenated coding)이 요구된다는 것을 나타내는 자동 협상 결과에 기초하여 제1 칩의 기준 클럭 주파수에 기초하여 제2 FEC 코드 타입을 결정하는 프로세스를 수행하고, 제1 FEC 코드 타입에 대응하는 출력 속도로 칩이 연결 코딩을 수행해야 하는지 여부를 능동적으로 결정할 수 있다. 이는 서로 다른 채널에서 전송되는 데이터를 코딩하는 데 있어 더 유연하다.
본 출원의 실시예에서의 방법은 현재 이더넷 인터페이스 또는 데이터 전송이 필요한 다른 시나리오에 적용 가능하다. 도 1에 도시된 구현 시나리오가 예로서 사용된다. 구현 시나리오에는 복수의 칩이 포함되며, 칩은 데이터 전송을 구현하기 위해 정보를 교환할 수 있다. 도 1에 도시된 바와 같이, 데이터 전송은 제1 칩(101)과 제2 칩(102) 사이, 제1 칩(101)과 제3 칩(103) 사이에서 수행될 수 있다. 도 1에 도시된 구현 시나리오는 N개의 칩을 포함할 수 있으며, 여기서 N은 2 이상의 양의 정수임에 주의해야 한다. 도 1에서는 설명을 위한 예로 3개의 칩만을 사용하였다.
도 1에 도시된 구현 시나리오를 참조하면, 본 출원의 실시예에서 제공되는 데이터 전송 방법이 도 2에 도시되어 있으며, 201 단계 내지 206 단계를 포함하나 이에 한정되지 않는다.
단계 201: 제1 칩이 제1 데이터를 획득하는데, 여기서 제1 데이터는 제1 FEC 코드 타입을 사용하여 코딩하여 획득한 데이터이다.
가능한 구현에서, 제1 데이터는 제1 칩 내부의 데이터이거나, 제1 데이터는 제1 칩에 의해 수신되고 제2 칩에 의해 송신되는 데이터이다. 예를 들어, 제1 칩이 제1 FEC 코드 타입을 사용하여 원본 데이터를 코딩하여 제1 데이터를 획득하거나, 제2 칩이 제1 FEC 코드 타입을 사용하여 원본 데이터를 코딩하여 코딩된 데이터를 획득할 수 있다. 제2 칩은 코딩된 데이터를 스크램블링하여 제1 데이터를 형성하고, 제1 칩은 제2 칩에 의해 송신된 제1 데이터를 수신한다. 예를 들어, 제2 칩은 물리 채널을 통해 제1 데이터를 제1 칩으로 송신한다. 제1 데이터가 제1 칩 내부의 데이터인지 또는 제2 칩에 의해 송신된 데이터인지에 관계없이, 제1 FEC를 사용하는 코딩에 더하여 제1 데이터에 대해 다른 처리가 수행될 수 있다. 예를 들어, 제1 데이터는 물리적 매체 부착 부계층(physical medium attachment sublayer, PMA) 및/또는 물리적 매체 의존적(physical media dependent, PMD) 인터페이스를 사용하여 제2 칩에 의해 제1 칩으로 송신되는 데이터이거나; 또는 제1 데이터는 PMA 및/또는 제1 칩 내의 물리적 코딩 부계층(physical coding sublayer, PCS)을 통과하는 데이터일 수 있다. 또한, 제1 데이터는 다른 처리가 수행된 데이터일 수 있다. 예를 들어, 제1 데이터는 인터리빙 및 분배가 수행된 후 획득된 데이터이다.
제1 FEC 코드 타입은 본 출원의 이 실시예에서 제한되지 않는다. 가능한 구현에서, 제1 FEC 코드 타입은 리드-솔로몬(Reed-Solomon, RS) 코드, BCH(Bose-Chaudhuri-Hocquenghem, BCH) 코드, 화재(fire) 코드, 터보(turbo) 코드, 터보 프로덕트 코드(turbo product code, TPC), 계단(staircase) 코드, 저밀도 패리티 체크(low-density parity-check, LDPC) 코드 중 어느 하나이다.
또한, 제1 칩은 제1 데이터를 수신한 후 직접 제1 데이터를 전송할 수 있다. 데이터 전송 품질을 향상시키기 위해, 제1 데이터는 대안적으로 다시 코딩될 수 있다. 제1 칩에 의해 연결 코딩을 수행하는 트리거링 방식은 본 출원의 이 실시예에서 제한되지 않는다. 가능한 구현에서, 제1 칩은 제1 칩에 의해 송신된 데이터를 수신하는 제3 칩과 자동 협상을 수행하고; 연결 코딩이 필요함을 나타내는 자동 협상 결과에 응답하여, 제1 칩은 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정한다. 자동 협상 프로세스는 제1 데이터를 수신한 후에 수행될 수도 있고, 방법이 수행되기 전에 수행될 수도 있다. 본 출원의 이 실시예에서 자동 협상의 경우는 제한되지 않으며, 자동 협상은 단지 제1 데이터가 전송되기 전에 수행되면 된다.
단계 202: 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정한다.
가능한 구현에서, 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도, 제2 데이터의 코드워드 길이 및 제2 데이터의 코드워드의 정보 길이는 오버헤드 비례 관계를 충족한다. 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 단계는: 제1 칩의 기준 클록 주파수에 기초하여 제2 FEC 코드 타입을 결정하는 단계를 포함하며, 출력 속도는 제1 FEC 코드 타입 및 오버헤드 비례 관계에 대응한다. 오버헤드 비례 관계에 기초하여 제2 FEC 코드 타입을 결정함으로써 제2 FEC 코드 타입을 사용하여 코딩하여 획득한 오버헤드가 확보될 수 있고, 데이터 전송 성능을 더욱 향상시킬 수 있다.
가능한 구현에서 오버헤드 비례 관계에는 다음이 포함된다:
식(1)
여기서, n은 제2 데이터의 코드워드 길이, k는 제2 데이터의 코드워드 내 정보 길이, v1은 제1 FEC 코드 타입에 대응하는 출력 속도, p는 조정 파라미터, f는 제1 칩의 기준 클럭 주파수이고, p는 양의 정수이다.
전술한 오버헤드 비율 관계가 충족될 수 있다면 n, k 및 p의 다른 조합이 있음을 유의해야 한다. 예를 들어, 조정 파라미터는 기준값이고, 예를 들어 조정 파라미터는 10의 정수배 또는 20의 정수배이다. 기준값에 기초하여 오버헤드 비례 관계를 만족하는 제2 FEC 코드 타입이 결정된다.
예를 들어, 제1 FEC 코드 타입은 RS(544, 514)이고, 제1 칩의 기준 클록 주파수는 156.25MHz이며, 제1 FEC 코드 타입에 대응하는 출력 속도는 106.25Gbps(기가비트/초)이다. 예를 들어, p = 705일 때 n = 282이거나 k = 272이다. p = 720일때, n = 144, k = 136이거나, 또는 n = 180, k = 170이다. 또 다른 예로, 조정 파라미터가 720이라면, n = 144, k = 136이거나, 또는 n = 180, k = 170이다.
가능한 구현에서, 오버헤드 비례 관계에 기초하여 제2 FEC 코드 타입이 결정될 때, 표 1의 모든 코드 타입이 BCH 코드인 표 1을 참조하여 제2 FEC 코드 타입이 결정될 수 있다.
Figure pct00003
표 1에서 n은 코드워드 길이, k는 코드워드 내 정보 길이, m은 코드가 위치한 유한 필드(finite field) 또는 갈루아 필드(Galois Field)가 GF(2m)임을 나타내고, t 오류 수정 기능이다. 예를 들어, BCH(180, 170, m=10, t=1)는 BCH 코드 타입의 코드워드 길이가 180비트(bit)임을 나타내며, 그 길이는 0 확장 비트(extended bit)를 포함하고, 코드워드 내 정보 길이는 170비트, m=10, 오류 수정 능력은 1이다. eBCH(161 + 1, 153, m = 8, t = 1)는 BCH 코드 타입은 확장 비트를 포함하는 BCH 코드 타입이고, 코드워드 길이는 162비트이며, 길이는 확장된 1비트를 포함하고, m=8, 오류 수정 능력은 1이다. 표 1의 다른 BCH 코드 타입의 원리는 전술한 BCH 코드 타입과 동일하다. 자세한 내용은 여기서 다시 설명하지 않는다.가능한 구현에서, 제2 데이터의 코드워드 길이는 제2 데이터가 분배되는 로직 채널의 수량과 정수배 관계에 있다. 로직 채널은 PCS 채널 또는 FEC 채널일 수 있다. 제2 FEC 코드 타입을 결정할 때 정수배 관계를 고려하여, 결정된 제2 FEC 코드 타입이 전송 시나리오에 더 적합하며 데이터 전송 성능이 향상된다. 예를 들어, 제2 데이터가 분배되는 로직 채널의 수량이 8개일 때, 제2 데이터의 코드워드 길이는 8의 정수배이다. 분명히, 로직 채널의 수량은 대안적으로 1이 될 수 있으며 즉, 제2 데이터는 하나의 로직 채널을 통해 전송된다. 제2 데이터의 코드워드 길이는 양의 정수이므로, 제2 데이터의 코드워드 길이도 제2 데이터가 분배되는 로직 채널의 수량과 정수배의 관계에 있다.
제1 칩의 기준 클럭 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 방식은 다음의 세 가지 방식을 포함하나 이에 한정되지 않는다.
방식 1: 제1 칩은 먼저 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도, 및 오버헤드 비례 관계에 기초하여 제1 세트를 결정하고, 여기서 제1 세트는 오버헤드 비례 관계를 충족하는 복수의 FEC 코드 타입을 포함한다. 그 후, 분배 동안 코드워드 길이와 로직 채널 사이의 정수배 관계에 기초하여 제1 세트로부터 제2 FEC 코드 타입이 결정된다.
방식 2: 제1 칩은 먼저 분배 시 코드워드 길이와 로직 채널 사이의 정수배 관계에 기초하여 제2 세트를 결정하고, 제2 세트는 정수배 관계를 충족하는 복수의 FEC 코드 타입을 포함한다. 그런 다음, 오버헤드 비례 관계에 기초하여 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 세트로부터 제2 FEC 코드 타입이 결정된다.
방식 3: 제1 칩은 먼저 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도 및 오버헤드 비율 관계에 기초하여 제1 세트를 결정하고, 여기서 제1 세트는 오버헤드 비율 관계를 충족하는 복수의 FEC 코드 타입을 포함한다. 그리고 나서, 분배 동안 코드워드 길이와 로직 채널 사이의 정수배 관계에 기초하여 제2 집합을 결정하고, 여기서 제2 집합은 정수배 관계를 만족하는 복수의 FEC 코드 타입을 포함하고, 제2 FEC 코드 타입은 제1 세트와 제2 세트를 기준으로 결정된다. 예를 들어, 제1 칩은 제1 세트와 제2 세트의 교집합에 기초하여 제2 FEC 코드 타입을 결정한다.
제2 FEC 코드 타입은 RS 코드, BCH 코드, 파이어 코드, 터보 코드, 터보 프로덕트 코드, 계단식 코드 또는 LDPC 코드 중 어느 하나일 수 있음을 유의해야 한다. 제2 FEC 코드 타입의 본 출원의 이 실시예에서 제한되지 않는다.
단계 203: 제1 칩은 제2 데이터를 획득하기 위해 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩한다.
가능한 구현에서, 제1 데이터가 제1 칩 내부의 데이터인 경우, 제1 칩은 제2 데이터를 획득하기 위해 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩한다. 제1 데이터가 제1 칩에 의해 수신되고 제2 칩에 의해 송신되는 데이터인 경우, 제1 칩은 제2 데이터를 획득하기 위해 제2 FEC 코드 타입에 기초하여 데이터를 직접 코딩할 수 있다. 제1 칩은 수신된 데이터에 대한 디코딩 이외의 간단한 동작, 예를 들어 비트 다중화(bit mux) 또는 비트 역다중화(bit demux)를 수행할 수 있음에 유의해야 한다.
예를 들어, 제1 데이터가 단일 데이터인 경우, 제1 칩은 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하여 제2 데이터를 획득하고, 여기서 제1 데이터는 제1 칩에 의해 직접 수신된 데이터일 수 있거나, 또는 상기 제1 칩에 의해 분산된 복수의 서브데이터를 인터리빙하여 획득된 데이터일 수 있다. 이 경우, 제1 데이터를 전체로 간주하고, 제2 FEC 코드 타입을 이용하여 제1 데이터를 코딩한다. 선택적으로, 복수의 제1 데이터가, 예를 들어 제2 칩이 송신한 복수의 제1 데이터가 있는 경우, 제1 칩은 제2 FEC 코드 타입에 기초하여 제1 데이터 각각을 개별적으로 코딩하여 복수의 제2 데이터를 획득한다. 도 3에 도시된 바와 같이, 제1 칩은 부착 유닛 인터페이스(attachment unit interface, AUI)를 통해 제3 데이터를 수신하고, 물리적 매체 부착 부계층(physical medium attachment sublayer, PMA)을 사용하여 제3 데이터를 처리하여, 복수의 제1 데이터를 획득한다. 제1 칩은 복수의 제1 데이터를 개별적으로 코딩하여 복수의 제2 데이터를 획득한다. 획득된 복수의 제2 데이터는 복수의 물리 채널(도 5의 물리 채널 1 내지 N)을 통해 전송된 후 PMA, 물리적 매체 종속(physical media dependent, PMD), 등을 이용하여 외부로 전송될 수 있다. 일부 실시예에서, 도 3에서, 제2 칩은 네트워크 디바이스, 예를 들어 라우터나 스위치 등의 물리 계층(PHY) 칩일 수 있고, 제1 칩은 광 모듈 내의 칩이거나 클럭 데이터 복구(clock data recovery, CDR)/리타이머(retimer)) 칩일 수 있다. PHY 칩은 네트워크 디바이스의 보드 상에 위치하는 칩일 수 있다. 칩은 중앙 처리 장치(central processing unit, CPU), 네트워크 프로세서(network processor, NP), 신경망 처리 장치(neural network processing unit, NPU), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 프로그래머블 로직 컨트롤러(programmable logic controller, PLC) 등 또는 이들의 조합일 수 있다.
가능한 구현에서, 하나의 제1 데이터 또는 복수의 제1 데이터에 관계없이, 제1 칩이 제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하여 제2 데이터를 획득하는 것은 다음을 포함한다: 제1 칩은 복수의 제1 서브데이터를 획득하도록 제1 데이터를 분배하고, 제1 칩은 제2 FEC 코드 타입에 기초하여 복수의 제1 서브데이터를 개별적으로 코딩하여 복수의 제2 서브데이터를 획득한다. 예를 들어, 프로세스는 도 4에 도시될 수 있다.
예를 들어, 제1 칩이 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하는 방식은 다음 두 가지 방식을 포함하나 이에 한정되지 않는다.
방식 1: 제1 칩이 로직 채널을 통해 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득한다.
예를 들어, 제1 칩은 제1 데이터를 N개의 로직 채널을 통해 복수의 제1 서브데이터를 분배하여 획득하고, 각 로직 채널은 하나의 제1 서브데이터를 전송하는 데 사용되며, 로직 채널은 PCS 채널 또는 FEC 채널일 수 있다. 제1 칩은 제2 FEC 코드 타입에 기초하여 복수의 제1 서브데이터를 개별적으로 코딩하여 복수의 제2 서브데이터를 획득한다. 예를 들어, 프로세스는 도 5에 도시될 수 있다. 획득된 복수의 제2 서브데이터는 PMA, PMD 등을 이용하여 별도로 외부로 전송될 수 있다.
방식 2: 제1 칩은 PMA를 통해 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득한다.
단계 204: 제1 칩이 제2 데이터를 전송한다.
제1 칩은 로직 채널을 통해 제2 데이터를 전송하며, 로직 채널은 PCS 채널 또는 FEC 채널일 수 있다. 가능한 구현에서, 다수의 데이터 전송 채널에 대해, 제1 칩이 제2 데이터를 전송하는 것은 다음 두 가지 사례를 포함하지만 이에 제한되지 않는다.
사례 1: 채널 수는 1이다.
사례 1에서, 제1 칩은 채널을 통해 제2 데이터를 전송하고, 제2 데이터는 단일 데이터일 수도 있고, 복수의 제2 서브데이터를 포함할 수도 있다.
사례 2: 채널 수는 2보다 크거나 같은 양의 정수이다.
사례 2에서, 제1 칩은 제2 데이터를 분배하여 복수의 제3 서브데이터를 획득하고, 복수의 로직 채널을 통해 복수의 제3 서브데이터를 전송한다. 예를 들어, 제1 칩은 순차 순환 분배(round-robin distribution) 방식으로 제2 데이터를 분배한다. 예를 들어, 도 6에 도시된 바와 같이, N개의 로직 채널이 있고, N은 2 이상의 양의 정수이다. 제1 칩은 제2 데이터를 순차 순환 분배 방식으로 분배하여 N개의 제3 서브데이터를 얻고, N개의 제3 서브데이터를 N개의 로직 채널을 통해 송신한다. 예를 들어, N개의 로직 채널 각각은 대응하게 제3 서브데이터를 하나씩 송신한다. N개의 제3 서브데이터는 PMA 및 PMD를 통해 다음 칩으로 송신되는 것을 포함하지만 이에 제한되지 않는다.
예를 들어, 제1 데이터가 단일 데이터인 경우, 제2 데이터를 얻기 위해 제2 FEC 코드 타입을 사용하여 단일한 제1 데이터를 코딩한 후, 제1 칩은 제2 데이터를 분배하여 복수의 제3 서브데이터를 얻고 복수의 로직 채널을 통해 복수의 제3 서브데이터를 송신한다. 제1 데이터가 복수의 제1 서브데이터로 분배되고, 복수의 제1 서브데이터 중 어느 하나를 제2 FEC 코드 타입으로 코딩하여 제2 서브데이터를 획득하면, 제1 칩은 복수의 제2 서브데이터를 분배하여 복수의 제3 서브데이터를 획득하고, 복수의 로직 채널을 통해 복수의 제3 서브데이터를 송신한다. 예를 들어, 제1 칩은 복수의 제2 서브데이터 중 어느 하나를 순차 순환 방식으로 분배한다. 도 7에 도시된 시스템을 예로 들면, 복수의 제2 서브데이터는 제2 FEC 코드 타입을 사용하여 코딩하여 획득한다. 각각의 제2 서브데이터에 대해, 제1 칩은 제2 서브데이터를 분배하여 N개의 제3 서브데이터(N은 2 이상의 양의 정수)를 획득하고, 복수의 제3 서브데이터는 N개의 로직 채널을 통해 분배된다. 예를 들어, N개의 로직 채널 각각은 대응하게 제3 서브데이터를 하나씩 보낸다.
전술한 201 단계 내지 204 단계는 모두 제1 칩 측에서 데이터 전송을 수행하는 프로세스이다. 다음은 데이터 전송 방법을 설명하기 위해 제3 칩 측면을 예로 사용한다.
단계 205: 제3 칩은 제2 데이터를 수신하는데, 여기서 제2 데이터는 제2 FEC 코드 타입을 사용하여 제1 데이터를 코딩하여 획득한 데이터이고, 제1 데이터는 제1 FEC 코드 타입을 사용하여 코딩하여 획득한 데이터이다.
가능한 구현에서, 제3 칩은 로직 채널을 통해 제1 칩에 의해 송신된 제2 데이터를 수신한다.
단계 206: 제3 칩은 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하여 디코딩된 데이터를 얻는다.
제2 데이터는 제2 FEC 코드 타입을 이용하여 제1 데이터를 코딩하여 획득하고, 제1 데이터는 제1 FEC 코드 타입을 사용하여 코딩하여 획득한다. 따라서, 제3 칩에 의해 수신된 제2 데이터는 더 높은 코딩 이득 및 더 높은 오류 수정 능력을 갖는다. 획득된 디코딩된 데이터는 제2 데이터를 디코딩하여 더 높은 정확도를 갖는다.
가능한 구현에서, 제3 칩은 제2 데이터를 송신하는 제1 칩과 자동 협상을 수행한다. 디코딩이 수행되어야 함을 나타내는 자동 협상 결과에 응답하여, 제3 칩은 디코딩된 데이터를 획득하기 위해 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩한다.
제3 칩이 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하는 것은 다음을 포함하지만 이에 제한되지 않는다: 제3 칩은 제2 FEC 코드 타입에 기초하여 제2 데이터에 대해 연판정 디코딩(soft-decision decoding)을 수행한다. 예를 들어, 제3 칩이 제2 FEC 코드 타입에 기초하여 제2 데이터에 대해 연판정 디코딩을 수행하여 디코딩된 데이터를 획득하는 것은 다음을 포함한다: 제3 칩이 제2 데이터에 기초하여 제2 FEC 코드 타입의 제1 시퀀스를 획득하고, 여기서 제1 시퀀스는 복수의 심볼 요소를 포함한다. 제3 칩은 신뢰성 메트릭을 복수의 심볼 요소 각각에 개별적으로 할당하고; 제3 칩은 신뢰성 메트릭에 기초하여 적어도 하나의 가장 신뢰할 수 없는 위치를 결정하며; 제3 칩은 적어도 하나의 가장 신뢰할 수 없는 위치에 기초하여 오류 패턴을 획득하고, 오류 패턴에 기초하여 제1 시퀀스를 정정한다. 제3 칩은 수정된 제1 시퀀스에 대해 디코딩을 수행하여 제1 코드워드 세트를 획득하고, 제1 코드워드 세트의 코드워드를 매핑하고, 제3 칩은 매핑 결과에 기초하여 디코딩된 데이터를 획득한다.
가능한 구현에서, 제3 칩이 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩한 후, 디코딩된 데이터를 획득하기 위해, 방법은: 제3 칩이 제3 FEC 코드 타입에 기초하여 디코딩된 데이터를 다시 코딩하고, 다시 코딩된 데이터를 전송한다. 복호화된 데이터를 제3 FEC 코드 타입에 따라 다시 코딩(re-coding)함으로써 다음 링크의 데이터 전송 품질을 보호할 수 있다. 제3 FEC 코드 타입은 본 출원의 이 실시예에서 제한되지 않는다. 예를 들어, 제3 FEC 코드 타입은 제2 FEC 코드 타입이고, 제2 FEC 코드 타입은 제2 데이터를 코딩하기 위한 제2 FEC 코드 타입과 동일하거나, 전술한 오버헤드 비례 관계 및 코드워드 길이가 분배 시 로직 채널 수의 정수배인 관계를 충족하는 또 다른 제2 FEC 코드 타입일 수 있다.
예를 들어, 도 8에 도시된 바와 같이, 제3 칩이 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하여 디코딩된 데이터를 획득한 후, 제3 칩은 디코딩된 데이터를 제4 칩으로 전송해야 하고, 제4 칩은 수신된 데이터를 제1 칩의 처리 방식으로 처리할 수 있다. 예를 들어, 복호화된 데이터는 전술한 202 단계 내지 204 단계의 프로세스에 따라 다시 코딩되고, 다시 코딩된 데이터가 전송된다. 선택적으로, 제4 칩은 서비스 데이터를 획득하기 위해 제1 FEC 코드 타입에 기초하여 수신된 데이터를 대안적으로 디코딩할 수 있다.
본 출원의 이 실시예에서 제공된 방법에 따르면, 제2 FEC 코드 타입은 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 결정되고, 제1 FEC 코드 타입을 사용하여 코딩된 획득된 제1 데이터는 제2 FEC 코드 타입을 사용하여 다시 코딩되어 연결 코딩에서 제2 데이터를 획득한다. 따라서, 제2 데이터는 더 높은 코딩 이득을 가지며, 비트 오류가 발생하기 쉬운 채널로 데이터를 전송할 경우. 비트 오류가 발생하는 데이터에 대해 효과적으로 오류 수정을 수행하여 데이터 전송 품질을 향상시킬 수 있다.
또한, 제2 데이터는 제1 데이터에 기초하여 직접 코딩한 데이터이므로 방법의 구현 프로세스가 간단하고 데이터 전송 효율이 향상된다.
또한, 방법에서 칩들이 자동 협상(auto-negotiation)을 수행하고, 연결 코딩이 필요함을 나타내는 자동 협상 결과에 기초하여, 제1 칩의 기준 클럭 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 프로세스를 수행하여, 칩이 연결 코딩을 수행해야 하는지 여부를 능동적으로 결정할 수 있다. 이는 서로 다른 채널에서 전송되는 데이터를 코딩하는 데 더 유연하다.
본 출원의 실시예는 데이터 전송 디바이스를 더 제공한다. 도 9는 본 출원의 실시예에 따른 데이터 전송 디바이스의 구조의 개략도이다. 도 9에 도시된 다음의 다수의 모듈에 기초하여, 도 9에 도시된 데이터 전송 디바이스는 제1 칩이 수행하는 연산의 전부 또는 일부를 수행할 수 있다. 장치는 표시된 모듈보다 더 많은 추가 모듈을 포함하거나 표시된 모듈 중 일부를 생략할 수 있음을 이해해야 한다. 이것은 본 출원의 실시예에서 제한되지 않는다. 도 9에 도시된 바와 같이, 장치는:
제1 데이터를 획득하도록 구성되는 획득 모듈(901) - 제1 데이터는 제1 FEC 코드 타입을 사용하는 코딩하여 획득한 데이터임 -;
제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하도록 구성된 결정 모듈(902);
제2 FEC 코드 타입에 기초하여 제1 데이터를 코딩하여 제2 데이터를 획득하도록 구성되는 코딩 모듈(903); 및
제2 데이터를 전송하도록 구성된 전송 모듈(904)을 포함한다.
가능한 구현에서, 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도, 제2 데이터의 코드워드 길이 및 제2 데이터의 코드워드의 정보 길이는 오버헤드 비례 관계를 충족한다. 결정 모듈(902)은 제1 칩의 기준 클록 주파수, 제1 FEC 코드 타입에 대응하는 출력 속도 및 오버헤드 비례 관계에 기초하여 제2 FEC 코드 타입을 결정하도록 구성된다.
가능한 구현에서 오버헤드 비례 관계에는 다음이 포함된다:
.
여기서, n은 제2 데이터의 코드워드 길이, k는 제2 데이터의 코드워드 내 정보 길이, v1은 제1 FEC 코드 타입에 대응하는 출력 속도, p는 조정 파라미터, f는 제1 칩의 기준 클럭 주파수, p는 양의 정수이다.
가능한 구현에서, 제2 데이터의 코드워드 길이는 제2 데이터가 분배되는 로직 채널의 수량과 정수배 관계에 있다.
가능한 구현에서, 코딩 모듈(903)은 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하고, 제2 FEC 코드 타입에 기초하여 복수의 제1 서브데이터를 개별적으로 코딩하여 복수의 조제2 서브데이터를 획득하도록 구성된다. 전송 모듈(904)은 복수의 제2 서브데이터를 전송하도록 구성된다.
가능한 구현에서, 코딩 모듈(903)은, PCS 채널을 통해 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하고; 또는 PMA를 통해 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하도록 구성된다.
가능한 구현에서, 전송 모듈(904)은, 제2 데이터를 분배하여 복수의 제3 서브데이터를 획득하고 복수의 제3 서브데이터를 복수의 로직 채널을 통해 송신하도록 구성된다.
가능한 구현에서, 장치는 제1 칩에 의해 송신된 데이터를 수신하는 제3 칩과 자동 협상을 수행하도록 구성된 자동 협상 모듈을 더 포함하며, 여기서 연결 코딩이 필요함을 나타내는 자동 협상 결과에 응답하여, 결정 모듈(902)은 제1 칩의 기준 클록 주파수 및 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 단계를 수행한다.
가능한 구현에서, 제1 데이터는 제1 칩 내부의 데이터이거나, 제1 데이터는 제1 칩에 의해 수신되고 제2 칩에 의해 송신되는 데이터이다.
도 10은 본 출원의 실시예에 따른 데이터 전송 디바이스의 구조의 개략도이다. 도 10에 도시된 다음의 복수의 모듈에 기초하여, 도 10에 도시된 데이터 전송 디바이스는 제3의 칩에 의해 수행되는 모든 또는 일부 동작을 수행할 수 있다. 장치는 표시된 모듈보다 더 많은 추가 모듈을 포함하거나 표시된 모듈 중 일부를 생략할 수 있음을 이해해야 한다. 이것은 본 출원의 실시예에서 제한되지 않는다. 도 10에 도시된 바와 같이, 장치는 다음을 포함한다:
제2 데이터를 수신하도록 구성되는 수신 모듈(1001)- 제2 데이터는 제2 FEC 코드 타입을 사용하여 제1 데이터를 코딩하여 획득한 데이터이고, 제1 데이터는 제1 FEC 코드 타입을 사용하여 코딩하여 획득한 데이터임 - ; 및
디코딩된 데이터를 획득하기 위해 제2 FEC 코드 타입에 기초하여 제2 데이터를 디코딩하도록 구성된 디코딩 모듈(1002).
가능한 구현에서, 디코딩 모듈(1002)은 디코딩된 데이터를 획득하기 위해 제2 FEC 코드 타입에 기초하여 제2 데이터에 대해 연판정 디코딩을 수행하도록 구성된다.
가능한 구현에서, 장치는 제3 FEC 코드 타입에 기초하여 디코딩된 데이터를 다시 코딩하도록 구성된 코딩 모듈; 및 다시 코딩된 데이터를 전송하도록 구성된 전송 모듈을 포함한다.
가능한 구현에서, 제3 FEC 코드 타입은 제1 FEC 코드 타입 또는 제2 FEC 코드 타입이다.
도 9 및 도 10에 제공된 장치가 사용될 때, 장치의 기능을 구현하기 위해, 전술한 기능 모듈로의 분할은 설명을 위한 예로서만 사용된다. 실제 적용 시, 전술한 기능은 요구 사항에 따라 구현을 위해 다른 기능 모듈에 할당될 수 있다. 즉, 디바이스의 내부 구조가 위에서 설명한 기능의 전부 또는 일부를 구현하기 위해 다른 기능 모듈로 분할된다. 또한, 전술한 실시예에서 제공된 장치 및 방법 실시예는 동일한 개념에 속한다. 장치의 특정 구현 프로세스에 대해서는 방법 실시예를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
본 출원의 실시예는 데이터 전송 디바이스를 제공한다. 장치는 프로세서를 포함하고, 여기서 프로세서는 메모리에 결합되고, 메모리는 적어도 하나의 프로그램 명령어 또는 코드를 저장하며, 적어도 하나의 프로그램 명령어 또는 코드는 프로세서에 의해 로드 및 실행되어 데이터 전송 디바이스 전술한 방법 실시예의 방법을 구현한다.
도 11을 참조한다. 도 11은 본 출원의 일 실시예에 따른 데이터 전송 디바이스(1100)의 구조를 개략적으로 도시한 도면이다. 데이터 전송 디바이스(1100)는 전송측/수신측 장치이다. 도 11에 도시된 데이터 전송 디바이스(1100)는 도 2에 도시된 데이터 전송 방법과 관련된 동작을 수행하도록 구성된다. 데이터 전송 디바이스(1100)는 예를 들어 스위치 또는 라우터와 같은 네트워크 디바이스 및 칩 연결 모드를 포함하는 다른 장치(예를 들어 서버 또는 PC)이다. 데이터 전송 디바이스(1100)의 하드웨어 구조는 통신 인터페이스(1101) 및 프로세서(1102)를 포함한다. 선택적으로, 통신 인터페이스(1101) 및 프로세서(1102)는 버스(1104)를 통해 연결된다. 통신 인터페이스(1101)는 제1 데이터를 획득하고 제2 데이터를 전송하도록 구성된다. 프로세서는 명령어 또는 프로그램 코드를 저장할 수 있고, 명령어 또는 프로그램 코드를 호출함으로써 제1 칩에 의해 수행되는 기능 또는 제3 칩에 의해 수행되는 기능을 실행할 수 있다. 선택적으로, 네트워크 디바이스는 메모리(1103)를 더 포함한다. 메모리(1103)는 명령어 또는 프로그램 코드를 저장한다. 프로세서(1102)는 메모리(1103)의 명령어 또는 프로그램 코드를 호출하도록 구성되어 네트워크 디바이스가 전술한 방법 실시예에서 제1 칩의 관련 처리 단계를 수행한다. 구체적인 실시예에서, 본 출원의 본 실시예의 데이터 전송 디바이스(1100)는 전술한 방법 실시예의 제1 칩을 포함할 수 있다. 데이터 전송 디바이스(1100)의 프로세서(1102)는 메모리(1103)의 명령어 또는 프로그램 코드를 판독하여, 도 11에 도시된 데이터 전송 디바이스(1100)가 제1 칩이 수행하는 모든 또는 일부 동작을 수행할 수 있다.
구체적인 실시예에서, 본 출원의 본 실시예의 데이터 전송 디바이스(1100)는 전술한 방법 실시예의 제3 칩을 포함한다. 데이터 전송 디바이스(1100)의 프로세서(1102)는 메모리(1103)의 명령어 또는 프로그램 코드를 판독하여, 도 11에 도시된 데이터 전송 디바이스(1100)가제3 칩이 수행하는 모든 또는 일부 동작을 수행할 수 있다.
예를 들어, 프로세서(1102)는 예를 들어 범용 중앙 처리 장치(central processing unit, CPU), 디지털 신호 프로세서(digital signal processor, DSP), 네트워크 프로세서(network processor, NP), 그래픽 처리 장치(그래픽 처리 장치, GPU), 신경망 처리 장치(neural-network processing unit, NPU), 데이터 처리 장치(data processing unit, DPU), 마이크로프로세서 또는 본 출원의 솔루션을 구현하도록 구성된 하나 이상의 집적 회로이다. 예를 들어, 프로세서(1102)는 주문형 집적 회로(application-specific integrated circuit, ASIC), 프로그램 가능 로직 디바이스(programmable logic device, PLD) 또는 다른 프로그램 가능 로직 디바이스, 트랜지스터 로직 디바이스, 하드웨어 컴포넌트, 또는 이들의 조합을 포함한다. PLD는 예를 들어 복합 프로그래머블 로직 디바이스(complex programmable logic device, CPLD), 필드 프로그래머블 게이트 어레이(field-programmable gate array, FPGA), 일반 어레이 로직(generic array logic, GAL) 또는 임의의 이들의 조합을 포함한다. 프로세서는 본 발명의 실시예에 개시된 내용을 참조하여 설명된 다양한 로직 블록, 모듈 및 회로를 구현 또는 실행할 수 있다. 대안적으로, 프로세서는 예를 들어 하나 이상의 마이크로프로세서의 조합 또는 DSP와 마이크로프로세서의 조합을 포함하는 컴퓨팅 기능을 구현하는 프로세서의 조합일 수 있다.
선택적으로, 데이터 전송 디바이스(1100)는 버스를 더 포함한다. 버스는 데이터 전송 디바이스(1100)의 컴포넌트들 간에 정보를 전달하도록 구성된다. 버스는 주변 컴포넌트 상호 연결(peripheral component interconnect, 줄여서 PCI) 버스, 확장된 산업 표준 아키텍처(extended industry standard architecture, 줄여서 EISA) 버스 등일 수 있다. 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 분류될 수 있다. 표현의 용이함을 위해, 도 11에서 버스를 나타내기 위해 단 하나의 굵은 선이 사용되지만 이는, 버스가 하나뿐이거나 버스 타입이 하나뿐이라는 의미는 아니다. 버스를 통해 연결되는 것 외에도, 도 11의 데이터 전송 디바이스(1100)의 컴포넌트는 다른 방식으로 연결될 수 있다. 컴포넌트의 연결 방식은 본 발명의 이 실시예에서 제한되지 않는다.
예를 들어, 메모리(1103)는 판독 전용 메모리(read-only memory, ROM) 또는 정적 정보 및 명령어를 저장할 수 있는 다른 타입의 정적 저장 장치이거나, 또는 임의 접근 메모리(random access memory, RAM) 또는 정보와 명령어를 저장할 수 있는 다른 타입의 동적 저장이거나, 또는 전기적으로 소거 가능한 프로그래밍 가능한 판독 전용 메모리(electrically erasable programmable read-only memory, EEPROM), 컴팩트 디스크 판독 전용 메모리(compact disc read-only memory, CD-ROM) 또는 기타 컴팩트 디스크 저장 장치, 광 디스크 저장 장치(컴팩트 디스크, 레이저 디스크, 광 디스크, 디지털 다목적 디스크, 블루레이 디스크 등 포함), 자기 디스크 저장 매체 또는 기타 자기 저장 장치 장치 또는 명령어 형식 또는 데이터 구조 형식으로 예상되는 프로그램 코드를 전달하거나 저장할 수 있고 컴퓨터에서 액세스할 수 있는 기타 매체일 수 있다. 그러나 메모리는 이에 제한되지 않는다. 예를 들어, 메모리(1103)는 독립적으로 존재하고, 버스를 통해 프로세서(1102)에 연결된다. 대안적으로, 메모리(1103)는 프로세서(1102)에 통합될 수 있다.
통신 인터페이스(1101)는 임의의 트랜시버형 장치이고, 다른 장치 또는 통신 네트워크와 통신하도록 구성된다. 통신 네트워크는 이더넷(Ethernet), RAN(radio access network), 무선 근거리 통신망(wireless local area network, WLAN) 등일 수 있다. 통신 인터페이스(1101)는 유선 통신 인터페이스를 포함할 수 있으며, 무선 통신 인터페이스를 더 포함할 수 있다. 구체적으로, 통신 인터페이스(1101)는 이더넷(Ethernet) 인터페이스, 고속 이더넷(fast Ethernet, FE) 인터페이스, 기가비트 이더넷(gigabit Ethernet, GE) 인터페이스, 비동기 전송 모드(asynchronous transfer mode, ATM) 인터페이스, 무선 근거리 통신망(wireless local area network, WLAN) 인터페이스, 셀룰러 네트워크 통신 인터페이스, 또는 이들의 조합일 수 있다. 이더넷 인터페이스는 광 인터페이스, 전기 인터페이스 또는 이들의 조합일 수 있다. 본 출원의 이 실시예에서, 통신 인터페이스(1101)는 다른 디바이스와 통신하기 위해 데이터 전송 디바이스(1100)에 의해 사용될 수 있다.
특정 구현에서, 일 실시예에서, 프로세서(1102)는 하나 이상의 CPU를 포함할 수 있다. 각각의 프로세서는 싱글 코어(single-CPU) 프로세서일 수도 있고, 멀티 코어(multi-CPU) 프로세서일 수도 있다. 여기에서 프로세서는 데이터(예: 컴퓨터 프로그램 명령어)를 처리하도록 구성된 하나 이상의 장치, 회로 및/또는 처리 코어일 수 있다.
구체적인 구현에서, 일 실시예에서, 데이터 전송 디바이스(1100)는 복수의 프로세서를 포함할 수 있다. 각각의 프로세서는 싱글 코어 프로세서(single-CPU) 또는 멀티 코어 프로세서(multi-CPU)일 수 있다. 여기에서 프로세서는 데이터(예: 컴퓨터 프로그램 명령어)를 처리하도록 구성된 하나 이상의 장치, 회로 및/또는 처리 코어일 수 있다.
구체적인 구현예에서, 일 실시예에서, 데이터 전송 디바이스(1100)는 출력 디바이스 및 입력 디바이스를 대안적으로 포함할 수 있다. 출력 디바이스는 프로세서(1102)와 통신하고, 복수의 방식으로 정보를 표시할 수 있다. 예를 들어, 출력 디바이스는 액정 디스플레이(liquid crystal display, LCD), 발광 다이오드(light-emitting diode, LED) 표시 디바이스, 음극선관(cathode ray tube, CRT) 표시 디바이스, 또는 프로젝터(projector)일 수 있다. 입력 디바이스는 프로세서(1102)와 통신하고, 복수의 방식으로 사용자에 의한 입력을 수신할 수 있다. 예를 들어, 입력 디바이스는 마우스, 키보드, 터치 스크린 디바이스 또는 감지 디바이스일 수 있다.
일부 실시예에서, 메모리(1103)는 본 출원의 솔루션을 수행하기 위한 프로그램 코드를 저장하도록 구성되고, 프로세서(1102)는 메모리(1103)에 저장된 프로그램 코드를 실행할 수 있다. 즉, 데이터 전송 디바이스(1100)는 프로세서(1102) 및 메모리(1103)의 프로그램 코드를 사용하여 방법 실시예에서 제공되는 데이터 전송 방법을 구현할 수 있다. 프로그램 코드는 하나 이상의 소프트웨어 모듈을 포함할 수 있다. 선택적으로 프로세서(1102)는 본 출원의 솔루션을 수행하기 위한 프로그램 코드 또는 명령어를 저장할 수 있다.
구체적인 실시예에서, 본 출원의 이 실시예의 데이터 전송 디바이스(1100)는 전술한 방법 실시예의 제1 칩을 포함할 수 있다. 데이터 전송 디바이스(1100)의 프로세서(1102)는 메모리(1103)의 프로그램 코드 또는 프로세서(1102)에 저장된 프로그램 코드 또는 명령어를 판독하여, 도 11에 도시된 데이터 전송 디바이스(1100)가 제1 칩에 의해 수행되는 모든 또는 일부 동작을 수행할 수 있다.
구체적인 실시예에서, 본 출원의 이 실시예의 데이터 전송 디바이스(1100)는 전술한 방법 실시예의 제3 칩을 포함한다. 데이터 전송 디바이스(1100)의 프로세서(1102)는 메모리(1103)의 프로그램 코드 또는 프로세서(1102)에 저장된 프로그램 코드 또는 명령어를 판독하여, 도 11에 도시된 데이터 전송 디바이스(1100)가 제3 칩에 의해 수행되는 모든 또는 일부 동작을 수행할 수 있다.
데이터 전송 디바이스(1100)는 도 9 및 10에 도시된 장치들에 더 대응될 수 있다. 도 9 및 10에 도시된 장치의 각각의 기능 모듈은 데이터 전송 디바이스(1100)의 소프트웨어를 이용하여 구현된다. 즉, 도 9 및 10에 도시된 장치에 포함된 기능 모듈은 데이터 전송 디바이스(1100)의 프로세서(1102)가 메모리(1103)에 저장된 프로그램 코드를 판독한 후에 생성된다.
도 2에 도시된 데이터 전송 방법의 단계는 데이터 전송 디바이스(1100)는 데이터 전송 디바이스(1100)의 프로세서에서 하드웨어의 집적 로직 회로 또는 소프트웨어 형태의 명령어를 사용하여 완성된다. 본 출원의 실시예를 참조하여 개시된 방법의 단계는 하드웨어 프로세서에 의해 직접 수행될 수 있거나, 프로세서 내의 하드웨어와 소프트웨어 모듈의 조합을 사용하여 수행될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리, 플래시 메모리, 판독 전용 메모리, 프로그래밍 가능한 판독 전용 메모리, 전기적으로 소거 가능한 프로그래밍 가능한 메모리 또는 레지스터와 같은 이 분야의 완성된 저장 매체에 위치할 수 있다. 저장 매체는 메모리에 위치하며 프로세서는 메모리의 정보를 읽고 프로세서의 하드웨어와 결합하여 전술한 방법의 단계를 수행한다. 반복을 피하기 위해 자세한 내용은 여기서 다시 설명하지 않는다.
본 출원의 실시예는 데이터 전송 시스템을 더 제공한다. 시스템은 제1 데이터 전송 디바이스 및 제2 데이터 전송 디바이스를 포함한다. 제1 데이터 전송 디바이스는 도 2에 도시된 제1 칩에 의해 수행되는 방법을 수행하도록 구성되고, 제2 데이터 전송 디바이스는 도 2에 도시된 제3 칩에 의해 수행되는 방법을 수행하도록 구성된다.
시스템에서 제1 데이터 전송 디바이스와 제2 데이터 전송 디바이스의 기능에 대해서는 도 2의 관련 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
프로세서는 중앙 처리 장치(central processing unit, CPU)일 수도 있고, 또 다른 범용 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그래밍 가능 게이트 어레이(field-programmable gate array, FPGA) 또는 다른 프로그래밍 가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스, 이산 하드웨어 컴포넌트 등일 수도 있다. 범용 프로세서는 마이크로프로세서 또는 임의의 기존 프로세서일 수 있다. 프로세서는 진보된 축소 명령어 세트 컴퓨팅 기계(advanced RISC machine, ARM) 아키텍처를 지원하는 프로세서일 수 있음에 유의해야 한다.
또한, 선택적 실시예에서, 메모리는 판독 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세서에 명령어 및 데이터를 제공할 수 있다. 메모리는 비휘발성 랜덤 액세스 메모리를 더 포함할 수 있다. 예를 들어, 메모리는 디바이스 타입에 대한 정보를 더 저장할 수 있다.
메모리는 휘발성 메모리 또는 비휘발성 메모리일 수 있으며, 휘발성 메모리와 비휘발성 메모리를 모두 포함할 수 있다. 비휘발성 메모리는 판독 전용 메모리(read-only memory, ROM), 프로그램 가능한 판독 전용 메모리(programmable ROM, PROM), 소거 가능한 프로그램 가능한 판독 전용 메모리(erasable PROM, EPROM), 전기적으로 소거 가능한 프로그램 가능한 판독 전용 메모리(electrically EPROM, EEPROM) 또는 플래시 메모리일 수 있다. 휘발성 메모리는 외부 캐시로서 사용되는 랜덤 액세스 메모리(random access memory, RAM)일 수 있다. 제한 없는 예로서, 많은 형태의 RAM, 예를 들어 정적 랜덤 액세스 메모리(static RAM, SRAM), 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 동기식 동적 랜덤 액세스 메모리(synchronous DRAM, SDRAM), 더블 데이터 속도 동기식 동적 랜덤 액세스 메모리(double data rate SDRAM, DDR SDRAM), 향상된 동기식 동적 랜덤 액세스 메모리(enhanced SDRAM, ESDRAM), synchlink 동적 랜덤 액세스 메모리(synchlink DRAM), SLDRAM) 및 다이렉트 램버스 랜덤 액세스 메모리(direct rambus RAM, DR RAM)가 사용될 수 있다.
컴퓨터 판독 가능한 저장 매체가 더 제공된다. 저장 매체는 적어도 하나의 프로그램 명령어 또는 코드를 저장하고, 프로그램 명령어 또는 코드가 프로세서에 의해 로드되고 실행될 때, 컴퓨터가 인에이블되어 도 2에 도시된 데이터 전송 방법을 구현한다.
본 출원은 컴퓨터 프로그램을 제공한다. 컴퓨터 프로그램이 컴퓨터에 의해 실행될 때, 프로세서 또는 컴퓨터가 인에이블되어 전술한 방법 실시예에서 대응하는 단계 및/또는 절차를 수행한다.
칩이 제공된다. 칩은 메모리로부터 메모리에 저장된 명령어를 호출하고 명령어를 실행하도록 구성된 프로세서를 포함하여 칩이 설치된 디바이스가 전술한 측면의 방법을 수행한다.
다른 칩이 제공된다. 칩에는 입력 인터페이스, 출력 인터페이스, 프로세서 및 메모리가 포함된다. 입력 인터페이스, 출력 인터페이스, 프로세서 및 메모리는 내부 연결 경로를 사용하여 서로 연결된다. 프로세서는 메모리에서 코드를 실행하도록 구성된다. 코드가 실행될 때, 프로세서는 전술한 측면의 방법을 수행하도록 구성된다.
디바이스가 제공되고, 전술한 솔루션 중 어느 하나의 칩을 포함한다.
디바이스가 제공되고, 디바이스는 전술한 솔루션 중 어느 하나의 제1 칩 및/또는 전술한 솔루션 중 어느 하나의 제3 칩을 포함한다.
일부 실시예에서, 도 1 내지 도 8에서, 제2 칩은 송신측 디바이스, 예를 들어 라우터, 스위치 또는 서버 내의 물리 계층(PHY) 칩일 수 있고, 제1 칩은 송신측 디바이스의 인터페이스, 예를 들어, 광학 모듈의 칩 또는 CDR/리타이머 칩일 수 있다. 제3 칩은 수신측 장치의 인터페이스, 예를 들어 광 모듈 내의 칩 또는 CDR/리타이머 칩일 수 있고, 제4 칩은 수신측 장치 내의 물리 계층(PHY) 칩일 수 있다. PHY 칩은 컴퓨팅 디바이스의 보드에 위치하는 칩일 수 있으며, 칩은 CPU, 네트워크 프로세서(network processor, NP), 신경망 처리 장치(neural network processing unit, NPU), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 프로그래머블 로직 컨트롤러(programmable logic controller, PLC) 등, 또는 이들의 조합일 수 있다.
일부 실시예에서, 제1 칩은 AUI를 사용하여 제2 칩과 통신한다. 일부 실시예들에서, 제3 칩은 AUI를 사용하여 제4 칩과 통신한다.
전술한 실시예에서, 소프트 디코딩 동안, 먼저, 수신된 양자화된 연판정 정보에 기초하여 수신된 코드워드에서 각 비트의 신뢰도(신뢰성(reliability)이라고도 함)를 계산하여 신뢰 시퀀스를 획득하는 단계; 신뢰 시퀀스에서 M개의 가장 신뢰할 수 없는 비트 위치를 선택하고 M개의 가장 신뢰할 수 없는 비트 위치에서 연속적으로 0, 1, 2, ... 및 N(N ≤ M) 비트 위치의 모든 조합에 대해 비트 반전 수행을 시도하여 복수의 테스트 코드워드를 획득하는 단계; 각각의 테스트 코드워드에 대해 경판정 디코딩 오류 수정(hard-decision decoding error correction)을 수행하는 단계; 그런 다음 신뢰 시퀀스와 모든 수정된 테스트 코드워드 사이의 유클리드 거리를 계산하는 단계; 및 가장 짧은 거리에 대응하는 수정된 테스트 코드워드를 최종 수정 코드워드 출력으로 선택하는 단계를 포함한다. 테스트 코드워드에 수정 가능한 코드워드가 없으면 원래 수신된 코드워드에 대응하는 경판정 결과를 출력 코드워드로서 사용한다.
전술한 실시예의 전부 또는 일부는 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 실시예를 구현하기 위해 소프트웨어가 사용되는 경우, 실시예의 전부 또는 일부는 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령어를 포함한다. 컴퓨터 프로그램 명령어가 컴퓨터에서 로드되고 실행될 때 본 출원에 따른 절차 또는 기능이 전부 또는 부분적으로 생성된다. 컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크 또는 기타 프로그래밍 가능한 장치일 수 있다. 컴퓨터 명령어는 컴퓨터로 읽을 수 있는 저장 매체에 저장되거나, 컴퓨터로 읽을 수 있는 저장 매체에서 다른 컴퓨터로 읽을 수 있는 저장 매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령어는 웹사이트, 컴퓨터, 서버 또는 데이터 센터에서 다른 웹사이트, 컴퓨터, 서버 또는 데이터 센터로 유선(예: 동축 케이블, 광섬유 또는 디지털 가입자 라인) 또는 무선(예: 적외선, 라디오 또는 마이크로웨이브) 방식으로 전송될 수 있다. 컴퓨터로 읽을 수 있는 저장 매체는 하나 이상의 사용 가능한 매체를 통합한 컴퓨터 또는 데이터 저장 장치, 예를 들어 서버 또는 데이터 센터에 의해 액세스 가능한 모든 사용 가능한 매체일 수 있다. 사용 가능한 매체는 자기 매체(예: 플로피 디스크, 하드 디스크, 자기 테이프), 광학 매체(예: DVD), 반도체 매체(예: 솔리드 스테이트 드라이브(solid-state drive)) 등이 있다.
전술한 특정 구현에서, 본 출원의 목표, 기술 솔루션 및 유익한 효과에 대해 자세히 설명한다. 전술한 설명은 본 출원의 특정 구현에 불과하며 본 출원의 보호 범위를 제한하기 위한 것이 아니라는 점을 이해해야 한다. 본 출원의 기술 솔루션을 기반으로 한 모든 수정, 동등한 교체, 개선 등은 본 출원의 보호 범위에 속한다.
당업자는 본 명세서에 개시된 실시예를 참조하여 방법 단계 및 모듈이 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합을 사용하여 구현될 수 있음을 알 수 있다. 하드웨어와 소프트웨어 간의 호환성을 명확하게 설명하기 위해, 각 실시예의 단계 및 구성은 기능에 기초하여 일반적으로 설명되었다. 이러한 기능이 하드웨어 방식으로 수행되는지 소프트웨어 방식으로 수행되는지 여부는 기술 솔루션의 특정 애플리케이션 및 설계 제약 조건에 따라 다르다. 당업자는 각각의 특정 애플리케이션에 대해 설명된 기능을 구현하기 위해 상이한 방법을 사용할 수 있지만, 구현이 본 출원의 범위를 벗어나는 것으로 간주되어서는 안 된다.
당업자는 실시예의 단계의 전부 또는 일부가 하드웨어 또는 관련 하드웨어에 지시하는 프로그램에 의해 구현될 수 있음을 이해할 수 있다. 프로그램은 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있다. 저장 매체는 판독 전용 메모리, 자기 디스크 또는 광 디스크를 포함할 수 있다.
실시예를 구현하기 위해 소프트웨어가 사용되는 경우, 실시예의 전부 또는 일부는 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 프로그램 명령어를 포함한다. 예를 들어, 본 출원의 실시예에서의 방법은 기계 실행 가능 명령어의 맥락에서 설명될 수 있다. 기계 실행 가능 명령어는 예를 들어 대상의 실제 또는 가상 프로세서의 장치에서 실행되는 프로그램 모듈에 포함된다. 일반적으로 프로그램 모듈은 루틴, 프로그램, 라이브러리, 객체, 클래스, 컴포넌트, 데이터 구조 등을 포함하고, 특정 작업을 실행하거나 특정 추상 데이터 구조를 구현한다. 다양한 실시예에서, 프로그램 모듈의 기능은 설명된 프로그램 모듈들 간에 결합되거나 분할될 수 있다. 프로그램 모듈에 대한 기계 실행 가능 명령어는 로컬로 또는 분산 디바이스 내에서 실행될 수 있다. 분산 디바이스에서 프로그램 모듈은 로컬 저장 매체와 원격 저장 매체 모두에 위치할 수 있다.
본 출원의 실시예에서 방법을 구현하는 데 사용되는 컴퓨터 프로그램 코드는 하나 이상의 프로그래밍 언어로 작성될 수 있다. 컴퓨터 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 장치의 프로세서를 위해 제공될 수 있어서, 프로그램 코드가 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 장치에 의해 실행될 때, 순서도 및/또는 블록 다이어그램에 지정된 기능/동작 이 구현된다. 프로그램 코드는 모두 컴퓨터 상에서, 부분적으로 컴퓨터 상에서, 독립 소프트웨어 패키지로서, 부분적으로는 컴퓨터 상에서 부분적으로는 원격 컴퓨터 상에서, 또는 모두 원격 컴퓨터나 서버 상에서 실행될 수 있다.
본 출원의 실시예의 맥락에서, 컴퓨터 프로그램 코드 또는 관련 데이터는 디바이스, 장치, 또는 프로세서가 위에서 설명한 다양한 처리 및 동작을 수행할 수 있도록 임의의 적절한 캐리어에 의해 운반될 수 있다. 예를 들어, 반송파는 신호, 컴퓨터 판독 가능 매체 등을 포함한다.
예를 들어, 신호는 전기, 광학, 라디오, 사운드 또는 반송파 및 적외선 신호와 같은 다른 형태의 전파 신호를 포함할 수 있다.
기계 판독 가능 매체는 명령어 실행 시스템, 장치 또는 디바이스에 사용되거나 이와 관련된 프로그램을 포함하거나 저장하는 임의의 유형의 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스 또는 이들의 적절한 임의의 조합을 포함할 수 있지만 이에 제한되지 않는다. 기계 판독 가능 저장 매체의 보다 구체적인 예로는 하나 이상의 와이어의 전기적 연결, 휴대용 컴퓨터 디스크, 하드디스크, RAM(Random Access Memory), ROM(Read-Only Memory), 소거 가능한 프로그램 가능한 판독 전용 메모리(EPROM 또는 플래시 메모리), 광학 저장 장치, 자기 저장 장치 또는 이들의 적절한 임의의 조합을 포함할 수 있다.
전술한 시스템, 디바이스 및 모듈의 상세한 작업 프로세스는 편리하고 간략한 설명을 위해 당업자라면 상술한 방법 실시예에서의 대응하는 프로세스를 참조하여 명백히 이해할 수 있을 것이다. 자세한 내용은 여기에서 설명하지 않는다.
본 출원에서 제공된 여러 실시예에서, 개시된 시스템, 디바이스 및 방법이 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 기술된 디바이스 실시예는 단지 예일뿐이다. 예를 들어, 모듈 분할은 논리적인 기능 분할일 뿐 실제 구현 시에는 다른 분할이 될 수 있다. 예를 들어, 복수의 모듈이나 컴포넌트가 다른 시스템에 결합 또는 통합되거나 일부 기능이 생략되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 통해 구현될 수 있으며, 디바이스 또는 모듈 간의 간접 결합 또는 통신 연결은 전기적 연결, 기계적 연결 또는 다른 형태의 연결일 수 있다.
별도의 부분으로 설명된 모듈은 물리적으로 분리될 수도 있고 분리되지 않을 수도 있으며, 모듈로 디스플레이되는 부분은 물리적인 모듈일 수도 있고 아닐 수도 있으며, 한 곳에 위치하거나 복수의 네트워크 모듈에 분산되어 있을 수도 있다. 일부 또는 모든 모듈은 본 출원의 실시예에서 솔루션의 목적을 달성하기 위해 실제 요구 사항을 기반으로 선택될 수 있다.
또한, 본 출원의 실시예에서의 기능 모듈은 하나의 처리 모듈로 통합될 수 있거나, 각각의 모듈은 물리적으로 단독으로 존재할 수 있거나, 둘 이상의 모듈이 하나의 모듈로 통합될 수 있다. 통합 모듈은 하드웨어 형태로 구현될 수도 있고, 소프트웨어 기능 모듈 형태로 구현될 수도 있다.
통합 모듈이 소프트웨어 기능 모듈 형태로 구현되어 독립된 제품으로 판매 또는 사용되는 경우, 통합 모듈은 컴퓨터로 읽을 수 있는 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로 본 출원의 본질적인 기술 솔루션 또는 관련 기술에 기여하는 부분 또는 기술 솔루션의 전부 또는 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되며 컴퓨터 디바이스(개인용 컴퓨터, 서버, 네트워크 디바이스 등일 수 있음)가 본 출원의 실시예의 방법의 모든 단계 또는 일부 단계를 수행하게 하는 몇 가지 명령어를 포함한다. 전술한 저장 매체는 USB 플래시 드라이브, 이동식 하드 디스크, 판독 전용 메모리(read-only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 자기 디스크 또는 광 디스크와 같이 프로그램 코드를 저장할 수 있는 모든 매체를 포함한다.
본 출원에서 "제1", "제2" 등의 용어는 기본적으로 동일한 효과 및 기능을 갖는 동일 또는 유사 항목을 구별하기 위해 사용된다. "제1", "제2" 및 "n번째" 사이에는 논리적 또는 시간 순서 종속성이 없으며 수량 및 실행 순서가 제한되지 않음을 이해해야 한다. 또한, 이하의 설명에서는 "제1" 및 "제2"와 같은 용어를 사용하여 다양한 요소를 설명하지만, 이러한 요소가 용어에 의해 제한되어서는 안 됨을 이해해야 한다. 이러한 용어는 단지 한 요소를 다른 요소와 구별하기 위해 사용된다. 예를 들어, 다양한 예의 범위에서 벗어나지 않고, 제1 네트워크 디바이스는 제2 네트워크 디바이스로 지칭될 수 있다. 유사하게, 제2 네트워크 디바이스는 제1 네트워크 디바이스로 지칭될 수 있다. 제1 네트워크 디바이스와 제2 네트워크 디바이스는 모두 네트워크 디바이스일 수 있으며, 경우에 따라서는 별개의 다른 네트워크 디바이스일 수도 있다.
프로세스의 시퀀스 번호는 본 출원의 실시예에서 실행 시퀀스를 의미하지 않음을 추가로 이해해야 한다. 프로세스의 실행 순서는 프로세스의 기능 및 내부 로직에 따라 결정되어야 하며, 본 출원 실시예의 구현 프로세스에 대한 제한으로 해석되어서는 안 된다.
본 출원에서 용어 "적어도 하나"는 하나 이상을 의미하고, 용어 "복수"는 둘 이상을 의미한다. 예를 들어, 복수의 제2 패킷은 2개 이상의 제2 패킷을 의미한다. "시스템" 및 "네트워크"라는 용어는 본 명세서에서 상호교환적으로 사용될 수 있다.
본 명세서에서 다양한 실시예의 설명에 사용된 용어는 단지 특정한 예를 설명하기 위해 사용된 것으로, 한정적이 아닌 것으로 이해되어야 한다. 다양한 예의 설명 및 첨부된 특허청구범위에서 사용되는 단수형의 "일(one)"("a" 및 "an") 및 "그(the)"라는 문맥에서 명확하게 달리 특정되지 않는 한 복수형을 포함하는 것으로 의도된다.
"포함하다"(또는 "함유하다", "함유하는", "포함하다" 및/또는 "포함하는")라는 용어는 본 명세서에서 사용될 때 언급된 특징, 인티저(integer), 단계, 동작, 요소 및/또는 컴포넌트의 존재를 지정하는 것으로 추가로 이해되어야 하지만 하나 이상의 다른 특징, 인티저, 단계, 동작, 요소, 컴포넌트 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다.
용어 "만일"은 "~할 때"("~할 때" 또는 "~시"), "결정에 응답하여" 또는 "검출에 응답하여"의 의미로 해석될 수 있음을 추가로 이해해야 한다. 마찬가지로, 문맥에서 "~라고 판단되면" 또는 "(언급된 조건 또는 이벤트)가 검출되면"이라는 문구는 "~라고 판단되는 때" 또는 "결정에 대한 응답으로" 또는 "(언급된 조건 또는 이벤트)가 검출될 때" 또는 "(언급된 조건 또는 이벤트) 검출에 대한 응답으로"의 의미로 해석될 수 있다.
A에 기초하여 B를 결정한다는 것은 A에만 기초하여 B를 결정한다는 의미가 아니라 B가 A 및/또는 다른 정보에 기초하여 결정될 수 있다는 것을 이해해야 한다.
또한, 본 명세서 전반에 걸쳐 언급된 "일 실시예", "실시예" 또는 "가능한 구현"은 실시예 또는 구현과 관련된 특정 특징, 구조 또는 특성이 본 출원의 적어도 하나의 실시예에 포함됨을 의미하는 것으로 이해되어야 한다. 따라서, 본 명세서 전반에 걸쳐 나타나는 "일 실시예에서", "실시예에서" 또는 "가능한 구현에서"가 반드시 동일한 실시예를 의미하는 것은 아니다. 또한, 이들 특정 특징, 구조 또는 특성은 임의의 적절한 방식을 사용하여 하나 이상의 실시예에서 결합될 수 있다.

Claims (34)

  1. 데이터 전송 방법으로서,
    제1 칩에 의해, 제1 순방향 오류 수정(forward error correction, FEC) 코드 타입을 사용하여 코딩하여 획득한 데이터인 제1 데이터를 획득하는 단계와,
    상기 제1 칩의 기준 클록 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 단계와,
    상기 제1 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제1 데이터를 코딩하여 제2 데이터를 획득하는 단계와,
    상기 제1 칩에 의해, 상기 제2 데이터를 전송하는 단계를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 제1 칩의 기준 클럭 주파수, 상기 제1 FEC 코드 타입에 대응하는 출력 속도, 상기 제2 데이터의 코드워드 길이(codeword length) 및 상기 제2 데이터의 코드워드 내의 정보 길이가 오버헤드 비례 관계(overhead proportional relationship)를 만족하고,
    상기 제1 칩의 기준 클록 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 단계는,
    상기 제1 칩의 기준 클록 주파수, 상기 제1 FEC 코드 타입에 대응하는 출력 속도 및 상기 오버헤드 비례 관계에 기초하여 상기 제2 FEC 코드 타입을 결정하는 것을 포함하는,
    방법.
  3. 제2항에 있어서,
    상기 오버헤드 비례 관계는,
    를 포함하고,
    n은 상기 제2 데이터의 코드워드 길이, k는 상기 제2 데이터의 코드워드 내 정보 길이, v1은 상기 제1 FEC 코드 타입에 대응하는 출력 속도, p는 조정 파라미터, f는 상기 제1 칩의 기준 클럭 주파수이고, p는 양의 정수인,
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제2 데이터의 코드워드의 길이는 상기 제2 데이터가 분배되는 로직 채널의 수량과 정수배 관계에 있는,
    방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제1 데이터를 코딩하여 제2 데이터를 획득하는 단계는,
    상기 제1 칩에 의해, 상기 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하는 것, 및 상기 제1 칩에 의해 상기 제2 FEC 코드 타입에 따라 상기 복수의 제1 서브데이터를 개별적으로 코딩하여 복수의 제2 서브데이터를 획득하는 것을 포함하고,
    상기 제1 칩에 의해, 상기 제2 데이터를 전송하는 단계는,
    상기 제1 칩에 의해, 상기 복수의 제2 서브데이터를 전송하는 것을 포함하는,
    방법.
  6. 제5항에 있어서,
    상기 제1 칩에 의해, 상기 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하는 단계는,
    상기 제1 칩에 의해, 상기 제1 데이터를 물리적 코딩 부계층(physical coding sublayer, PCS) 채널을 통해 분배하여 상기 복수의 제1 서브데이터를 획득하는 것, 또는
    상기 제1 칩에 의해, 상기 제1 데이터 스트림을 물리적 매체 부착 부계층(physical medium attachment sublayer, PMA)을 통해 분배하여 상기 복수의 제1 서브데이터를 획득하는 것을 포함하는,
    방법.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 칩에 의해, 상기 제2 데이터를 전송하는 단계는,
    상기 제1 칩에 의해, 상기 제2 데이터를 분배하여 복수의 제3 서브데이터를 획득하는 것, 및 상기 복수의 제3 서브데이터를 복수의 로직 채널을 통해 전송하는 것을 포함하는,
    방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 칩의 기준 클럭 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하기 전에, 상기 방법은,
    상기 제1 칩에 의해, 상기 제1 칩이 송신한 데이터를 수신하는 제3 칩과 자동 협상(auto-negotiation)을 수행하는 단계와,
    연결 코딩(concatenated coding)이 필요하다고 나타내는 자동 협상 결과에 응답하여, 상기 제1 칩에 의해, 상기 제1 칩의 기준 클럭 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하는 단계를 수행하는 단계를 더 포함하는,
    방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 제1 데이터는 상기 제1 칩 내부의 데이터이거나, 상기 제1 데이터는 상기 제1 칩에서 수신되고 제2 칩에서 송신되는 데이터인,
    방법.
  10. 데이터 전송 방법으로서,
    제3 칩에 의해, 제2 데이터를 수신하는 단계 - 싱기 제2 데이터는 제1 데이터를 제2 순방향 오류 수정(FEC) 코드 타입을 사용하여 코딩에 의해 획득된 데이터이고, 상기 제1 데이터는 제1 FEC 코드 타입을 사용하여 코딩을 통해 획득됨 - 와,
    상기 제3 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터를 디코딩하여 디코딩된 데이터를 획득하는 단계를 포함하는,
    방법.
  11. 제10항에 있어서,
    상기 제3 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터를 디코딩하는 것은,
    상기 제3 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터에 대해 연판정 디코딩(soft-decision decoding)을 수행하는 것을 포함하는,
    방법.
  12. 제11항에 있어서,
    상기 제3 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터에 대해 연판정 디코딩을 수행하는 것은,
    수신된 양자화된 연판정 정보에 기초하여 수신된 코드워드의 각각의 비트의 신뢰도(confidence)를 계산하여 신뢰 시퀀스를 획득하는 것과,
    상기 신뢰 시퀀스에서 M개의 가장 신뢰할 수 없는 비트 위치(least reliable bit location)를 선택하고 상기 M개의 가장 신뢰할 수 없는 비트 위치에서 연속적으로 0, 1, 2, ... 및 N(N ≤ M) 비트 위치의 모든 조합에 대해 비트 반전(bitwise inversion)을 수행하도록 시도하여 복수의 테스트 코드워드를 획득하는 것과,
    각각의 테스트 코드워드에 대해 경판정 디코딩 오류 수정(hard-decision decoding error correction)을 수행하는 것과,
    상기 신뢰 시퀀스와 모든 수정된 테스트 코드워드 사이의 유클리드 거리(Euclidean distance)를 계산하는 것과,
    가장 짧은 거리에 대응하는 수정된 테스트 코드워드를 최종 수정 코드워드 출력으로 선택하는 것을 포함하는,
    방법.
  13. 제12항에 있어서,
    상기 제3 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터에 대해 연판정 디코딩를 수행하는 것은,
    상기 테스트 코드워드에 수정가능한 코드워드가 존재하지 않는 경우, 원래 수신된 코드워드에 대응하는 경판정 결과를 출력 코드워드로서 사용하는 것을 포함하는,
    방법.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 제3 칩에 의해, 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터를 디코딩하여 디코딩된 데이터를 얻는 단계 이후에, 상기 방법은,
    상기 제3 칩에 의해, 제3 FEC 코드 타입에 기초하여 상기 디코딩된 데이터를 다시 코딩하고, 상기 다시 코딩된 데이터를 전송하는 것을 포함하는,
    방법.
  15. 제14항에 있어서,
    상기 제3 FEC 코드 타입은 상기 제2 FEC 코드 타입인,
    방법.
  16. 데이터 전송 장치로서,
    제1 순방향 오류 수정(FEC) 코드 타입을 사용하여 코딩하여 획득한 데이터인 제1 데이터를 획득하도록 구성된 획득 모듈과,
    제1 칩의 기준 클록 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 제2 FEC 코드 타입을 결정하도록 구성된 결정 모듈과,
    상기 제2 FEC 코드 타입에 기초하여 상기 제1 데이터를 코딩하여 제2 데이터를 획득하도록 구성된 코딩 모듈과,
    상기 제2 데이터를 전송하도록 구성된 전송 모듈을 포함하는,
    데이터 전송 장치.
  17. 제16항에 있어서,
    상기 제1 칩의 기준 클럭 주파수, 상기 제1 FEC 코드 타입에 대응하는 상기 출력 속도, 상기 제2 데이터의 코드워드 길이 및 상기 제2 데이터의 코드워드 내의 정보 길이가 오버헤드 비례 관계를 만족하고,
    상기 결정 모듈은 상기 제1 칩의 기준 클록 주파수, 상기 제1 FEC 코드 타입에 대응하는 출력 속도 및 상기 오버헤드 비례 관계에 기초하여 상기 제2 FEC 코드 타입을 결정하도록 구성되는,
    데이터 전송 장치.
  18. 제17항에 있어서,
    상기 오버헤드 비례 관계는,
    를 포함하고,
    n은 상기 제2 데이터의 코드워드 길이, k는 상기 제2 데이터의 상기 코드워드 내 정보 길이, v1은 상기 제1 FEC 코드 타입에 대응하는 출력 속도, p는 조정 파라미터, f는 상기 제1 칩의 기준 클럭 주파수이고, p는 양의 정수인,
    데이터 전송 장치.
  19. 제16항 내지 제18항 중 어느 한 항에 있어서,
    상기 제2 데이터의 코드워드 길이는 상기 제2 데이터가 분배되는 로직 채널의 수량과 정수배의 관계에 있는,
    데이터 전송 장치.
  20. 제16항 내지 제19항 중 어느 한 항에 있어서,
    상기 코딩 모듈은, 상기 제1 데이터를 분배하여 복수의 제1 서브데이터를 획득하고, 상기 제2 FEC 코드 타입에 기초하여 상기 복수의 제1 서브데이터를 개별적으로 코딩하여 복수의 제2 서브데이터를 획득하도록 구성되며,
    상기 전송 모듈은 상기 복수의 제2 서브데이터를 전송하도록 구성되는,
    데이터 전송 장치.
  21. 제20항에 있어서,
    상기 코딩 모듈은 물리적 코딩 부계층(physical coding sublayer, PCS) 채널을 통해 상기 제1 데이터를 분배하여 상기 복수의 제1 서브데이터를 획득하거나, 또는 물리적 매체 부착 부계층(physical medium attachment sublayer, PMA)을 통해 상기 제1 데이터 스트림을 분배하여 상기 복수의 제1 서브데이터를 획득하도록 구성되는,
    장치.
  22. 제16항 내지 제19항 중 어느 한 항에 있어서,
    상기 전송 모듈은, 상기 제2 데이터를 분배하여 복수의 제3 서브데이터를 획득하고, 상기 복수의 제3 서브데이터를 복수의 로직 채널을 통해 송신하도록 구성되는,
    장치.
  23. 제16항 내지 제22항 중 어느 한 항에 있어서,
    상기 제1 칩에 의해 송신된 데이터를 수신하는 제3 칩과 자동 협상을 수행하도록 구성된 자동 협상 모듈을 더 포함하고,
    연결 코딩(concatenated coding)이 필요하다는 것을 나타내는 자동 협상 결과에 응답하여, 상기 결정 모듈은 상기 제1 칩의 기준 클록 주파수 및 상기 제1 FEC 코드 타입에 대응하는 출력 속도에 기초하여 상기 제2 FEC 코드 타입을 결정하는,
    장치.
  24. 제16항 내지 제23항 중 어느 한 항에 있어서,
    상기 제1 데이터는 상기 제1 칩 내부의 데이터이거나, 상기 제1 데이터는 상기 제1 칩에 의해 수신되고 제2 칩에 의해 송신되는 데이터인,
    장치.
  25. 데이터 전송 장치로서,
    제2 순방향 오류 수정(FEC) 코드 타입을 사용하여 제1 데이터를 코딩하여 획득한 데이터인 제2 데이터를 수신하도록 구성된 수신 모듈과,
    디코딩된 데이터를 획득하기 위해 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터를 디코딩하도록 구성된 디코딩 모듈을 포함하는,
    장치.
  26. 제25항에 있어서,
    상기 디코딩 모듈은 상기 디코딩된 데이터를 획득하기 위해 상기 제2 FEC 코드 타입에 기초하여 상기 제2 데이터에 대해 연판정 디코딩을 수행하도록 구성되는,
    장치.
  27. 제26항에 있어서,
    상기 디코딩 모듈은,
    수신된 양자화된 연판정 정보에 기초하여 수신된 코드워드의 각각의 비트의 신뢰도를 계산하여 신뢰 시퀀스를 획득하고,
    상기 신뢰 시퀀스에서 M개의 가장 신뢰할 수 없는 비트 위치를 선택하고 0, 1, 2, ... 및 N(N ≤ M) 비트 위치의 모든 조합에 대해 비트 반전을 수행하도록 연속적으로 시도하여 복수의 테스트 코드워드를 획득하며,
    각각의 테스트 코드워드에 대해 경판정 디코딩 오류 수정을 수행하고,
    상기 신뢰 시퀀스와 모든 수정된 테스트 코드워드 사이의 유클리드 거리를 계산하며,
    최종 수정된 코드워드 출력으로서 최소 거리에 대응하는 수정된 테스트 코드워드를 선택하는,
    장치.
  28. 제27항에 있어서,
    상기 디코딩 모듈은, 상기 테스트 코드워드에 수정 가능한 코드워드가 없는 경우, 원래 수신된 코드워드에 대응하는 경판정 결과를 출력 코드워드로 사용하도록 더 구성되는,
    장치.
  29. 제25항 내지 제28항 중 어느 한 항에 있어서,
    상기 장치는
    제3 FEC 코드 타입에 기초하여 상기 디코딩된 데이터를 다시 코딩하도록 구성된 코딩 모듈과,
    상기 다시 코딩된 데이터를 전송하도록 구성된 전송 모듈을 더 포함하는,
    장치.
  30. 제29항에 있어서,
    상기 제3 FEC 코드 타입은 상기 제2 FEC 코드 타입인,
    장치.
  31. 데이터 전송 디바이스로서,
    프로세서를 포함하고,
    상기 프로세서는 메모리에 결합되고, 상기 메모리는 적어도 하나의 프로그램 명령어 또는 코드를 저장하며, 상기 적어도 하나의 프로그램 명령어 또는 코드는 상기 프로세서에 의해 로드되고 실행되어 상기 데이터 전송 디바이스가 제1항 내지 제15항 중 어느 한 항에 따른 방법을 구현하도록 하는,
    데이터 전송 디바이스.
  32. 데이터 전송 시스템으로서,
    상기 데이터 전송 시스템은 제1 데이터 전송 디바이스 및 제2 데이터 전송 디바이스를 포함하고, 상기 제1 데이터 전송 디바이스는 제1항 내지 제9항 중 어느 한 항에 따른 방법을 수행하도록 구성되고/되거나 상기 제2 데이터 전송 디바이스는 제10항 내지 제15항 중 어느 한 항에 따른 방법을 수행하도록 구성되는,
    데이터 전송 시스템.
  33. 적어도 하나의 프로그램 명령어 또는 코드를 포함하는 컴퓨터 판독 가능 저장 매체로서,
    상기 프로그램 명령어 또는 코드는 프로세서에 의해 로드되고 실행되어 컴퓨터가 제1항 내지 제15항 중 어느 한 항에 따른 방법을 구현하도록 하는,
    컴퓨터 판독 가능 저장 매체.
  34. 적어도 하나의 프로그램 명령어 또는 코드를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 프로그램 명령어 또는 코드는 프로세서에 의해 로드되고 실행되어 컴퓨터가 제1항 내지 제15항 중 어느 한 항에 따른 방법을 구현하도록 하는,
    컴퓨터 프로그램 제품.
KR1020237027975A 2021-01-25 2022-01-21 데이터 전송 방법, 장치, 디바이스, 시스템 및 컴퓨터판독 가능 저장 매체 KR20230129554A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN202110099748.1 2021-01-25
CN202110099748 2021-01-25
CN202110185631.5 2021-02-10
CN202110185631.5A CN114793148A (zh) 2021-01-25 2021-02-10 数据传输的方法、装置、设备、系统及可读存储介质
PCT/CN2022/073180 WO2022156767A1 (zh) 2021-01-25 2022-01-21 数据传输的方法、装置、设备、系统及计算机可读存储介质

Publications (1)

Publication Number Publication Date
KR20230129554A true KR20230129554A (ko) 2023-09-08

Family

ID=82460326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237027975A KR20230129554A (ko) 2021-01-25 2022-01-21 데이터 전송 방법, 장치, 디바이스, 시스템 및 컴퓨터판독 가능 저장 매체

Country Status (9)

Country Link
US (1) US20230370193A1 (ko)
EP (1) EP4274127A4 (ko)
JP (1) JP2024505862A (ko)
KR (1) KR20230129554A (ko)
CN (2) CN114793148A (ko)
AU (1) AU2022211512A1 (ko)
CA (1) CA3206435A1 (ko)
MX (1) MX2023008660A (ko)
WO (1) WO2022156767A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117938337A (zh) * 2022-10-24 2024-04-26 华为技术有限公司 一种数据处理方法和数据处理装置
CN118199792A (zh) * 2023-01-10 2024-06-14 华为技术有限公司 数据传输方法、装置、系统及计算机可读存储介质
CN118353575A (zh) * 2023-01-13 2024-07-16 华为技术有限公司 传输数据的方法、装置、设备、系统及存储介质
CN118487703A (zh) * 2023-02-13 2024-08-13 华为技术有限公司 物理层传输数据的方法、装置、系统、设备及芯片
CN118677566A (zh) * 2023-03-17 2024-09-20 华为技术有限公司 一种数据传输方法及相关装置
CN116303191B (zh) * 2023-05-15 2023-09-15 芯耀辉科技有限公司 一种晶片到晶片接口互联的方法、设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI104673B (fi) * 1997-10-24 2000-04-14 Nokia Mobile Phones Ltd Menetelmä signaalin datanopeuden muuntamiseksi ja lähetin
CN100466483C (zh) * 1998-06-05 2009-03-04 三星电子株式会社 用于速率匹配的发送机和方法
JP2005340916A (ja) * 2004-05-24 2005-12-08 Nec Corp 誤り訂正符号化装置
WO2012119398A1 (zh) * 2011-08-19 2012-09-13 华为技术有限公司 一种光传输模块和光信号传输装置
US9189329B1 (en) * 2011-10-13 2015-11-17 Marvell International Ltd. Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level
US9397786B2 (en) * 2012-02-20 2016-07-19 Tyco Electronics Subsea Communications Llc System and method including modified bit-interleaved coded modulation
US9450616B2 (en) * 2013-12-11 2016-09-20 Nec Corporation Adaptive coded-modulation for intelligent optical transport networks
US9432124B2 (en) * 2014-09-16 2016-08-30 Mitsubishi Electric Research Laboratories, Inc. Inter-channel interference management for optical super-channels
ES2852748T3 (es) * 2015-04-23 2021-09-14 Huawei Tech Co Ltd Método de tratamiento de datos y extremo de transmisión de datos
CN116032422A (zh) * 2019-05-15 2023-04-28 华为技术有限公司 一种数据传输方法和装置

Also Published As

Publication number Publication date
EP4274127A4 (en) 2024-10-23
EP4274127A1 (en) 2023-11-08
WO2022156767A1 (zh) 2022-07-28
AU2022211512A9 (en) 2024-09-19
AU2022211512A1 (en) 2023-08-10
CN117749323A (zh) 2024-03-22
CA3206435A1 (en) 2022-07-28
JP2024505862A (ja) 2024-02-08
US20230370193A1 (en) 2023-11-16
MX2023008660A (es) 2023-08-01
CN114793148A (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
KR20230129554A (ko) 데이터 전송 방법, 장치, 디바이스, 시스템 및 컴퓨터판독 가능 저장 매체
US11088782B2 (en) Use of a cyclic redundancy code multiple-input shift register to provide early warning and fail detection
US8407478B2 (en) Control message signature for device control
US9037941B2 (en) Systems and methods for error checking and correcting for memory module
US9450615B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
US20150089332A1 (en) Error detection and isolation
JP2006244259A (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US20160196179A1 (en) Reconfigurable ecc for memory
KR20090019819A (ko) 시행착오에 의한 에러 보정 디코딩
US10530396B2 (en) Dynamically adjustable cyclic redundancy code types
WO2023116229A1 (zh) 生成、处理以太帧的方法、装置、设备、系统及存储介质
US10530523B2 (en) Dynamically adjustable cyclic redundancy code rates
CN111130686A (zh) 业务数据处理方法及装置
US8312340B2 (en) Information processing device, data transmitting device, and data transfer method of data transmitting device
US9275758B2 (en) Error detection circuit and semiconductor integrated circuit using the same
US20240275574A1 (en) Data transmission method, apparatus, device, and system, and readable storage medium
US20240187130A1 (en) Data transmission method, apparatus, device, system, and readable storage medium
US20240356563A1 (en) Encoding method, decoding method, apparatus, device, system, and readable storage medium
WO2024148946A1 (zh) 数据传输方法、装置、系统及计算机可读存储介质
EP4443782A1 (en) Encoding method, decoding method, apparatus, device, system, and readable storage medium
US20240323927A1 (en) Channel coding method and apparatus
JP2005176244A (ja) スポッティバイト誤り訂正・検出方法及び装置
US20240089020A1 (en) Data transmission method, apparatus, and system, and computer-readable storage medium
US20240171309A1 (en) Data transmission apparatus and method of cross-domain data transmission
JP2006060465A (ja) スポッティバイト誤り訂正・検出方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination