KR102519480B1 - PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 - Google Patents

PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR102519480B1
KR102519480B1 KR1020210042642A KR20210042642A KR102519480B1 KR 102519480 B1 KR102519480 B1 KR 102519480B1 KR 1020210042642 A KR1020210042642 A KR 1020210042642A KR 20210042642 A KR20210042642 A KR 20210042642A KR 102519480 B1 KR102519480 B1 KR 102519480B1
Authority
KR
South Korea
Prior art keywords
margin
pcie device
lane
margining
port
Prior art date
Application number
KR1020210042642A
Other languages
English (en)
Other versions
KR20220136691A (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 에스케이하이닉스 주식회사
Priority to KR1020210042642A priority Critical patent/KR102519480B1/ko
Priority to US17/349,775 priority patent/US11546128B2/en
Priority to US17/350,945 priority patent/US11599495B2/en
Priority to CN202110782305.2A priority patent/CN115185875A/zh
Priority to TW110131670A priority patent/TW202240422A/zh
Priority to US17/840,340 priority patent/US20220311590A1/en
Publication of KR20220136691A publication Critical patent/KR20220136691A/ko
Application granted granted Critical
Publication of KR102519480B1 publication Critical patent/KR102519480B1/ko
Priority to US18/350,220 priority patent/US20230353341A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 기술은 전자 장치에 관한 것으로, 본 기술에 따른, 업스트림 포트에서 레인 마지닝 동작을 제어할 수 있는 펑션 별로 성능을 제한할 수 있는 PCIe 디바이스는, 복수의 레인들을 포함하는 링크를 통해 업스트림 경로에 위치한 하나 이상의 외부 장치들과 연결된 업스트림 포트, 상기 외부 장치들에 상기 복수의 레인들 각각의 마진 상태 정보를 획득하는 레인 마지닝 동작을 요청하는 마진 커맨드를 전송하고, 상기 외부 장치들로부터 상기 마진 상태 정보를 수신하도록 상기 업스트림 포트를 제어하는 레인 마지닝 제어부 및 상기 마진 상태 정보를 기초로 상기 업스트림 포트의 설정을 결정하는 포트 설정 제어부를 포함한다.

Description

PCIe 장치 및 이를 포함하는 컴퓨팅 시스템{PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THEREOF}
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로 본 발명은 PCIe(Peripheral Component Interconnect Express) 장치 및 이를 포함하는 컴퓨팅 시스템에 관한 것이다.
PCI(Peripheral Component Interconnect)는 호스트 장치에 입출력 디바이스들을 연결하는데 사용되는 버스 프로토콜을 정의한다. PCIe(PCI Express)는 PCI 표준에서 정의한 프로그래밍 개념을 가지면서 물리적 통신 레이어(physical communication layer)를 고속 시리얼 인터페이스로 정의한 것이다.
스토리지 장치는 컴퓨터나 스마트폰 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 데이터를 저장하는 메모리 장치와 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치 (Volatile Memory)와 비휘발성 메모리 장치 (Non Volatile Memory)로 구분될 수 있다.
휘발성 메모리 장치는 전원이 공급되는 동안에만 데이터를 저장하고, 전원 공급이 차단되면 저장된 데이터가 소멸되는 메모리 장치일 수 있다. 휘발성 메모리 장치에는 정적 랜덤 액세스 메모리 (Static Random Access Memory; SRAM), 동적 랜덤 액세스 메모리 (Dynamic Random Access Memory; DRAM) 등이 포함될 수 있다.
비휘발성 메모리 장치는 전원이 차단되어도 데이터가 소멸되지 않는 메모리 장치로서, 롬(Read Only Memory; ROM), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM) 및 플래시 메모리(Flash Memory) 등이 있다.
본 발명의 실시 예는 업스트림 포트에서 레인 마지닝(lane margining) 동작을 제어할 수 있는 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템을 제공한다.
본 발명의 실시 예에 따른 PCIe 장치는, 복수의 레인들을 포함하는 링크를 통해 업스트림 경로에 위치한 하나 이상의 외부 장치들과 연결된 업스트림 포트, 상기 외부 장치들에 상기 복수의 레인들 각각의 마진 상태 정보를 획득하는 레인 마지닝 동작을 요청하는 마진 커맨드를 전송하고, 상기 외부 장치들로부터 상기 마진 상태 정보를 수신하도록 상기 업스트림 포트를 제어하는 레인 마지닝 제어부 및 상기 마진 상태 정보를 기초로 상기 업스트림 포트의 설정을 결정하는 포트 설정 제어부를 포함한다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 다운스트림 포트를 포함하는 제1 PCIe 장치 및 복수의 레인들을 포함하는 링크를 통해 상기 다운스트림 포트와 연결된 업스트림 포트를 포함하고, 상기 업스트림 포트를 통해 상기 제1 PCIe 장치로 마진 커맨드를 전송하고, 상기 제1 PCIe 장치로부터 상기 마진 커맨드에 대한 응답으로 상기 복수의 레인들 각각의 마진 상태 정보를 수신하고, 상기 마진 상태 정보를 기초로 상기 업스트림 포트의 설정을 결정하는 제2 PCIe 장치를 포함한다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 다운스트림 포트 및 복수의 레인들을 포함하는 링크를 통해 상기 다운스트림 포트와 연결된 업스트림 포트를 포함하고, 상기 다운스트림 포트 및 상기 업스트림 포트 각각은, 상기 복수의 레인들 각각의 마진 상태 정보를 획득하는 레인 마지닝 동작을 요청하는 마진 커맨드를 생성하고, 상기 업스트림 포트 또는 상기 다운스트림 포트로 상기 마진 커맨드를 전송하거나, 상기 업스트림 포트 또는 상기 다운스트림 포트로부터 상기 마진 커맨드를 수신한다.
본 기술에 따르면, 업스트림 포트에서 레인 마지닝 동작을 제어할 수 있는 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템을 제공한다.
본 발명의 일 실시 예에 따르면, 업스트림 포트에서 레인 마지닝 동작을 제어함으로써, 실시간으로 업스트림 포트에 포함된 송신기 및 수신기의 설정을 튜닝할 수 있고, PCIe 장치들을 연결하는 링크의 상태를 최적화할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 컴퓨팅 시스템의 일 예를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 PCIe 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 PCIe 인터페이스를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 송신기, 수신기 및 레인을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 포트를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 하나 이상의 리타이머들을 포함하는 포함하는 인터커넥트(interconnect) 구조를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 PCIe 장치를 포함하는 컴퓨팅 시스템을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 업스트림 포트에 의해 제어되는 송신기의 설정을 결정하는 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 업스트림 포트에 의해 제어되는 수신기의 설정을 결정하는 동작을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시 예에 따른 다운스트림 포트에 의해 제어되는 송신기의 설정을 결정하는 동작을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시 예에 따른 업스트림 포트의 설정을 결정하는 방법을 설명하기 위한 순서도이다.
도 12는 본 발명의 일 실시 예에 따른 수신기의 설정을 결정하는 방법을 설명하기 위한 순서도이다.
도 13은 본 발명의 일 실시 예에 따른 다운스트림 포트의 설정을 결정하는 방법을 설명하기 위한 순서도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시 예에 따른 컴퓨팅 시스템의 일 예를 설명하기 위한 도면이다.
도 1을 참조하면, 컴퓨팅 시스템(100)은 CPU(110), 루트 콤플렉스(120), 메모리(130), 스위치(140), PCIe 엔드 포인트(150_1 내지 150_3), 레거시 엔드 포인트(160_1, 160_2) 및 PCIe 브릿지(170)를 포함할 수 있다.
컴퓨팅 시스템(100)은 PCIe 인터페이스를 이용한 통신을 지원하는 전자 장치일 수 있다. 컴퓨팅 시스템(100)은 PC, 랩탑 컴퓨터 또는 모바일 컴퓨팅 장치일 수 있고, 확장 카드(expansion card), 확장 보드(expansion board), 어댑터 카드(adapter card), 애드-인 카드(add-in card) 또는 액세서리 카드 (accessory card)를 포함할 수 있다. 그리고, 컴퓨팅 시스템(100)은 확장 버스를 통해 컴퓨팅 시스템(100)에 부가적인 기능을 제공하기 위해 컴퓨팅 시스템(100)의 마더보드 상의 전기적 커넥터 또는 확장 슬롯에 삽입될 수 있는 인쇄 회로 기판 (printed circuit board(PCB))을 포함할 수 있다. 또한, 컴퓨팅 시스템(100)는 솔리드 스테이트 드라이브(solid state drives(SSD))와 같은 저장 장치를 포함할 수 있고, 그래픽 카드, 네트워크 카드, 또는 USB 카드 등을 포함할 수 있다.
CPU(110)는 컴퓨팅 시스템(100)의 각 구성과 전기적으로 연결되어 있으며, 컴퓨팅 시스템(100)의 각 동작을 제어할 수 있다. 구체적으로, CPU(110)는 운영 체제 또는 응용 프로그램을 구동하여 CPU(110)에 연결된 하드웨어 또는 소프트웨어의 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 그리고, CPU(110)는 컴퓨팅 시스템(100)의 동작을 제어하기 위한 소프트웨어 또는 어플리케이션을 실행할 수 있다.
루트 콤플렉스(120)는 주변 컴포넌트 인터커넥트 익스프레스(Peripheral Component Interconnect Express; PCIe) 상호 접속 아키텍처 내 루트 허브, 제어기 허브, 또는 루트 제어기일 수 있다. 예를 들어, 루트 콤플렉스(120)는 칩셋, 메모리 제어기 허브(memory controller hub, MCH), 노스브릿지, 인터커넥트 제어기 허브(interconnect controller hub, ICH), 사우스브릿지, 및 루트 제어기/허브를 포함할 수 있다. 그리고, 루트 콤플렉스(120)는 CPU(110) 및 메모리(130)를 입출력 계층 구조(I/O Hierarchy)와 연결할 수 있다. 루트 콤플렉스(120)는 피어-투-피어(Peer-to-Peer; P2P) 라우팅을 지원할 수 있다. 루트 콤플렉스(120)는 적어도 하나의 호스트 브릿지 및 루트 포트를 포함할 수 있다. 루트 콤플렉스(120)는 하나 이상의 PCIe(Peripheral Component Interconnect Express) 포트를 지원할 수 있다.
메모리(130)는 컴퓨팅 시스템(100)의 동작에 필요한 데이터, 명령들 또는 프로그램 코드를 저장할 수 있다. 일 실시 예에서, 메모리(130)는 하나 이상의 오퍼레이팅 시스템(operating system; OS)들 및 가상 머신(virtual machine; VM)들을 실행하도록 동작할 수 있는 프로그램 코드들 및 가상 머신들을 관리하기 위한 버추얼라이제이션 미디어리(Virtualization Intermediary; VI)를 실행하는 프로그램 코드들을 저장할 수 있다. 그리고, 메모리(130)는 DRAM 또는 SRAM 등의 휘발성 메모리 장치로 구현될 수 있다.
스위치(140)는 패킷 또는 메세지를 업스트림 또는 다운스트림으로 라우팅할 수 있다. 구체적으로, 스위치(140)는 패킷 또는 메시지를 PCIe 엔드 포인트(예컨대, 150_1)로부터 루트 콤플렉스(120)를 향한 계층 위쪽으로 라우팅할 수 있다. 또는, 스위치(140)는 패킷 또는 메시지를 루트 콤플렉스(120)로부터 PCIe 엔드 포인트(예컨대, 150_2)를 향한 계층 아래쪽으로 라우팅할 수 있다.
스위치(140)는 복수의 가상 PCI간 브릿지 디바이스(virtual PCI-to-PCI bridge device)의 로직 어셈블리라고 지칭될 수 있다. 스위치(140)에 연결될 수 있는 디바이스는 I/O 디바이스, 네트워크 인터페이스 제어기(Network Interface Controller, NIC), 애드-인(add-in) 카드, 오디오 프로세서, 네트워크 프로세서, 하드-드라이브, 저장 디바이스, CD/DVD ROM, 모니터, 프린터, 마우스, 키보드, 라우터, 이동식 저장 디바이스, 파이어와이어 디바이스, 범용 직렬 버스(Universal Serial Bus, USB) 디바이스, 스캐너, 및 기타 입력/출력 디바이스와 같은 전자 시스템에 연결되는 임의의 내부 또는 외부 디바이스나 컴포넌트를 포함할 수 있다. 비록 구체적으로 도시되지 않을지라도, 디바이스(125)는 레거시 또는 다른 버전의 PCI 디바이스를 지원하는 PCIe 대 PCI/PCI-X 브릿지를 포함할 수 있다.
일 실시 예에서, 루트 콤플렉스(120)는 엔드 포인트와 연결될 수 있다. 엔드 포인트는 PCIe 트랜잭션의 요청자 또는 컴플리터가 될 수 있는 펑션의 유형을 나타낼 수 있다. 엔드포인트는 레거시 엔드 포인트 또는 PCIe 엔드 포인트로 분류될 수 있다.
PCIe 엔드 포인트(150_1~150_3) 및 레거시 엔드 포인트(160_1, 160_2)는 PCIe 트랜잭션의 리퀘스터(requester) 또는 컴플리터(completer)의 역할을 수행할 수 있다. PCIe 엔드 포인트(150_1~150_3) 및 레거시 엔드 포인트(160_1, 160_2)가 송수신하는 TLP(Transaction layer packet)는 컨피규레이션 스페이스 헤더를 제공해야 한다(must). 또, PCIe 엔드 포인트(150_1~150_3) 및 레거시 엔드 포인트(160_1, 160_2)는 컴플리터(completer)로서 컨피규레이션 요청을 제공해야 한다(must).
PCIe 엔드 포인트(150_1~150_3) 및 레거시 엔드 포인트(160_1, 160_2)는 메모리 트랜잭션의 크기에 따라 구분될 수 있다. 예를 들면, 4GB를 초과하는 메모리 트랜잭션이 가능한 경우 엔드 포인트는 PCIe 엔드 포인트(150_1~150_3), 4GB를 초과하는 메모리 트랜잭션이 불가능한 경우 엔드 포인트는 레거시 엔드 포인트(160_1, 160_2)일 수 있다. PCIe 엔드 포인트(150_1~150_3)는 입출력 리퀘스트를 발생시키면 안되나, 레거시 엔드 포인트(160_1, 160_2)는 입출력 리퀘스트를 제공하거나 발생시킬 수 있다. 그리고, PCIe 엔드 포인트(150_3)는 루트 콤플렉스(120)와 TLP를 송수신할 수 있다. 또, PCI/PCI-X는 PCIe 브릿지(170)를 통해 루트 콤플렉스(120)와 TLP를 송수신할 수 있다. PCIe 엔드 포인트(150_1, 150_2) 또는 레거시 엔드 포인트(160_1, 160_2)는 스위치(140)와 TLP를 송수신할 수 있다.
PCIe 엔드 포인트(150_1~150_3)는 타입 00h 컨피규레이션 스페이스 헤더를 갖는 펑션일 수 있다. PCIe 엔드 포인트(150_1~150_3)는 컴플리터로서 컨피규레이션 요청을 지원할 수 있다. PCIe 엔드 포인트(150_1~150_3)에 액세스 할 때 잠금 시맨틱을 사용하지 않도록 PCIe 호환 소프트웨어 드라이버 및 응용 프로그램을 작성할 수 있다. 메모리 트랜잭션의 요청자로 작동하는 PCIe 엔드 포인트(150_1~150_3)는 4GB보다 큰 주소를 생성할 수 있다. 인터럽트 리소스가 요청 된 경우 MSI(Message Signaled Interrupt) 또는 MSI-X 또는 둘 다를 지원하려면 PCIe 엔드 포인트(150_1~150_3)가 필요할 수 있다. MSI가 구현 된 경우 PCIe 엔드 포인트(150_1~150_3)는 MSI 기능 구조의 64 비트 메시지 주소 버전을 지원할 수 있다. 베이스 어드레스 레지스터에서 요청하는 최소 메모리 주소 범위는 128 바이트일 수 있다. PCIe 엔드 포인트(150_1~150_3)는 루트 콤플렉스(120)에서 시작된 하이어라키 도메인 중 하나 내에 나타날 수 있다.
레거시 엔드 포인트(160_1, 160_2)는 타입 00h 컨피규레이션 스페이스(Configuration Space) 헤더를 갖는 펑션일 수 있다. 레거시 엔드 포인트(160_1, 160_2)는 컴플리터로서 컨피규레이션 요청을 지원할 수 있다. 레거시 엔드 포인트(160_1, 160_2)는 컴플리터로서 I/O 요청을 지원할 수 있다. 레거시 엔드 포인트(160_1, 160_2)는 해당 엔드 포인트의 I/O 디코드 구성에 관계없이 80h 및 84h 위치 중 하나 또는 둘 모두에 대한 I/O 요청을 수락할 수 있다. 레거시 엔드 포인트(160_1, 160_2)는 I/O 요청을 생성할 수 있다. 레거시 엔드 포인트(160_1, 160_2)는 익스텐디드 컨피규레이션 스페이스 케이퍼빌리티(Extended Configuration Space Capabilities)를 구현할 수 있다. 메모리 트랜잭션의 요청자로 작동하는 레거시 엔드 포인트(160_1, 160_2)는 4GB 이상의 주소를 생성할 필요가 없다. 인터럽트 리소스가 요청된 경우 MSI 또는 MSI-X 또는 둘 다를 지원하려면 레거시 엔드 포인트(160_1, 160_2)가 필요하다. MSI가 구현 된 경우 레거시 엔드 포인트(160_1, 160_2)는 MSI 기능 구조의 32 비트 또는 64 비트 메시지 주소 버전을 지원할 수 있다. 레거시 엔드포인트(160_1, 160_2)는 메모리 리소스를 요청하는 기본 주소 레지스터에 대해 32 비트 주소 지정을 지원할 수 있다. 레거시 엔드 포인트(160_1, 160_2)는 루트 콤플렉스(120)에서 시작된 하이어라키 도메인 중 하나 내에 나타날 수 있다.
도 2는 본 발명의 일 실시 예에 따른 PCIe 장치를 설명하기 위한 도면이다.
도 2를 참조하면, PCIe 장치는 PCIe 인터페이스를 포함할 수 있고, PCIe 인터페이스를 이용한 송수신을 지원하는 전자 장치일 수 있다. 예를 들어, 제1 PCIe 장치(200-1) 또는 제2 PCIe 장치(200-2)는 도 1의 루트 콤플렉스(120), 스위치(140), PCIe 엔드 포인트(150_1 내지 150_3), 레거시 엔드 포인트(160_1, 160_2) 및 PCIe 브릿지(170) 중 어느 하나일 수 있다.
그리고, 제1 PCIe 장치(200-1) 또는 제2 PCIe 장치(200-2)는 제1 PCIe 인터페이스(210-1) 또는 제2 PCIe 인터페이스(210-2)를 이용하여 통신을 수행할 수 있다. 구체적으로, 제1 PCIe 장치(200-1)는 제2 PCIe 장치(200-2)로부터 전송할 데이터를 제1 PCIe 인터페이스(210-1)를 이용하여 통신에 적합한 프로토콜로 변환할 수 있다. 그리고, 제1 PCIe 장치(200-1) 및 제2 PCIe 장치(200-2)는 링크(Link)를 형성할 수 있고, 제1 PCIe 장치(200-1) 및 제2 PCIe 장치(200-2)는 형성된 링크를 통해 통신할 수 있다. 예를 들어, 제1 PCIe 장치(200-1) 또는 제2 PCIe 장치(200-2)는 링크를 통하여 패킷을 송수신할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 PCIe 인터페이스를 설명하기 위한 도면이다.
도 3을 참조하면, 제1 PCIe 인터페이스(210-1) 및 제2 PCIe 인터페이스(210-2)가 도시되어 있다. 제1 PCIe 인터페이스(210-1) 및 제2 PCIe 인터페이스(210-2)는 동일한 구조로 형성될 수 있으므로, 제1 PCIe 인터페이스(210-1)를 기준으로 설명하도록 한다.
제1 PCIe 인터페이스(210-1)에 포함된 PCIe 레이어들은 3개의 이산적 논리적 계층들(three discrete logical layers)을 포함할 수 있다. 예를 들어, 제1 PCIe 인터페이스(210-1)는 트랜잭션 레이어, 데이터 링크 레이어 및 피지컬 레이어를 포함할 수 있다. 각 레이어들은 두 개의 섹션들을 포함할 수 있다. 하나의 섹션은 아웃바운드(또는 전송될) 정보를 처리할 수 있고, 다른 하나는 인바운드(또는 수신된) 정보를 처리할 수 있다. 그리고, 제1 PCIe 인터페이스(210-1)는 다른 PCIe 인터페이스 사이에서 정보를 통신하기 위해 패킷들(packets)을 사용할 수 있다.
PCIe 인터페이스의 구조에서 상위(upper) 레이어는 트랜잭션 레이어일 수 있다. 트랜잭션 레이어는 트랜잭션 레이어 패킷들(transaction layer packets(TLPs))을 모으고(assembly) 분해(disassembly)할 수 있다. 그리고, 트랜잭션 레이어는 스플릿 트랜잭션(split tansaction), 즉, 타겟 시스템이 응답에 필요한 데이터를 수집하는 동안 링크로 다른 트래픽을 전달하게 해주는 트랜잭션을 구현할 수 있다. 예컨대, 트랜잭션 레이어는 요청과 응답이 시간적으로 분리되어 있는 트랜잭션을 구현할 수 있다. 일 실시예에서, 네 개의 트랜잭션 어드레스 공간은 구성 어드레스 공간, 메모리 어드레스 공간, 입력/출력 어드레스 공간, 및 메시지 어드레스 공간을 포함할 수 있다. 메모리 공간 트랜잭션은 데이터를 메모리-매핑된 장소로/로부터 전달하는 읽기 요청 및 쓰기 요청 중 하나 이상을 포함할 수 있다. 일 실시예에서, 메모리 공간 트랜잭션은 두 가지 상이한 어드레스 포맷, 예를 들면, 32-비트 어드레스와 같이 짧은 어드레스 포맷, 또는 64-비트 어드레스와 같이 긴 어드레스 포맷을 사용할 수 있다. 구성 공간 트랜잭션은 PCIe 장치의 구성 공간에 액세스하는데 사용될 수 있다. 구성 공간으로의 트랜잭션은 읽기 요청 및 쓰기 요청을 포함할 수 있다. 메시지 공간 트랜잭션(또는, 메시지)은 PCIe 장치들 간의 대역-내(in-band) 통신을 지원하기 위해 정의될 수 있다.
트랜잭션 레이어는 링크 구성 정보(Link configuration information) 등을 저장할 수 있다. 그리고, TLP를 생성하거나, 수신한 TLP를 페이로드(payload) 또는 상태 정보(status information)로 변환할 수 있다.
PCIe 인터페이스의 구조에서 중간 레이어(middle layer)는 데이터 링크 레이어이고, 데이터 링크 레이어는 트랜잭션 레이어 및 피지컬 레이어 사이의 중간 스테이지(intermediate stage)의 기능을 수행할 수 있다. 데이터 링크 레이어의 주요한 기능은 링크 관리(link management) 및 에러 검출과 에러 정정을 포함하는 데이터 무결성(data integrity)일 수 있다. 구체적으로, 데이터 링크 레이어의 송신 측은 트랜잭션 레이어에서 수집된(assembled) TLPs를 수용(accept)하고, 데이터 보호 코드를 부여하거나, TLP 시퀀스 번호를 계산할 수 있다. 그리고, 데이터 링크 레이어의 송신 측은 링크를 통해 전송하기 위해 데이터 보호 코드와 TLP 시퀀스 번호를 피지컬 레이어로 전송할 수 있다. 데이터 링크 레이어의 수신 측은 피지컬 레이어로부터 수신된 TLPs의 데이터 무결성을 체크하고, 추가적인 처리를 위해 트랜잭션 레이어로 TLPs를 전송할 수 있다.
피지컬 레이어는 인터페이스 동작을 위한 모든 회로(all circuitry)를 포함할 수 있다. 여기서, 모든 회로는 드라이버, 입력 버퍼, 직렬-병렬 변환 회로, 병렬-직렬 변환 회로, 위상 동기 루프(phase locked loop(PLLs)), 및 임피던스 매칭 회로를 포함할 수 있다.
그리고, 피지컬 레이어는 패킷을 외부 PCIe 장치에 물리적으로 전송하는 논리 서브블록 및 전기 서브블록을 포함할 수 있다. 여기서, 논리 서브블록은 피지컬 레이어의 '디지털' 기능에 필요한 역할을 수행할 수 있다. 이와 관련하여, 논리 서브블록은 물리 서브블록에 의해 전송하기 위한 발송 정보를 준비하는 송신 섹션과 수신된 정보를 데이터 링크 레이어에 전달하기 전에 수신된 정보를 식별하고 준비하는 수신 섹션을 포함할 수 있다. 피지컬 레이어는 송신기 및 수신기를 포함할 수 있다. 송신기는 논리 서브블록에 의해 송신기가 직렬화하여 외부 장치에 송신하는 심볼을 공급받을 수 있다. 그리고, 수신기는 외부 장치로부터 직렬화된 심볼을 공급받고 수신된 신호를 비트스트림으로 변환할 수 있다. 비트스트림은 역직렬화되어 논리 서브블록에 공급될 수 있다. 즉, 피지컬 레이어는 데이터 링크 레이어(213)로부터 수신한 TLPs를 직렬화된 형식(serialized format)으로 변환하고, 외부 장치로부터 수신한 패킷을 역직렬화된 형식(deserialized format)으로 변환할 수 있다. 그리고, 피지컬 레이어는 인터페이스 초기화 및 유지에 관련된 논리적 기능들을 포함할 수 있다.
도 3에서는 제1 PCIe 인터페이스(210-1) 및 제2 PCIe 인터페이스(210-2)의 구조를 예시적으로 도시하였으나, 퀵 패스 인터커넥트(Quick Path Interconnect) 구조, 차세대 고성능 컴퓨팅 인터커넥트(Next Generation High Performance Computing Interconnect) 구조 또는 다른 계층화된 구조 등과 같은 임의의 형태를 포함할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 송신기, 수신기 및 레인을 설명하기 위한 도면이다.
도 4를 참조하면, 제1 송신기(TX1), 제2 송신기(TX2), 제1 수신기(RX1) 및 제2 수신기(RX2)가 도시되어 있다. 레인(lane)은 차동 구동된 신호 쌍들을 포함하는 경로, 예컨대, 송신용으로 구성된 송신 경로 쌍 및 수신용으로 구성된 수신 경로 쌍을 포함할 수 있다. PCIe 장치는 데이터를 다른 PCIe 장치로 송신하는 송신 로직 및 데이터를 다른 PCIe 장치로부터 수신하는 수신 로직을 포함할 수 있다. 예를 들어, 제1 송신기(TX1)에 연결된 두 개의 송신 경로 및 제1 수신기(RX1)에 연결된 두 개의 수신 경로를 포함할 수 있다.
여기서, 송신 경로는 송신 회선, 구리 회선, 광 회선, 무선 통신 채널, 적외선 통신 링크, 또는 다른 통신 경로와 같이 데이터를 송신하기 위한 임의의 경로를 의미할 수 있다. 그리고, 수신 경로는 송신 경로와 동일하게 구현되나, 수신을 위해 이용되는 경로일 수 있다.
두 PCIe 장치, 예컨대, 도 2의 제1 PCIe 장치(200-1) 및 제2 PCIe 장치(200-2) 사이의 접속은 링크라고 지칭될 수 있다. 링크는 1개 이상의 레인(lane)을 지원할 수 있다. 예를 들어, 링크는 복수의 레인들을 포함할 수 있다. 그리고, 각각의 레인은 한 세트의 차동 신호 쌍(하나의 쌍은 송신용, 하나의 쌍은 수신용)을 나타낼 수 있다. 차동 신호는 2개의 주파수와 진폭이 같으나, 위상이 반대인 신호 쌍을 의미할 수 있다. 예를 들어, 제1 신호가 0에서 V+의 전압 레벨로 토글하는 상승 에지(edge)일 때, 제2 신호는 0에서 V-의 전압 레벨로 토글하는 하강 에지(edge)로 진행할 수 있다. PCIe 장치는 차동 신호를 이용하여 신호 무결성(signal integrity), 예컨대, 크로스-커플링, 전압 오버슈트/언더슈트, 링잉 등과 같은 전기적 특성을 이용할 수 있고, 송신 주파수를 더 빠르게 조정할 수 있다. 그리고, PCIe 장치는 대역폭을 조정하기 위해, 복수의 레인을 포함할 수 있다. 예를 들어, 두 PCIe 장치는 1, 2, 4, 8, 12, 16, 32, 64 등의 레인을 포함하는 링크를 형성할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 포트를 설명하기 위한 도면이다.
도 5를 참조하면, 제1 PCIe 장치(200-1) 및 제2 PCIe 장치(200-2)에 포함된 다운스트림 포트(215-1) 및 업스트림 포트(215-2)가 도시되어 있다.
일 실시 예에서, 제1 PCIe 장치(200-1)는 제2 PCIe 장치(200-2)보다 상위 계층일 수 있고, 상위 계층으로의 데이터 이동 및 전송을 업스트림이라고 칭할 수 있다. 반대로, 하위 계층으로의 데이터 이동 및 전송을 다운스트림이라고 칭할 수 있다. 예를 들어, 도 1을 참조하면, 스위치(140)는 다운스트림 및 업스트림의 라우팅을 지원할 수 있다. 구체적으로, 업스트림은 패킷 또는 메시지를 PCIe 엔드 포인트(예컨대, 150_1)로부터 루트 컴플렉스(120)를 향한 계층 위쪽으로의 라우팅이고, 다운스트림은 루트 컴플렉스(120)로부터 PCIe 엔드 포인트(예컨대, 150_2)를 향한 계층 아래쪽으로의 라우팅일 수 있다.
일 실시 예에서, 다운스트림 포트(215-1)를 포함하는 제1 PCIe 장치(200-1)는 “업스트림 컴포넌트(upstream component)”로 지칭될 수 있다. 이때, 업스트림 컴포넌트는 도 1의 루트 콤플렉스(120) 또는 스위치(140)를 나타낼 수 있다. 또한, 업스트림 포트(215-2)를 포함하는 제2 PCIe 장치(200-2)는 “다운스트림 컴포넌트(downstream component)”로 지칭될 수 있다. 이때, 다운스트림 컴포넌트는 도 1의 스위치(140), PCIe 엔드 포인트(150_1 내지 150_3), 레거시 엔드 포인트(160_1, 160_2) 및 PCIe 브릿지(170) 중 어느 하나를 나타낼 수 있다.
다운스트림 포트(215-1) 및 업스트림 포트(215-2)는 각각 송신기(Tx), 수신기(Rx) 및 위상 동기 루프(Phase locked loop; PLL) 회로를 포함할 수 있다. PLL 회로는 클럭 생성기(CLK GEN) 로부터 제공된 클럭 신호를 이용하여 송신기(Tx) 또는 수신기(Rx)로 공급될 클럭 신호를 생성할 수 있다. PLL 회로는 클럭 신호 생성기로부터 수신한 신호를 체배하여 변경된 주파수를 갖는 클럭 신호를 생성할 수 있다. 예컨대, PLL 회로는 100MHz의 주파수를 갖는 기준 클럭 신호(REFCLK)를 2.5GHz의 주파수를 갖는 클럭 신호로 체배할 수 있다. 송신기(Tx)는 PLL 회로의 출력 신호를 이용하여 병렬 데이터 신호를 직렬 데이터 신호로 변환하고, 직렬 데이터 신호를 외부 장치, 예컨대, 외부 PCIe 장치로 전송할 수 있다. 수신기(Rx)는 외부 장치로부터 전송된 직렬 데이터 신호를 수신하고, PLL 회로의 출력 신호를 이용하여, 수신된 직렬 데이터 신호를 복원하기 위한 클럭 신호와 복원된 직렬 데이터 신호를 병렬 데이터 신호로 변환하기 위한 클럭 신호를 생성할 수 있다. 클럭 신호 생성기(CLK GEN)는 PCIe 인터페이스의 동작에 이용되는 기준 클럭 신호(REFCLK)를 생성할 수 있다. 여기서, PCIe 인터페이스의 동작은 외부 PCIe 장치와 통신일 수 있다.
도 6은 본 발명의 일 실시 예에 따른 하나 이상의 리타이머(retimer)들을 포함하는 인터커넥트(interconnect) 구조를 설명하기 위한 도면이다.
도 6을 참조하면, 인터커넥트 구조는 다운스트림 포트, 업스트림 포트 및 하나 이상의 리타이머들은 포함할 수 있다. 이때, 다운스트림 포트는 업스트림 컴포넌트에 포함된 포트이고, 업스트림 포트는 다운스트림 컴포넌트에 포함된 포트일 수 있다. 인터커넥트가 고속으로 동작하기 때문에, 다운스트림 포트와 업스트림 포트 사이에 하나 이상의 리 타이머들이 연결될 수 있다.
리타이머는 다운스트림 포트 및 업스트림 포트로부터의 신호를 미세 조정하기 위해 물리 계층에서 동작하는 신호 중계기 역할을 할 수 있다. 리타이머의 주요 기능은 신호 리타이밍일 수 있다. 리타이머는 수신 신호를 복구하고 로컬 클록 및 새로운 전송 이퀄라이제이션 회로를 사용하여 재전송할 수 있다.
일 실시 예에서, 리타이머는 2개의 슈도(pseudo) 포트를 포함 할 수 있다. 슈도 포트는 각각의 다운스트림/업스트림 방향을 동적으로 결정할 수 있다. 다운스트림 방향을 향하는 슈도 포트는 다운스트림 슈도 포트로 지칭될 수 있다. 업스트림 방향을 향하는 슈도 포트는 업스트림 슈도 포트로 지칭될 수 있다.
다운스트림 포트는 송신기 Tx(A) 및 수신기 Rx(A)를 포함할 수 있다. 리타이머 X는 송신기 Tx(B), TX(C), 수신기 Rx(B) 및 Rx(C)를 포함할 수 있다. 리타이머 Y는 송신기 Tx(D), TX(E), 수신기 Rx(D) 및 Rx(E)를 포함할 수 있다. 업스트림 포트는 송신기 Tx(F) 및 수신기 Rx(F)를 포함할 수 있다.
일 실시 예에서, 데이터 또는 신호가 다운스트림 포트에서 업스트림 포트로 이동하는 경로를 다운스트림 경로로 정의할 수 있다. 다운스트림 경로에서, Rx(B)는 Tx(A)에 연결되고, 데이터와 신호를 송신기 Tx(C)에 중계할 수 있다. Rx(D)는 Tx(C)에 연결되고, 데이터와 신호를 Tx(E)로 중계할 수 있다. Rx(F)는 Tx(E)와 연결될 수 있다.
일 실시 예에서, 데이터 또는 신호가 업스트림 포트에서 다운스트림 포트로 이동하는 경로를 업스트림 경로로 정의할 수 있다. 업스트림 경로에서, Rx(E)는 Tx(F)에 연결되고, 데이터와 신호를 송신기 Tx(D)에 중계할 수 있다. Rx(C)는 Tx(D)에 연결되고, 데이터와 신호를 Tx(B)로 중계할 수 있다. Rx(A)는 Tx(B)와 연결될 수 있다.
다운스트림 포트, 업스트림 포트 및 리타이머들은 링크를 통해 연결될 수 있다. 일 실시 예에서, 다운스트림 포트는 레인 마지닝 동작을 통해 링크에 포함된 복수의 레인들의 마진 상태 정보를 획득할 수 있다. 예를 들어, 다운스트림 포트는 리타이머 X, 리타이머 Y 및 업스트림 포트로 마진 커맨드를 전송하고, 리타이머 X, 리타이머 Y 및 업스트림 포트는 마진 커맨드에 응답하여 마진 상태 정보를 다운스트림 포트로 제공할 수 있다. 이때, 마진 커맨드 및 마진 커맨드에 대한 응답 신호는 컨트롤 스킵 오더 세트(Control Skip Ordered Set)를 통해 전송될 수 있다. 예를 들어, 다운스트림 포트는 컨트롤 스킵 오더 세트를 통해 마진 커맨드를 제공할 수 있다. 또한, 리타이머 X, 리타이머 Y 및 업스트림 포트는 컨트롤 스킵 오더 세트를 통해 마진 커맨드에 대한 응답 신호를 제공할 수 있다.
레인 마지닝 동작은 모든 포트에서 수행될 수 있다. 컴퓨팅 시스템은 마진 커맨드를 수신한 포트에 포함된 수신기의 레인 마지닝 동작을 통해 해당 수신기에서의 마진 상태 정보를 획득할 수 있다. 마진 상태 정보는 현재 수신기 위치에서의 전압과 타이밍에 대한 마진 정보를 포함할 수 있다. 수신기의 레인 마지닝 동작은 마진 커맨드가 수신되고, 링크가 16.0 GT / s 데이터 속도 이상으로 작동하고, 링크가 L0 상태에있을 때 수행될 수 있다.
레인 마지닝 동작은 수신기가 샘플링 지점을 타이밍(timing)에 대해 여러 단계(step)에 거쳐 왼쪽 또는 오른쪽으로 이동하거나, 전압에 대해 여러 단계에 거쳐 올리거나 내리도록 지시하는 명령의 형태를 포함할 수 있다. 수신기는 마진 커맨드에 응답으로 마진 상태 정보를 보고할 수 있다. 마진 커맨드는 레인 마지닝 동작과 관련된 다양한 동작들을 지시하는 커맨드들을 포함할 수 있다.
컴퓨팅 시스템은 수신기에 대한 마진 상태 정보를 얻기 위해 각 포트에서 마지닝 레인 컨트롤 레지스터(Margining Lane Control Register) 및 마지닝 레인 상태 레지스터(Margining Lane Status Register)를 이용할 수 있다. 다운 스트림 포트는 마지닝 레인 컨트롤 레지스터의 적절한 비트에 기록하여 수신기의 레인 마지닝 동작을 제어할 수 있다. 또한, 다운 스트림 포트는 마지닝 레인 상태 레지스터를 통해 수신기의 마진 상태 정보를 업데이트할 수 있다.
한편, 종래의 레인 마지닝 동작은 다운스트림 포트에 의해서만 제어될 수 있다. 종래의 업스트림 포트는 레인 마지닝 동작을 제어할 수 없고, 레인 마지닝 동작을 통해 획득된 마진 상태 정보만 제공할 수 있었다. 또한, 플랫폼의 종류 및 리타이머의 존재 여부에 따라, 피지컬 레이터의 특성이 달라질 수 있다. 이 경우, 피지컬 레이어의 송신기 및 수신기의 설정 또한 달라질 수 있다.
따라서, 업스트림 포트에서 레인 마지닝 동작을 제어하여 실시간으로 송신기 및 수신기의 설정을 튜닝하는 방안이 요구된다.
도 7은 본 발명의 일 실시 예에 따른 PCIe 장치를 포함하는 컴퓨팅 시스템을 설명하기 위한 도면이다.
본 발명의 일 실시 예에 따르면, 컴퓨팅 시스템(700)은 외부 장치(710) 및 PCIe 장치(720)를 포함할 수 있다.
외부 장치(710)는 링크를 통해 PCIe 장치(720)와 연결된 PCIe 인터페이스 사용 가능한 장치일 수 있다. 이때, 링크는 복수의 레인들을 포함할 수 있다. 한편, 도 7에서는 외부 장치(710)가 1개인 것으로 도시되었으나, 외부 장치(710)의 개수는 실시 예에 따라 다양할 수 있다.
일 실시 예에서, 외부 장치(710)는 업스트림 경로에 위치한 장치일 수 있다. 예를 들어, 외부 장치(710)는 업스트림 컴포넌트 또는 리타이머일 수 있다. 외부 장치(710)는 PCIe 장치(720)보다 상위 계층에 속한 장치일 수 있다. 따라서, 신호가 외부 장치(710)에서 PCIe 장치(720)로 이동하는 방향을 다운스트림으로 정의하고, 신호가 PCIe 장치(720)에서 외부 장치(710)로 이동하는 방향을 업스트림으로 정의할 수 있다.
일 실시 예에서, 외부 장치(710)는 다운스트림 포트를 포함할 수 있다. 다운스트림 포트는 송신기(Tx1) 및 수신기(Rx1)를 포함할 수 있다. 외부 장치(710)에 포함된 Tx1은 PCIe 장치(720)에 포함된 수신기(Rx2)와 연결되고, 외부 장치(710)에 포함된 Rx1은 PCIe 장치(720)에 포함된 송신기(Tx2)와 연결될 수 있다.
일 실시 에에서, PCIe 장치(720)는 다운스트림 경로에 위치한 다운스트림 컴포넌트일 수 있다.
PCIe 장치(720)는 업스트림 포트(721), 레인 마지닝 제어부(722), 포트 설정 제어부(723), 마지닝 레인 컨트롤 레지스터(724) 및 마지닝 레인 상태 레지스터(725)를 포함할 수 있다.
업스트림 포트(721)는 링크를 통해 외부 장치(710)와 연결될 수 있다. 구체적으로, 업스트림 포트(721)는 외부 장치(710)에 포함된 다운스트림 포트와 데이터 또는 신호를 송수신할 수 있다. 업스트림 포트(721)는 TX2 및 RX2를 포함할 수 있다.
레인 마지닝 제어부(722)는 레인 마지닝 동작을 제어할 수 있다. 레인 마지닝 제어부(722)는 레인 마지닝 동작을 요청하는 마진 커맨드를 외부 장치(710)로 전송하도록 업스트림 포트(721)를 제어할 수 있다. 업스트림 포트(721)는 마진 커맨드를 생성하고, 송신기를 통해 마진 커맨드를 전송할 수 있다.
레인 마지닝 동작은 링크에 포함된 복수의 레인들 각각의 마진 상태 정보를 획득하는 동작일 수 있다. 마진 상태 정보는 아이 마진(eye margin) 정보 및 에러 정보 중 적어도 하나 이상을 포함할 수 있다. 아이 마진 정보는 복수의 레인들을 통해 송수신되는 신호의 품질(quality)을 나타내는 정보일 수 있다. 에러 정보는 레인 마지닝 동작에 따라 발생한 에러와 관련된 정보를 나타내는 정보일 수 있다. 또한, 마진 상태 정보는 레인 마지닝 동작을 위해 설정된 정보들을 포함할 수 있다. 예를 들어, 마진 상태 정보는 타이밍 단계 수, 최대 타이밍 오프셋, 전압 단계 수, 최대 전압 오프셋, 전압 샘플링 비율, 타이밍 샘플링 비율, 최대 레인(동시에 레인 마지닝 동작을 수행할 수 있는 최대 레인 수), 독립 에러 샘플러(레인 마지닝 동작을 인해 오류가 발생하는지 여부), 에러 수(레인 마지닝 동작 동안 발생한 에러의 수), 샘플 수(마진된 비트의 수) 등을 포함할 수 있다.
일 실시 예에서, 마진 커맨드 및 마진 상태 정보는 컨트롤 스킵 오더 세트(Control Skip Ordered Set)를 통해 전송될 수 있다.
스킵 오더 세트는 클록 허용 오차 보상(Clock Tolerance Compensation)에 이용될 수 있다. 구체적으로, 스킵 오더 세트는 링크의 두 끝에서 비트 전송률 간의 주파수 차이를 보상하는 데 이용될 수 있다. 이러한 보상을 수행하는 탄성 버퍼(Elastic Buffer)는 수신측의 피지컬 레이어의 논리 서브블록에 포함될 수 있다. 스킵 오더 세트의 전송 간격은 기지정된 전송 및 수신 클럭 주파수 차이의 절대 값을 기초로 설정될 수 있다.
탄성 버퍼는 송신될 데이터를 임시 저장하거나, 수신된 데이터를 임시 저장할 수 있다. 구체적으로, 탄성 버퍼는 송신측 및 수신측에 각각 포함될 수 있고, 탄성 버퍼는 스킵 오더 세트 및 데이터 블록을 임시 저장할 수 있다.
일 실시 예에서, 레인 마지닝 제어부(722)는 스킵 오더 세트의 전송 히스토리를 기초로 스킵 오더 세트의 전송 간격을 증감시킬 수 있다. 이때, 전송 히스토리는 스킵 오더 세트의 전송 간격, 전송 간격의 변화 또는 전송 간격에 대응하는 리커버리 상태 진입 빈도 등을 포함할 수 있다. 예를 들어, 레인 마지닝 제어부(722)는 전송 간격에 대응하는 리커버리 상태 진입의 빈도를 계산하고, 리커버리 상태 진입의 빈도에 기초하여 스킵 오더 세트의 전송 간격을 증감시킬 수 있다. 다른 예로, 레인 마지닝 제어부(722)는 기설정된 시간 동안 리커버리 상태 진입에 대한 요청을 수신하지 않으면, 스킵 오더 세트의 전송 간격을 고정시킬 수 있다.
또한, 레인 마지닝 제어부(722)는 외부 장치(710)에 포함된 탄성 버퍼의 상태를 기초로 스킵 오더 세트의 전송 간격을 증감시킬 수 있다. 예를 들어, 송신측 및 수신측이 서로 상이한 주파수로 동작하는 경우, 오버플로우 또는 언더플로우의 에러를 발생시킬 수 있다. 오버플로우 또는 언더 플로우의 에러가 발생하는 경우, 컴퓨팅 시스템(700)은 리커버리 상태로 진입할 수 있다. 즉, PCIe 장치 상호간 통신이 중단될 수 있고, PCIe 시스템은 큰 성능 저하 및 데이터의 유실의 문제가 발생할 수 있다. 따라서, 레인 마지닝 제어부(722)는 마진 커맨드를 통해 외부 장치(710)에 포함된 탄성 버퍼의 상태를 나타내는 정보를 요청할 수 있다. 구체적으로, 레인 마지닝 제어부(722)는 벤더 디파인 타입을 갖는 마진 커맨드를 외부 장치(710)로 전송하여 외부 장치(710)에게 탄성 버퍼의 상태를 나타내는 정보를 요청할 수 있다. 레인 마지닝 제어부(722)는 수신된 외부 장치(710)의 탄성 버퍼의 상태를 기초로 스킵 오더 세트의 전송 간격을 증감시킬 수 있다.
일 실시 예에서, 외부 장치(710)는 마진 커맨드에 응답하여 레인 마지닝 동작을 수행할 수 있다. 외부 장치(710)는 레인 마지닝 동작을 통해 마진 상태 정보를 획득하고, 획득된 마진 상태 정보를 저장할 수 있다. 또한, 레인 마지닝 제어부(722)는 외부 장치(710)로부터 마진 상태 정보를 수신하도록 업스트림 포트(721)를 제어할 수 있다. 업스트림 포트(721)는 수신기를 통해 마진 상태 정보를 수신할 수 있다.
포트 설정 제어부(723)는 마진 상태 정보를 기초로 업스트림 포트(721)의 설정을 결정할 수 있다. 포트 설정 제어부(723)는 마진 상태 정보를 기초로 업스트림 포트(721)에 포함된 송신기 및 수신기의 설정을 조절하여 링크를 통해 송수신되는 신호의 특성을 조절할 수 있다. 예를 들어, 포트 설정 제어부(723)는 레인들을 통해 송수신되는 신호의 품질을 개선하고, 지정된 요구사항을 충족시키기 위해 각 레인에 연결된 송신기 및 수신기의 설정을 조정할 수 있다.
마지닝 레인 컨트롤 레지스터(724)는 마진 커맨드와 관련된 정보를 저장할 수 있다. 예를 들어, 마지닝 레인 컨트롤 레지스터(724)는 수신기 번호(Receiver Number), 마진 타입(Margin Type), 사용 모델(Usage Model), 마진 페이로드 등을 포함할 수 있다. 이때, 수신기 번호는 마진 커맨드를 수신하는 수신기를 식별하기 위한 정보일 수 있다. 마진 타입은 마진의 유형을 나타내는 정보일 수 있다. 사용 모델은 레인 마지닝 동작을 수행할지 여부를 나타내는 정보일 수 있다. 마진 페이로드는 마진 커맨드를 통해 지시하려는 동작을 나타내는 정보일 수 있다.
마지닝 레인 상태 레지스터(725)는 마진 상태 정보를 저장할 수 있다. 예를 들어, 마지닝 레인 컨트롤 레지스터(724)는 수신기 번호 상태, 마진 타입 상태, 사용 모델 상태, 마진 페이로드 상태 등을 포함할 수 있다.
레인 마지닝 제어부(722)는 마지닝 레인 컨트롤 레지스터(724) 및 마지닝 레인 상태 레지스터(725)를 이용하여 컴퓨팅 시스템(700)의 레인 마지닝 동작을 제어할 수 있다. 예를 들어, 레인 마지닝 제어부(722)는 마진 커맨드와 관련된 정보를 마지닝 레인 컨트롤 레지스터(724)에 기록할 수 있다. 또한, 레인 마지닝 제어부(722)는 마진 상태 정보를 마지닝 레인 상태 레지스터(725)에 기록할 수 있다.
일 실시 예에서, 레인 마지닝 제어부(722)는 송신기 설정 요청을 외부 장치(710)에 전송하도록 업스트림 포트(721)를 제어할 수 있다. 할 수 있다. 이때, 송신기 설정 요청은 외부 장치(710)에 포함된 송신기의 설정을 결정하는 동작을 요청하기 위한 것일 수 있다. 예를 들어, 업스트림 포트(721)에 포함된 Rx2의 설정은 외부 장치(710)에 포함된 Tx1의 설정에 따라 결정될 수 있다. 이때, Rx2에서 검출되는 에러의 발생 빈도가 높아지거나, Tx1의 설정에 따른 Rx2의 설정이 시스템의 요구치를 만족하지 못하는 경우, Rx2의 설정을 다시 조절하기 위한 동작이 필요하다. 이 경우, PCIe 장치(720)는 외부 장치(710)로 송신기 설정 요청을 전송함으로써, Tx1의 설정을 재결정하도록 할 수 있다. 즉, PCIe 장치(720)는 송신기 설정 요청을 통해 외부 장치(710)의 송신기 설정 동작을 유도할 수 있다.
외부 장치(710)는 송신기 설정 요청을 기초로 Tx1의 설정을 결정할 수 있다. 이후, PCIe 장치(720)는 외부 장치(710)로부터 송신기 설정 정보를 수신하도록 업스트림 포트(721)를 제어할 수 있다. 이때, 송신기 설정 정보는 외부 장치(710)에 포함된 송신기의 설정과 관련된 정보를 포함할 수 있다. 예를 들어, 송신기 설정 정보는 송신기의 설정과 관련된 힌트 등을 포함할 수 있다. PCIe 장치(720)는 송신기 설정 정보를 기초로 업스트림 포트(721)에 포함된 수신기의 설정을 결정할 수 있다.
일 실시 예에서, 송신기 설정 요청 및 송신기 설정 정보는 벤더 디파인 타입을 갖는 마진 커맨드를 통해 전송될 수 있다.
도 8은 본 발명의 일 실시 예에 따른 업스트림 포트에 의해 제어되는 송신기의 설정을 결정하는 동작을 설명하기 위한 도면이다.
도 8을 참조하면, 컴퓨팅 시스템(800)은 제1 PCIe 장치(810-1), 리타이머들(810-2, 810-3) 및 제2 PCIe 장치(820)를 포함할 수 있다. 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)은 도 7에 도시된 외부 장치(710)를 나타낼 수 있다. 제2 PCIe 장치(820)는 도 7에 도시된 PCIe 장치(720)를 나타낼 수 있다.
일 실시 예에서, 제1 PCIe 장치(810-1)는 다운스트림 포트를 포함할 수 있다. 다운스트림 포트는 송신기 Tx(A) 및 수신기 Rx(A)를 포함할 수 있다. 리타이머 X(810-2)는 송신기 Tx(B), TX(C), 수신기 Rx(B) 및 Rx(C)를 포함할 수 있다. 리타이머 Y(810-3)는 송신기 Tx(D), TX(E), 수신기 Rx(D) 및 Rx(E)를 포함할 수 있다. 제2 PCIe 장치(820)는 업 스트림 포트를 포함할 수 있다. 업스트림 포트는 링크를 통해 다운스트림 포트와 연결될 수 있다. 업스트림 포트는 송신기 Tx(F) 및 수신기 Rx(F)를 포함할 수 있다.
일 실시 예에서, 리타이머들(810-2, 810-3)은 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820) 사이에 연결될 수 있다.
일 실시 예에서, 리타이머들(810-2, 810-3)은 다운스트림 슈도 포트를 포함할 수 있다. 예를 들어, 리타이머 X(810-2)의 다운스트림 슈도 포트는 Tx(C) 및 Rx(C)를 포함할 수 있다. 리타이머 Y(810-3)의 다운스트림 슈도 포트는 Tx(E) 및 Rx(E)를 포함할 수 있다. 또한, 리타이머들(810-2, 810-3)은 업스트림 슈도 포트를 포함할 수 있다. 예를 들어, 리타이머 X(810-2)의 업스트림 슈도 포트는 Tx(B) 및 Rx(B)를 포함할 수 있다. 리타이머 Y(810-3)의 업스트림 슈도 포트는 Tx(D) 및 Rx(D)를 포함할 수 있다.
일 실시 예에서, 데이터 또는 신호가 다운스트림 포트에서 업스트림 포트로 이동하는 경로를 다운스트림 경로로 정의할 수 있다. 다운스트림 경로에서, Rx(B)는 Tx(A)에 연결되고, 데이터와 신호를 송신기 Tx(C)에 중계할 수 있다. Rx(D)는 Tx(C)에 연결되고, 데이터와 신호를 Tx(E)로 중계할 수 있다. Rx(F)는 Tx(E)와 연결될 수 있다.
리타이머들(810-2, 810-3)의 다운스트림 슈도 포트 및 업스트림 슈도 포트는 링크를 통해 업스트림 포트 및 다운스트림 포트와 연결될 수 있다.
일 실시 예에서, 데이터 또는 신호가 업스트림 포트에서 다운스트림 포트로 이동하는 경로를 업스트림 경로로 정의할 수 있다. 업스트림 경로에서, Rx(E)는 Tx(F)에 연결되고, 데이터와 신호를 송신기 Tx(D)에 중계할 수 있다. Rx(C)는 Tx(D)에 연결되고, 데이터와 신호를 Tx(B)로 중계할 수 있다. Rx(A)는 Tx(B)와 연결될 수 있다.
일 실시 예에서, 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820)는 각각 마지닝 레인 컨트롤 레지스터 및 마지닝 레인 상태 레지스터를 포함할 수 있다. 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820)는 마진 커맨드와 관련된 정보를 마지닝 레인 컨트롤 레지스터에 기록하고, 마진 상태 정보를 마지닝 레인 상태 레지스터에 기록할 수 있다.
일 실시 예에서, 제2 PCIe 장치(820)는 업스트림 포트를 통해 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)로 마진 커맨드를 전송할 수 있다. 예를 들어, 업스트림 포트는 마진 커맨드를 생성할 수 있다. 이때, 마진 커맨드는 제1 PCIe 장치(810-1), 제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)에 포함된 수신기들 중 어느 하나를 식별하기 위한 정보를 포함할 수 있다. 업스트림 포트는 컨트롤 스킵 오더 세트를 통해 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)로 마진 커맨드를 제공할 수 있다.
제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)들은 마진 커맨드에 응답하여 복수의 레인들 각각의 마진 상태 정보를 획득할 수 있다. 예를 들어, 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)들은 마진 커맨드에 대응되는 레인 마지닝 동작을 수행하여 마진 상태 정보를 획득할 수 있다. 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)들은 마진 커맨드에 응답하여 컨트롤 스킵 오더 세트를 통해 제2 PCIe 장치(820)로 마진 상태 정보를 전송할 수 있다. 예를 들어, 다운스트림 포트는 마진 커맨드에 응답하여 컨트롤 스킵 오더 세트를 통해 업스트림 포트로 마진 상태 정보를 전송할 수 있다.
또한, 제2 PCIe 장치(820)는 마진 커맨드에 대한 응답으로 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)들로부터 마진 상태 정보를 수신할 수 있다. 예를 들어, 업스트림 포트는 마진 커맨드에 대한 응답으로 다운스트림 포트로부터 마진 상태 정보를 수신할 수 있다. 제2 PCIe 장치(820)는 마진 상태 정보를 기초로 업스트림 포트의 설정을 결정할 수 있다. 예를 들어, 제2 PCIe 장치(820)는 마진 상태 정보를 기초로 업스트림 포트에 포함된 Tx(F)의 설정을 결정할 수 있다. 이후, 제1 PCIe 장치(810-1)는 제2 PCIe 장치(820)에서 결정된 Tx(F)의 설정을 기초로 다운스트림 포트에 포함된 Rx(A)의 설정을 결정할 수 있다. 또한, 리타이머들(810-2, 810-3)들은 제2 PCIe 장치(820)에서 결정된 Tx(F)의 설정을 기초로 Rx(C) 및 Rx(E)의 설정을 결정할 수 있다.
따라서, 본 발명의 실시 예에 따르면, 업스트림 포트를 통해 레인 마지닝 동작을 제어함으로써, 실시간으로 업스트림 포트에 포함된 송신기 및 수신기의 설정을 튜닝할 수 있고, 링크의 상태를 최적화할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 업스트림 포트에 의해 제어되는 수신기의 설정을 결정하는 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 컴퓨팅 시스템(800)은 제1 PCIe 장치(810-1), 리타이머들(810-2, 810-3) 및 제2 PCIe 장치(820)를 포함할 수 있다. 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)은 도 7에 도시된 외부 장치(710)를 나타낼 수 있다. 제2 PCIe 장치(820)는 도 7에 도시된 PCIe 장치(720)를 나타낼 수 있다.
일 실시 예에서, 제1 PCIe 장치(810-1)는 다운스트림 포트를 포함할 수 있다. 다운스트림 포트는 송신기 Tx(A) 및 수신기 Rx(A)를 포함할 수 있다. 리타이머 X(810-2)는 송신기 Tx(B), TX(C), 수신기 Rx(B) 및 Rx(C)를 포함할 수 있다. 리타이머 Y(810-3)는 송신기 Tx(D), TX(E), 수신기 Rx(D) 및 Rx(E)를 포함할 수 있다. 제2 PCIe 장치(820)는 업 스트림 포트를 포함할 수 있다. 업스트림 포트는 링크를 통해 다운스트림 포트와 연결될 수 있다. 업스트림 포트는 송신기 Tx(F) 및 수신기 Rx(F)를 포함할 수 있다.
일 실시 예에서, 리타이머들(810-2, 810-3)은 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820) 사이에 연결될 수 있다.
일 실시 예에서, 리타이머들(810-2, 810-3)은 다운스트림 슈도 포트를 포함할 수 있다. 예를 들어, 리타이머 X(810-2)의 다운스트림 슈도 포트는 Tx(C) 및 Rx(C)를 포함할 수 있다. 리타이머 Y(810-3)의 다운스트림 슈도 포트는 Tx(E) 및 Rx(E)를 포함할 수 있다. 또한, 리타이머들(810-2, 810-3)은 업스트림 슈도 포트를 포함할 수 있다. 예를 들어, 리타이머 X(810-2)의 업스트림 슈도 포트는 Tx(B) 및 Rx(B)를 포함할 수 있다. 리타이머 Y(810-3)의 업스트림 슈도 포트는 Tx(D) 및 Rx(D)를 포함할 수 있다.
일 실시 예에서, 데이터 또는 신호가 다운스트림 포트에서 업스트림 포트로 이동하는 경로를 다운스트림 경로로 정의할 수 있다. 다운스트림 경로에서, Rx(B)는 Tx(A)에 연결되고, 데이터와 신호를 송신기 Tx(C)에 중계할 수 있다. Rx(D)는 Tx(C)에 연결되고, 데이터와 신호를 Tx(E)로 중계할 수 있다. Rx(F)는 Tx(E)와 연결될 수 있다.
일 실시 예에서, 데이터 또는 신호가 업스트림 포트에서 다운스트림 포트로 이동하는 경로를 업스트림 경로로 정의할 수 있다. 업스트림 경로에서, Rx(E)는 Tx(F)에 연결되고, 데이터와 신호를 송신기 Tx(D)에 중계할 수 있다. Rx(C)는 Tx(D)에 연결되고, 데이터와 신호를 Tx(B)로 중계할 수 있다. Rx(A)는 Tx(B)와 연결될 수 있다.
일 실시 예에서, 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820)는 각각 마지닝 레인 컨트롤 레지스터 및 마지닝 레인 상태 레지스터를 포함할 수 있다. 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820)는 마진 커맨드와 관련된 정보를 마지닝 레인 컨트롤 레지스터에 기록하고, 마진 상태 정보를 마지닝 레인 상태 레지스터에 기록할 수 있다.
제2 PCIe 장치(820)는 업스트림 포트를 통해 송신기 설정 요청을 다운스트림 포트로 전송할 수 있다. 이때, 송신기 설정 요청은 다운스트림 포트에 포함된 송신기의 설정을 결정하는 동작을 요청하기 위한 것일 수 있다. 예를 들어, 업스트림 포트에 포함된 Rx(F)의 설정은 다운스트림 포트에 포함된 Tx(A)의 설정에 따라 결정될 수 있다. 이때, Rx(F)에서 검출되는 에러의 발생 빈도가 높아지거나, Tx(A)의 설정에 따른 Rx(F)의 설정이 시스템의 요구치를 만족하지 못하는 경우, Rx(F)의 설정을 다시 조절하기 위한 동작이 필요하다. 이 경우, 제2 PCIe 장치(820)는 다운스트림 포트로 송신기 설정 요청을 전송함으로써, Tx(A)의 설정을 재결정하도록 할 수 있다. 즉, 제2 PCIe 장치(820)는 송신기 설정 요청을 통해 다운스트림 포트의 송신기 설정 동작을 유도할 수 있다.
제1 PCIe 장치(810-1)는 송신기 설정 요청을 기초로 다운스트림 포트에 포함된 송신기의 설정을 결정할 수 있다. 이후, 제2 PCIe 장치(820)는 업스트림 포트를 통해 제1 PCIe 장치(810-1)로부터 송신기 설정 정보를 수신할 수 있다. 이때, 송신기 설정 정보는 다운스트림 포트에 포함된 송신기의 설정과 관련된 정보를 포함할 수 있다. 예를 들어, 송신기 설정 정보는 송신기의 설정과 관련된 힌트 등을 포함할 수 있다. 제2 PCIe 장치(820)는 송신기 설정 정보를 기초로 업스트림 포트에 포함된 수신기의 설정을 결정할 수 있다.
일 실시 예에서, 송신기 설정 요청 및 송신기 설정 정보는 벤더 디파인 타입을 갖는 마진 커맨드를 통해 전송될 수 있다.
도 10은 본 발명의 일 실시 예에 따른 다운스트림 포트에 의해 제어되는 송신기의 설정을 결정하는 동작을 설명하기 위한 도면이다.
도 10을 참조하면, 컴퓨팅 시스템(800)은 제1 PCIe 장치(810-1), 리타이머들(810-2, 810-3) 및 제2 PCIe 장치(820)를 포함할 수 있다. 제1 PCIe 장치(810-1) 및 리타이머들(810-2, 810-3)은 도 7에 도시된 외부 장치(710)를 나타낼 수 있다. 제2 PCIe 장치(820)는 도 7에 도시된 PCIe 장치(720)를 나타낼 수 있다.
일 실시 예에서, 제1 PCIe 장치(810-1)는 다운스트림 포트를 포함할 수 있다. 다운스트림 포트는 송신기 Tx(A) 및 수신기 Rx(A)를 포함할 수 있다. 리타이머 X(810-2)는 송신기 Tx(B), TX(C), 수신기 Rx(B) 및 Rx(C)를 포함할 수 있다. 리타이머 Y(810-3)는 송신기 Tx(D), TX(E), 수신기 Rx(D) 및 Rx(E)를 포함할 수 있다. 제2 PCIe 장치(820)는 업 스트림 포트를 포함할 수 있다. 업스트림 포트는 링크를 통해 다운스트림 포트와 연결될 수 있다. 업스트림 포트는 송신기 Tx(F) 및 수신기 Rx(F)를 포함할 수 있다.
일 실시 예에서, 리타이머들(810-2, 810-3)은 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820) 사이에 연결될 수 있다.
일 실시 예에서, 리타이머들(810-2, 810-3)은 다운스트림 슈도 포트를 포함할 수 있다. 예를 들어, 리타이머 X(810-2)의 다운스트림 슈도 포트는 Tx(C) 및 Rx(C)를 포함할 수 있다. 리타이머 Y(810-3)의 다운스트림 슈도 포트는 Tx(E) 및 Rx(E)를 포함할 수 있다. 또한, 리타이머들(810-2, 810-3)은 업스트림 슈도 포트를 포함할 수 있다. 예를 들어, 리타이머 X(810-2)의 업스트림 슈도 포트는 Tx(B) 및 Rx(B)를 포함할 수 있다. 리타이머 Y(810-3)의 업스트림 슈도 포트는 Tx(D) 및 Rx(D)를 포함할 수 있다.
일 실시 예에서, 데이터 또는 신호가 다운스트림 포트에서 업스트림 포트로 이동하는 경로를 다운스트림 경로로 정의할 수 있다. 다운스트림 경로에서, Rx(B)는 Tx(A)에 연결되고, 데이터와 신호를 송신기 Tx(C)에 중계할 수 있다. Rx(D)는 Tx(C)에 연결되고, 데이터와 신호를 Tx(E)로 중계할 수 있다. Rx(F)는 Tx(E)와 연결될 수 있다.
리타이머들(810-2, 810-3)의 다운스트림 슈도 포트 및 업스트림 슈도 포트는 링크를 통해 업스트림 포트 및 다운스트림 포트와 연결될 수 있다.
일 실시 예에서, 데이터 또는 신호가 업스트림 포트에서 다운스트림 포트로 이동하는 경로를 업스트림 경로로 정의할 수 있다. 업스트림 경로에서, Rx(E)는 Tx(F)에 연결되고, 데이터와 신호를 송신기 Tx(D)에 중계할 수 있다. Rx(C)는 Tx(D)에 연결되고, 데이터와 신호를 Tx(B)로 중계할 수 있다. Rx(A)는 Tx(B)와 연결될 수 있다.
일 실시 예에서, 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820)는 각각 마지닝 레인 컨트롤 레지스터 및 마지닝 레인 상태 레지스터를 포함할 수 있다. 제1 PCIe 장치(810-1) 및 제2 PCIe 장치(820)는 마진 커맨드와 관련된 정보를 마지닝 레인 컨트롤 레지스터에 기록하고, 마진 상태 정보를 마지닝 레인 상태 레지스터에 기록할 수 있다.
일 실시 예에서, 제1 PCIe 장치(810-1)는 다운스트림 포트를 통해 제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)로 마진 커맨드를 전송할 수 있다. 예를 들어, 다운스트림 포트는 마진 커맨드를 생성할 수 있다. 이때, 마진 커맨드는 제1 PCIe 장치(810-1), 제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)에 포함된 수신기들 중 어느 하나를 식별하기 위한 정보를 포함할 수 있다. 다운스트림 포트는 컨트롤 스킵 오더 세트를 통해 제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)로 마진 커맨드를 제공할 수 있다.
제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)들은 마진 커맨드에 응답하여 복수의 레인들 각각의 마진 상태 정보를 획득할 수 있다. 예를 들어, 제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)들은 마진 커맨드에 대응되는 레인 마지닝 동작을 수행하여 마진 상태 정보를 획득할 수 있다. 제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)들은 마진 커맨드에 응답하여 컨트롤 스킵 오더 세트를 통해 제1 PCIe 장치(810-1)로 마진 상태 정보를 전송할 수 있다. 예를 들어, 업스트림 포트는 마진 커맨드에 응답하여 컨트롤 스킵 오더 세트를 통해 다운스트림 포트로 마진 상태 정보를 전송할 수 있다.
또한, 제1 PCIe 장치(810-1)는 마진 커맨드에 대한 응답으로 제2 PCIe 장치(820) 및 리타이머들(810-2, 810-3)들로부터 마진 상태 정보를 수신할 수 있다. 예를 들어, 다운스트림 포트는 마진 커맨드에 대한 응답으로 업스트림 포트로부터 마진 상태 정보를 수신할 수 있다. 제1 PCIe 장치(810-1)는 마진 상태 정보를 기초로 업스트림 포트의 설정을 결정할 수 있다. 예를 들어, 제1 PCIe 장치(810-1)는 마진 상태 정보를 기초로 업스트림 포트에 포함된 Tx(A)의 설정을 결정할 수 있다. 이후, 제2 PCIe 장치(820)는 제1 PCIe 장치(810-1)에서 결정된 Tx(A)의 설정을 기초로 업스트림 포트에 포함된 Rx(F)의 설정을 결정할 수 있다. 또한, 리타이머들(810-2, 810-3)들은 제1 PCIe 장치(810-1)에서 결정된 Tx(A)의 설정을 기초로 Rx(C) 및 Rx(E)의 설정을 결정할 수 있다.
따라서, 본 발명의 실시 예에 따르면, 업스트림 포트뿐만 아니라 다운 스트림 포트에서도 레인 마지닝 동작을 제어함으로써, 링크의 상태를 최적화하기 위한 수단을 다양화할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 업스트림 포트의 설정을 결정하는 방법을 설명하기 위한 순서도이다.
도 11에 도시된 방법은 예를 들어, 도 7 또는 도 8에 도시된 컴퓨팅 시스템에 의해 수행될 수 있다. 이하에서는 설명의 편의를 위해, 도 8에 도시된 컴퓨팅 시스템(800)을 기준으로 설명하도록 한다.
단계 S1101에서, 컴퓨팅 시스템(800)은 제2 PCIe 장치에서 제1 PCIe 장치 및 리타이머들로 레인 마지닝 동작을 요청하는 마진 커맨드를 전송할 수 있다.
이때, 마진 상태 정보는 아이 마진 정보, 에러 정보 등을 포함할 수 있다.
단계 S1103에서, 컴퓨팅 시스템(800)은 제1 PCIe 장치 및 리타이머들에서 레인 마지닝 동작을 수행할 수 있다.
단계 S1105에서, 컴퓨팅 시스템(800)은 제2 PCIe 장치에서 제1 PCIe 장치 및 리타이머들로부터 복수의 레인들 각각의 마진 상태 정보를 수신할 수 있다.
단계 S1107에서, 컴퓨팅 시스템(800)은 제2 PCIe 장치에서 마진 상태 정보를 기초로 업스트림 포트의 설정을 결정할 수 있다.
이때, 컴퓨팅 시스템(800)은 마진 상태 정보를 기초로 제2 PCIe 장치에 포함된 송신기의 설정을 결정할 수 있다.
도 12는 본 발명의 일 실시 예에 따른 수신기의 설정을 결정하는 방법을 설명하기 위한 순서도이다.
도 12에 도시된 방법은 예를 들어, 도 7 또는 도 8에 도시된 컴퓨팅 시스템에 의해 수행될 수 있다. 이하에서는 설명의 편의를 위해, 도 8에 도시된 컴퓨팅 시스템(800)을 기준으로 설명하도록 한다.
단계 S1201에서, 컴퓨팅 시스템(800)은 제2 PCIe 장치에서 제1 PCIe 장치로 송신기 설정 요청을 전송할 수 있다.
단계 S1203에서, 컴퓨팅 시스템(800)은 제1 PCIe 장치에서 송신기 설정 동작을 수행할 수 있다.
단계 S1205에서, 컴퓨팅 시스템(800)은 제2 PCIe 장치에서 제1 PCIe 장치로부터 송신기 설정 정보를 수신할 수 있다. 이때, 송신기 설정 정보는 제1 PCIe 장치에 포함된 송신기의 설정과 관련된 정보를 포함할 수 있다.
단계 S1207에서, 컴퓨팅 시스템(800)은 제2 PCIe 장치에서 송신기 설정 정보를 기초로 수신기의 설정을 결정할 수 있다.
도 13은 본 발명의 일 실시 예에 따른 다운스트림 포트의 설정을 결정하는 방법을 설명하기 위한 순서도이다.
도 13에 도시된 방법은 예를 들어, 도 7 또는 도 8에 도시된 컴퓨팅 시스템에 의해 수행될 수 있다. 이하에서는 설명의 편의를 위해, 도 8에 도시된 컴퓨팅 시스템(800)을 기준으로 설명하도록 한다.
단계 S1301에서, 컴퓨팅 시스템(800)은 제1 PCIe 장치에서 제2 PCIe 장치 및 리타이머들로 레인 마지닝 동작을 요청하는 마진 커맨드를 전송할 수 있다.
이때, 마진 상태 정보는 아이 마진 정보, 에러 정보 등을 포함할 수 있다.
단계 S1303에서, 컴퓨팅 시스템(800)은 제2 PCIe 장치 및 리타이머들에서 레인 마지닝 동작을 수행할 수 있다.
단계 S1305에서, 컴퓨팅 시스템(800)은 제1 PCIe 장치에서 제2 PCIe 장치 및 리타이머들로부터 복수의 레인들 각각의 마진 상태 정보를 수신할 수 있다.
단계 S1307에서, 컴퓨팅 시스템(800)은 제1 PCIe 장치에서 마진 상태 정보를 기초로 다운스트림 포트의 설정을 결정할 수 있다.
이때, 컴퓨팅 시스템(800)은 마진 상태 정보를 기초로 제1 PCIe 장치에 포함된 송신기의 설정을 결정할 수 있다.
100: 컴퓨팅 시스템
110: CPU
120: 루트 콤플렉스
130: 메모리
140: 스위치
150-1~150-3: PCIe 엔드 포인트
160-1, 160-2: 레거시 엔드 포인트
170: PCIe 브릿지

Claims (30)

  1. 복수의 레인들을 포함하는 링크를 통해 업스트림 경로에 위치한 하나 이상의 외부 장치들과 연결된 업스트림 포트;
    상기 복수의 레인들 각각의 마진 상태 정보를 획득하는 레인 마지닝(lane margining) 동작을 요청하는 마진 커맨드와 관련된 정보를 저장하는 마지닝 레인 컨트롤 레지스터;
    상기 마진 상태 정보를 저장하는 마지닝 레인 상태 레지스터;
    상기 마지닝 레인 컨트롤 레지스터에 상기 마진 커맨드와 관련된 정보를 기록하고, 상기 외부 장치들에 상기 마지닝 레인 컨트롤 레지스터에 기록된 상기 마진 커맨드를 전송하도록 상기 업스트림 포트를 제어하고, 상기 외부 장치들로부터 상기 마진 상태 정보를 수신하도록 상기 업스트림 포트를 제어하고, 상기 업스트림 포트를 통해 수신된 상기 마진 상태 정보를 상기 마지닝 레인 상태 레지스터를 기록하는 레인 마지닝 제어부; 및
    상기 마지닝 레인 상태 레지스터로부터 상기 마진 상태 정보를 수신하고, 상기 마진 상태 정보를 기초로 상기 업스트림 포트의 설정을 결정하는 포트 설정 제어부;를 포함하는 PCIe 장치
  2. 제1 항에 있어서, 상기 마진 상태 정보는,
    상기 복수의 레인들 각각을 통해 송수신되는 신호의 품질(quality)을 나타내는 아이 마진(eye margin) 정보 및 상기 레인 마지닝 동작에 따라 발생한 에러와 관련된 정보를 나타내는 에러 정보 중 적어도 하나 이상을 포함하는 PCIe 장치.
  3. 제1 항에 있어서, 상기 마진 커맨드 및 상기 마진 상태 정보는,
    컨트롤 스킵 오더 세트(Control Skip Ordered Set)를 통해 전송되는 PCIe 장치.
  4. 제1 항에 있어서, 상기 업스트림 포트는,
    상기 마진 커맨드를 전송하는 송신기; 및
    상기 마진 상태 정보를 수신하는 수신기;를 포함하는 PCIe 장치.
  5. 제4 항에 있어서, 상기 포트 설정 제어부는,
    상기 마진 상태 정보를 기초로 상기 송신기의 설정을 결정하는 PCIe 장치.
  6. 제4 항에 있어서, 상기 레인 마지닝 제어부는,
    상기 외부 장치들의 송신기 설정 동작을 요청하는 송신기 설정 요청을 상기 외부 장치들에 전송하고, 상기 외부 장치들로부터 상기 외부 장치들에 포함된 송신기의 설정과 관련된 송신기 설정 정보를 수신하도록 상기 업스트림 포트를 제어하고,
    상기 포트 설정 제어부는,
    상기 송신기 설정 정보를 기초로 상기 수신기의 설정을 결정하는 PCIe 장치.
  7. 제6 항에 있어서, 상기 송신기 설정 요청 및 상기 송신기 설정 정보는,
    벤더 디파인(vender defined) 타입을 갖는 마진 커맨드를 통해 전송되는 PCIe 장치.
  8. 삭제
  9. 제1 항에 있어서, 상기 PCIe 장치는,
    다운스트림 경로에 위치한 다운스트림 컴포넌트(downstream component)이고,
    상기 외부 장치들은,
    상기 업스트림 경로에 위치한 업스트림 컴포넌트(upstream component) 및 하나 이상의 리타이머(retimer)들에 포함된 PCIe 장치.
  10. 다운스트림 포트를 포함하는 제1 PCIe 장치; 및
    복수의 레인들을 포함하는 링크를 통해 상기 다운스트림 포트와 연결된 업스트림 포트, 마진 커맨드와 관련된 정보를 저장하는 마지닝 레인 컨트롤 레지스터 및 상기 복수의 레인들 각각의 마진 상태 정보를 저장하는 마지닝 레인 상태 레지스터를 포함하고, 상기 마지닝 레인 컨트롤 레지스터에 상기 마진 커맨드와 관련된 정보를 기록하고, 상기 업스트림 포트를 통해 상기 제1 PCIe 장치로 상기 마지닝 레인 컨트롤 레지스터에 기록된 상기 마진 커맨드를 전송하고, 상기 제1 PCIe 장치로부터 상기 마진 커맨드에 대한 응답으로 상기 업스트림 포트를 통해 상기 마진 상태 정보를 수신하고, 상기 업스트림 포트를 통해 수신된 상기 마진 상태 정보를 상기 마지닝 레인 상태 레지스터에 기록하고, 상기 마지닝 레인 상태 레지스터에 기록된 상기 마진 상태 정보를 기초로 상기 업스트림 포트의 설정을 결정하는 제2 PCIe 장치를 포함하는 컴퓨팅 시스템.
  11. 제10 항에 있어서, 상기 제1 PCIe 장치는,
    상기 마진 커맨드에 대응되는 레인 마지닝(lane margining) 동작을 수행하여 상기 마진 상태 정보를 획득하고, 상기 마진 커맨드에 응답하여 컨트롤 스킵 오더 세트(Control Skip Ordered Set)를 통해 상기 제2 PCIe 장치로 상기 마진 상태 정보를 전송하는 컴퓨팅 시스템.
  12. 제10 항에 있어서, 상기 마진 상태 정보는,
    상기 복수의 레인들 각각을 통해 송수신되는 신호의 품질(quality)을 나타내는 아이 마진(eye margin) 정보 및 상기 마진 커맨드에 대응되는 레인 마지닝 동작에 따라 발생한 에러와 관련된 정보를 나타내는 에러 정보 중 적어도 하나 이상을 포함하는 컴퓨팅 시스템.
  13. 제10 항에 있어서, 상기 제2 PCIe 장치는,
    컨트롤 스킵 오더 세트(Control Skip Ordered Set)를 통해 상기 마진 커맨드를 전송하는 컴퓨팅 시스템.
  14. 제10 항에 있어서,
    각각 상기 링크를 통해 상기 다운스트림 포트 및 상기 업스트림 포트와 연결된 하나 이상의 리타이머(retimer)들을 더 포함하는 컴퓨팅 시스템.
  15. 제14 항에 있어서, 상기 마진 커맨드는,
    상기 제1 PCIe 장치, 상기 제2 PCIe 장치 및 상기 리타이머들에 포함된 수신기들 중 어느 하나를 식별하기 위한 정보를 포함하는 컴퓨팅 시스템.
  16. 제14 항에 있어서,
    상기 제2 PCIe 장치는,
    상기 리타이머들로부터 상기 마진 커맨드에 대한 응답으로 상기 마진 상태 정보를 수신하는 컴퓨팅 시스템.
  17. 제16 항에 있어서, 상기 제2 PCIe 장치는,
    상기 마진 상태 정보를 기초로 상기 업스트림 포트에 포함된 송신기의 설정을 결정하고,
    상기 제1 PCIe 장치 및 상기 리타이머들 각각은,
    상기 업스트림 포트에 포함된 송신기의 설정을 기초로 상기 다운스트림 포트 및 상기 리타이머들에 포함된 수신기들의 설정을 결정하는 컴퓨팅 시스템.
  18. 제10 항에 있어서, 상기 제2 PCIe 장치는,
    상기 업스트림 포트를 통해 상기 다운스트림 포트의 송신기 설정 동작을 요청하는 송신기 설정 요청을 상기 제1 PCIe 장치로 전송하는 컴퓨팅 시스템.
  19. 제18 항에 있어서, 상기 제1 PCIe 장치는,
    상기 송신기 설정 요청을 기초로 상기 다운스트림 포트에 포함된 송신기의 설정을 결정하고,
    상기 제2 PCIe 장치는,
    상기 업스트림 포트를 통해 상기 제1 PCIe 장치로부터 상기 다운스트림 포트에 포함된 송신기의 설정과 관련된 송신기 설정 정보를 수신하고, 상기 송신기 설정 정보를 기초로 상기 업스트림에 포함된 수신기의 설정을 결정하는 컴퓨팅 시스템.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020210042642A 2020-06-16 2021-04-01 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 KR102519480B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020210042642A KR102519480B1 (ko) 2021-04-01 2021-04-01 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US17/349,775 US11546128B2 (en) 2020-06-16 2021-06-16 Device and computing system including the device
US17/350,945 US11599495B2 (en) 2021-04-01 2021-06-17 Device for performing communication and computing system including the same
CN202110782305.2A CN115185875A (zh) 2021-04-01 2021-07-12 执行通信的装置和包括该装置的计算系统
TW110131670A TW202240422A (zh) 2021-04-01 2021-08-26 執行通信的裝置和包括該裝置的計算系統
US17/840,340 US20220311590A1 (en) 2020-06-16 2022-06-14 Device and computing system including the device
US18/350,220 US20230353341A1 (en) 2020-06-16 2023-07-11 Device and computing system including the device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210042642A KR102519480B1 (ko) 2021-04-01 2021-04-01 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20220136691A KR20220136691A (ko) 2022-10-11
KR102519480B1 true KR102519480B1 (ko) 2023-04-10

Family

ID=83450331

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210042642A KR102519480B1 (ko) 2020-06-16 2021-04-01 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템

Country Status (4)

Country Link
US (1) US11599495B2 (ko)
KR (1) KR102519480B1 (ko)
CN (1) CN115185875A (ko)
TW (1) TW202240422A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200364108A1 (en) * 2015-09-26 2020-11-19 Intel Corporation In-band margin probing on an operational interconnect

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025457A (en) 1989-04-21 1991-06-18 Codex Corporation Synchronizing continuous bit stream oriented terminals in a communications network
GB9410943D0 (en) 1994-06-01 1994-07-20 Newbridge Networks Corp Clock recovery unit
US6029194A (en) 1997-06-10 2000-02-22 Tektronix, Inc. Audio/video media server for distributed editing over networks
US5958027A (en) 1997-08-05 1999-09-28 Advanced Micro Devices, Inc. Method and system for optimizing the flow of isochronous data and clock rate information
US6061802A (en) 1998-07-02 2000-05-09 Advanced Micro Devices, Inc. Software based clock synchronization
US6279058B1 (en) 1998-07-02 2001-08-21 Advanced Micro Devices, Inc. Master isochronous clock structure having a clock controller coupling to a CPU and two data buses
US7031306B2 (en) 2000-04-07 2006-04-18 Artel Video Systems, Inc. Transmitting MPEG data packets received from a non-constant delay network
GB0100094D0 (en) 2001-01-03 2001-02-14 Vtech Communications Ltd System clock synchronisation using phased-lock loop
US7103125B1 (en) 2001-05-16 2006-09-05 Lexmark International, Inc. Method and apparatus for effecting synchronous pulse generation for use in serial communications
US7295578B1 (en) 2001-09-12 2007-11-13 Lyle James D Method and apparatus for synchronizing auxiliary data and video data transmitted over a TMDS-like link
JP3626452B2 (ja) 2001-12-27 2005-03-09 株式会社東芝 半導体装置
US7719371B2 (en) 2004-03-22 2010-05-18 Integrated Device Technology, Inc. Spread spectrum clock and reference signal generator
US7890735B2 (en) 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US20060209684A1 (en) 2005-03-18 2006-09-21 Via Technologies, Inc. Data rate controller, and method of control thereof
TWI282218B (en) 2005-07-01 2007-06-01 Realtek Semiconductor Corp Method of generating spread spectrum and/or over-clock and its circuit thereof
US20070041391A1 (en) 2005-08-18 2007-02-22 Micron Technology, Inc. Method and apparatus for controlling imager output data rate
US8867683B2 (en) 2006-01-27 2014-10-21 Ati Technologies Ulc Receiver and method for synchronizing and aligning serial streams
US20080141063A1 (en) 2006-12-12 2008-06-12 Ridgeway Curtis A Real time elastic FIFO latency optimization
US7936790B2 (en) 2007-08-30 2011-05-03 Silicon Image, Inc. Synchronizing related data streams in interconnection networks
WO2009105095A1 (en) 2008-02-20 2009-08-27 Hewlett-Packard Development Company, L.P. Redriver with two reference clocks and method of operation thereof
TW201002055A (en) 2008-06-24 2010-01-01 Sunplus Technology Co Ltd Image format conversion system
US20100061424A1 (en) 2008-09-09 2010-03-11 International Business Machines Corporation Spread Spectrum Controller with Bit Error Rate Feedback
US8285884B1 (en) 2008-11-03 2012-10-09 Integrated Device Technology Inc. Data aggregation system and method for deskewing data at selectable data rates
TWI390991B (zh) 2008-11-05 2013-03-21 Realtek Semiconductor Corp 音訊裝置與音訊處理方法
US8548011B2 (en) 2010-12-02 2013-10-01 Plx Technology, Inc. Dynamic host clock compensation
US8611486B2 (en) 2011-04-08 2013-12-17 Silicon Image, Inc. Adjustment of clock signals regenerated from a data stream
WO2013001631A1 (ja) 2011-06-29 2013-01-03 富士通株式会社 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
US9264747B2 (en) 2012-03-11 2016-02-16 Broadcom Corporation Audio/video channel bonding configuration adaptations
US8781086B2 (en) 2012-06-26 2014-07-15 Adc Dsl Systems, Inc. System and method for circuit emulation
US8856573B2 (en) * 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US8879680B2 (en) 2012-11-06 2014-11-04 Ati Technologies Ulc Adaptive clock mismatch compensation symbol insertion in signal transmissions
US9337934B1 (en) 2012-11-29 2016-05-10 Clariphy Communications, Inc. Coherent transceiver architecture
EP3087403B1 (en) 2013-12-26 2020-01-22 Intel Corporation Interconnect retimer enhancements
US20150350656A1 (en) 2014-05-30 2015-12-03 Qualcomm Innovation Center, Inc. Dynamic video core clock and voltage scaling
US9626270B2 (en) * 2014-09-26 2017-04-18 Intel Corporation Link retraining based on runtime performance characteristics
US9933809B2 (en) 2014-11-14 2018-04-03 Cavium, Inc. Automatic data rate matching
US10091119B2 (en) 2015-03-20 2018-10-02 Harman International Industries, Incorporated Managing data in a static network prior to initialization
KR102507714B1 (ko) 2016-05-02 2023-03-09 삼성전자주식회사 SRIS를 지원하는 PCIe 장치
US10019385B2 (en) 2016-06-29 2018-07-10 Intel Corporation Method and apparatus of real-time retimer delay measurement
US10229081B2 (en) * 2016-09-26 2019-03-12 Dell Products, Lp System level crosstalk mitigation
KR20180092125A (ko) 2017-02-08 2018-08-17 에스케이하이닉스 주식회사 반도체 장치
US10860449B2 (en) 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
US10880137B2 (en) * 2017-05-12 2020-12-29 Intel Corporation Bypassing equalization at lower data rates
EP3666182A1 (en) 2018-12-11 2020-06-17 Koninklijke Philips N.V. Device, system and method for providing bio-feedback to a user
CN113396396A (zh) * 2019-01-31 2021-09-14 特克特朗尼克公司 高速输入/输出裕度测试的系统、方法和设备
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management
US11886312B2 (en) 2020-04-07 2024-01-30 Intel Corporation Characterizing error correlation based on error logging for computer buses
CN113765363A (zh) 2020-06-01 2021-12-07 株式会社村田制作所 频率调制的dc-dc转换器的降emi方法及其装置
KR102415309B1 (ko) 2020-06-16 2022-07-01 에스케이하이닉스 주식회사 인터페이스 장치 및 그 동작 방법
US11546128B2 (en) 2020-06-16 2023-01-03 SK Hynix Inc. Device and computing system including the device
US20210050941A1 (en) * 2020-07-06 2021-02-18 Intel Corporation Characterizing and margining multi-voltage signal encoding for interconnects

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200364108A1 (en) * 2015-09-26 2020-11-19 Intel Corporation In-band margin probing on an operational interconnect

Also Published As

Publication number Publication date
CN115185875A (zh) 2022-10-14
US11599495B2 (en) 2023-03-07
TW202240422A (zh) 2022-10-16
KR20220136691A (ko) 2022-10-11
US20220318180A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
EP1719289B1 (en) Generating topology information identifying devices in a network topology
KR102559387B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
US20210391973A1 (en) Device and computing system including the device
US8990470B1 (en) Virtual hubs for communication interface
US20160350250A1 (en) Input output data alignment
KR102518317B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
KR102635457B1 (ko) PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
KR102519480B1 (ko) PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US11815941B2 (en) Peripheral component interconnect express device and operating method thereof
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME
US20240012770A1 (en) Interface device having plurality of ports and method of operating the same
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
US20230315672A1 (en) Interface device and computing system including the same
KR102519484B1 (ko) PCIe 인터페이스 장치 및 이를 포함하는 시스템
US20240104035A1 (en) Peripheral component interconnect express device and operating method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant