KR20180037783A - 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법 - Google Patents

반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법 Download PDF

Info

Publication number
KR20180037783A
KR20180037783A KR1020160128398A KR20160128398A KR20180037783A KR 20180037783 A KR20180037783 A KR 20180037783A KR 1020160128398 A KR1020160128398 A KR 1020160128398A KR 20160128398 A KR20160128398 A KR 20160128398A KR 20180037783 A KR20180037783 A KR 20180037783A
Authority
KR
South Korea
Prior art keywords
lane
link
ports
lane number
pcie
Prior art date
Application number
KR1020160128398A
Other languages
English (en)
Other versions
KR102569761B1 (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 KR1020160128398A priority Critical patent/KR102569761B1/ko
Priority to US15/695,058 priority patent/US10747697B2/en
Priority to DE102017120447.4A priority patent/DE102017120447A1/de
Priority to CN201710875026.4A priority patent/CN107918594B/zh
Publication of KR20180037783A publication Critical patent/KR20180037783A/ko
Application granted granted Critical
Publication of KR102569761B1 publication Critical patent/KR102569761B1/ko

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/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/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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • 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
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법이 제공된다. 반도체 장치는, PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 포트; 및 상기 복수의 포트로부터 설정되는 복수의 레인(Lane)으로 이루어지는 링크(Link)를 결정하는 PCIe 컨트롤러를 포함하고, 상기 PCIe 컨트롤러는, 상기 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제1 레인 번호 협상(Lane number negotiation)을 수행하고, 상기 복수의 포트에 대해, 상기 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행한 후, 상기 제1 레인 번호 협상 및 상기 제2 레인 번호 협상의 결과에 기초하여 링크 폭(Link width)을 결정하는 LTSSM(Link Training and Status State Machine)을 포함한다.

Description

반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법{SEMICONDUCTOR DEVICE, SEMICONDUCTOR SYSTEM AND METHOD FOR OPERATING SEMICONDUCTOR DEVICE}
본 발명은 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법에 관한 것이다.
PCI 익스프레스(PCI Express, PCIe) 인터페이스 프로토콜은 고속 데이터 전송을 위해 컴퓨팅 산업에서 널리 이용되고 있다. PCI 익스프레스(PCI Express, PCIe) 인터페이스 프로토콜은 PCI SIG가 책정한 직렬 전송 형태의 인터페이스로서, PCI SIG로부터 제공되는 "PCI Express Base Specification Revision 3.1a"과 같은 PCIe 명세에 의해 정의된다.
PCIe는 동시에 데이터를 전송 및 수신할 수 있는 양방향 커넥션(bidirectional connection)을 제공한다. 양방향 커넥션은 심플렉스 전송 경로(simplex transmit path)와 심플렉스 수신 경로(simplex receive path)를 포함하며, 이와 같은 구조를 강조하기 위해 PCIe 인터페이스 프로토콜이 채용하는 양방향 커넥션 모델을 이중-심플렉스 커넥션(dual-simplex connection) 모델이라고도 한다.
PCIe 인터페이스 프로토콜을 이용하여 데이터를 주고 받는 PCIe 장치들 사이의 전송 경로 및 수신 경로들은 링크(Link)로 정의된다. 링크는 전송 경로 및 수신 경로의 쌍을 하나 이상 포함하며, 여기서 하나의 쌍을 이루는 전송 경로와 수신 경로는 레인(Lane)으로 정의된다. 그리고 하나의 링크를 이루는 레인의 개수를 링크 폭(Link width)이라고 정의한다.
PCIe 장치들이 서로 데이터를 주고 받기 위해, PCIe 인터페이스 프로토콜의 물리적 계층(Physical Layer)에서 링크를 설정하는 초기화 작업이 선행되어야 한다. 그런데 어떠한 이유로든 데이터 전송에 사용할 수 없는 레인, 즉 페일 레인(Failed Lane)이 존재하는 경우, PCIe 장치들은 페일 레인을 제외한 나머지 레인들을 이용하여 링크를 수립하여야 한다.
본 발명이 해결하고자 하는 기술적 과제는, PCIe 장치들 사이에서 링크를 설정하는 작업에 있어서 페일 레인이 존재하는 경우, PCIe 장치들 사이의 링크 폭을 최대화할 수 있는 반도체 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, PCIe 장치들 사이에서 링크를 설정하는 작업에 있어서 페일 레인이 존재하는 경우, PCIe 장치들 사이의 링크 폭을 최대화할 수 있는 반도체 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, PCIe 장치들 사이에서 링크를 설정하는 작업에 있어서 페일 레인이 존재하는 경우, PCIe 장치들 사이의 링크 폭을 최대화할 수 있는 반도체 장치의 동작 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 장치는, PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 포트; 및 복수의 포트로부터 설정되는 복수의 레인(Lane)으로 이루어지는 링크(Link)를 결정하는 PCIe 컨트롤러를 포함하고, PCIe 컨트롤러는, 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제1 레인 번호 협상(Lane number negotiation)을 수행하고, 복수의 포트에 대해, 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행한 후, 제1 레인 번호 협상 및 제2 레인 번호 협상의 결과에 기초하여 링크 폭(Link width)을 결정하는 LTSSM(Link Training and Status State Machine)을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 반도체 장치는, PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 포트; 및 복수의 포트로부터 설정되는 복수의 레인(Lane)으로 이루어지는 링크(Link)를 결정하는 PCIe 컨트롤러를 포함하고, PCIe 컨트롤러는, 복수의 포트에 대해 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Failed Lane)의 레인 번호를 검출하고, 페일 레인의 포트 번호가 미리 정해진 값 이상인 경우, 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제1 레인 번호 협상(lane number negotiation)을 수행하여 링크 폭(Link width)를 결정하고, 페일 레인의 포트 번호가 미리 정해진 값 미만인 경우, 복수의 포트에 대해, 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행하여 링크 폭을 결정하는 LTSSM(Link Training and Status State Machine)을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 시스템은, PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 레인(Lane)을 포함하는 링크(Link); 복수의 레인을 형성하는 복수의 포트를 포함하고, 복수의 포트를 통해 링크에 연결되는 제1 장치; 및 링크에 연결되어 제1 장치와 데이터를 송수신하는 제2 장치를 포함하고, 제1 장치는, 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제2 장치와 제1 레인 번호 협상(Lane number negotiation)을 수행하고, 복수의 포트에 대해, 제1 순서와 반대인 제2 순서로 제2 장치와 제2 레인 번호 협상을 수행한 후, 제1 레인 번호 협상 및 제2 레인 번호 협상의 결과에 기초하여 제2 장치와의 데이터 송수신을 위한 링크 폭(Link width)을 결정한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 반도체 시스템은, PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 레인(Lane)을 포함하는 링크(Link); 복수의 레인을 형성하는 복수의 포트를 포함하고, 복수의 포트를 통해 링크에 연결되는 제1 장치; 및 링크에 연결되어 제1 장치와 데이터를 송수신하는 제2 장치를 포함하고, 제1 장치는, 복수의 포트에 대해 제2 장치와 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Failed Lane)의 레인 번호를 검출하고, 페일 레인의 포트 번호가 미리 정해진 값 이상인 경우, 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제2 장치와 제1 레인 번호 협상(lane number negotiation)을 수행하여 제2 장치와의 데이터 송수신을 위한 링크 폭(Link width)를 결정하고, 페일 레인의 포트 번호가 미리 정해진 값 미만인 경우, 복수의 포트에 대해, 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행하여 링크 폭을 결정한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법은, PCI 익스프레스(PCI Express, PCIe) 환경에서, 복수의 레인(Lane)으로 이루어지는 링크(Link)를 통해 연결된 디바이스와 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Fail Lane)의 레인 번호를 검출하고, 페일 레인의 레인 번호가 검출된 경우, 페일 레인의 레인 번호가 미리 정해진 값 미만인지 여부를 결정하고, 레인 번호가 순차적으로 증가 또는 감소하는 제1 순서로 디바이스와 제1 레인 번호 협상(Lane number negotiation)을 수행하고, 제1 순서와 반대인 제2 순서로 디바이스와 제2 레인 번호 협상을 수행하고, 디바이스와의 데이터 송수신을 위한 링크 폭(Link width)을 결정하는 것을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 반도체 장치는, 고속 직렬 입출력 환경에서 데이터를 송수신하기 위한 복수의 포트; 및 상기 복수의 포트로부터 설정되는 복수의 레인(Lane)으로 이루어지는 링크(Link)를 결정하는 직렬 입출력 컨트롤러를 포함하고, 상기 직렬 입출력 컨트롤러는, 상기 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제1 레인 번호 협상(Lane number negotiation)을 수행하고, 상기 복수의 포트에 대해, 상기 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행한 후, 상기 제1 레인 번호 협상 및 상기 제2 레인 번호 협상의 결과에 기초하여 링크 폭(Link width)을 결정한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 시스템을 설명하기 위한 개념도이다.
도 2 내지 도 5는 본 발명의 일 실시예에 따른 PCIe 장치들 사이의 링크 설정 과정을 개념적으로 설명하기 위한 도면들이다.
도 6 내지 도 9는 본 발명의 일 실시예에 따른 PCIe 장치들 사이의 링크 설정 과정의 일 구현례를 설명하기 위한 도면들이다.
도 10 내지 도 14는 본 발명의 일 실시예에 따른 PCIe 장치들 사이의 링크 설정 과정의 다른 구현례를 설명하기 위한 도면들이다.
도 15는 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 1은 본 발명의 일 실시예에 따른 반도체 시스템을 설명하기 위한 개념도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 반도체 시스템은 제1 PCIe 장치(100) 및 제2 PCIe 장치(200)를 포함한다. 제1 PCIe 장치(100) 및 제2 PCIe 장치(200)는 PCIe 인터페이스 프로토콜에 따라 데이터를 서로 주고 받을 수 있다.
PCIe 아키텍처는 논리적으로 구분되는 물리적 계층(Physical Layer, PL), 데이터 링크 계층(Data Link Layer, DL), 트랜잭션 계층(Transaction Layer, TL) 및 소프트웨어 계층(Software Layer, SL)을 포함하는 복수의 계층들을 포함할 수 있다.
물리적 계층(PL)은 최하위 계층에 해당하며, 데이터 링크 계층(DL)에서 생성된 패킷들을 PCIe 장치들 사이에 직렬 전송한다. 도 1을 참조하면, 물리적 계층(PL)은 PCIe 장치(100, 200)들 사이에 TX, RX를 통해 형성되는 링크를 제공하며, 패킷들은 링크를 통해 PCIe 장치(100, 200)들 사이에 전송된다.
데이터 링크 계층(DL)은 물리적 계층(PL)의 상위 계층에 해당하며, 링크를 통한 패킷 전송의 신뢰성을 보장하고 링크를 관리하기 위한 기능들을 제공한다. 예를 들어, 데이터 링크 계층(DL)은 트랜잭션 계층(TL)에서 생성된 패킷에 시퀀스 번호(sequence number), CRC(Cyclic Redundancy Check) 정보 등을 부가할 수 있다.
트랜잭션 계층(TL)은 소프트웨어 계층(SL)으로부터 리드(read) 또는 라이트(write) 요청을 수신하고, 요청 패킷(request packet)을 생성하여 데이터 링크 계층(DL)에 전달한다. 또한, 트랜잭션 계층(TL)은 데이터 링크 계층(DL)으로부터 응답 패킷(response packet)을 수신하고 이것이 소프트웨어 계층(SL)으로부터 수신된 요청과 매칭(match)한다.
소프트웨어 계층(SL)은 PCIe 명세에 의해 정의되지 않는 최상위 계층으로서, 소프트웨어 계층(SL)에는 예컨대 PCIe 장치를 구동하는 소프트웨어나, 사용자 또는 호스트 어플리케이션으로부터 데이터 리드 또는 라이트 요청을 수신하고, 그에 대한 응답을 사용자 또는 호스트 어플리케이션에 제공하는 소프트웨어 등을 포함할 수 있다.
물리적 계층(PL), 데이터 링크 계층(DL), 트랜잭션 계층(TL) 및 소프트웨어 계층(SL)에 대한 더 구체적인 내용은 PCIe 명세에 정의되어 있다.
도 1을 다시 참조하면, 제1 PCIe 장치(100)의 물리적 계층(PL)은 LTSSM(Link Training and Status State Machine)(150)을 포함한다. 도 1에 도시되지는 않았지만, 제2 PCIe 장치(200) 역시 PCIe 명세에 따르는 LTSSM을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, LTSSM(150)은 제1 PCIe 장치(100)의 PCIe 컨트롤러에 내장되도록 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
한편, 본 발명의 몇몇의 실시예에서, PCIe 컨트롤러는 루트 콤플렉스(Root Complex)를 포함할 수 있다. 루트 콤플렉스(Root Complex)에 대한 상세 설명은 PCIe 명세에 정의되어 있다. 이 경우, 루트 콤플렉스는 제1 PCIe 장치(100)의 LTSSM(150)의 동작을 제어할 수 있다.
제1 PCIe 장치(100)의 LTSSM(150)은 검출(Detect), 폴링(Polling), 설정(Configuration), 복원(Recovery), L0, L0s, L1, L2, 핫 리셋(Hot Reset), 루프백(Loopback) 및 비활성화(Disable)의 11개 상태(state)를 포함한다. LTSSM(150)은 11개 상태들을 트랜지션하면서 PCIe 인터페이스 프로토콜에 따라 데이터를 전송하기 위한 여러 작업들을 수행한다.
상기 11개 상태들에 관한 정의들은 PCIe 명세에 기재되어 있으며, LTSSM(150)은 일반적으로 PCIe 명세에 기재된 LTSSM에 관한 정의를 따르도록 구현된 것이다.
제1 PCIe 장치(100)의 LTSSM(150)은 PCIe 장치들(100, 200)이 서로 데이터를 주고 받기 위한 링크를 설정하는 초기화 작업을 수행한다.
앞서 언급한 바와 같이, PCIe 장치들(100, 200) 사이의 전송 경로 및 수신 경로들은 "링크"로 정의된다. 링크는 전송 경로 및 수신 경로의 쌍을 하나 이상 포함하며, 여기서 하나의 쌍을 이루는 전송 경로와 수신 경로는 "레인"으로 정의된다. 그리고 하나의 링크를 이루는 레인의 개수를 "링크 폭"이라고 정의한다.
제1 PCIe 장치(100)의 LTSSM(150)은 제2 PCIe 장치(200)와 링크를 설정하기 위해, 링크 번호 협상(Link number negotiation)과 레인 번호 협상(Lane number negotiation)을 수행하여, 레인들이 정상적으로 동작하는지 여부를 판단할 뿐 아니라, 데이터 전송에 사용할 레인들을 선정함으로써 링크를 수립하고, 링크 폭을 결정하기도 한다.
이와 같은 링크 번호 협상 및 레인 번호 협상을 수행하기 위해, 제1 PCIe 장치(100)의 LTSSM(150)은 TS1 순서화 세트(TS1 ordered set)를 이용하여 제2 PCIe 장치(200)와 신호를 주고 받는다. TS1 순서화 세트(TS1 ordered set)에 대한 상세 내용은 PCIe 명세에 정의되어 있다.
한편, PCIe 기술은, 이전의 PCI 기술과는 달리 직렬 전송 형태의 인터페이스를 채용하였다. 따라서 PCIe 기술은 고속 직렬 입출력 인터페이스와 관련된 기술이다. 따라서, 본 명세서에서 설명되는 본 발명의 다양한 실시예들은 PCIe 환경에서 구현될 수 있음은 물론, PCIe 환경으로 제한되지 않는 일반적인 고속 직렬 입출력 환경에서도 구현될 수 있음이 명백하다.
이제부터 도 2 내지 도 5를 참조하여, 제1 PCIe 장치(100)의 LTSSM(150)이 링크를 설정하는 초기화 작업을 수행하는 과정을 설명하도록 한다.
도 2 내지 도 5는 본 발명의 일 실시예에 따른 PCIe 장치들 사이의 링크 설정 과정을 개념적으로 설명하기 위한 도면들이다.
도 2를 참조하면, 제1 PCIe 장치(100)는 제1 PCIe 인터페이스 커넥터(110)를 포함하고, 제2 PCIe 장치(200)는 제2 PCIe 인터페이스 커넥터(220)를 포함한다. PCIe 인터페이스 커넥터(110, 220)는 PCIe 인터페이스 프로토콜에 따른 데이터 전송을 위해 PCIe 명세에 정해진 규격에 따라 구현된 것이다.
제1 PCIe 인터페이스 커넥터(110)는 복수의 포트(P0 내지 P7)를 포함하고, 제2 PCIe 인터페이스 커넥터(220)도 복수의 포트(P0 내지 P7)를 포함한다.
본 실시예에서는 설명의 편의를 위해, PCIe 인터페이스 커넥터(110, 220)가 각각 8 개의 포트를 포함하는 것으로 도시하였으나, 각각의 커넥터에 포함되는 포트의 개수는 이에 한정되는 것이 아님이 명백하다.
PCIe 인터페이스 프로토콜은 심플렉스 전송 경로와 심플렉스 수신 경로를 각각 포함하는 이중-심플렉스 커넥션 모델을 채용하고 있으며, 이들 전송 경로 및 수신 경로들이 링크를 형성한다. 그 중 하나의 쌍을 이루는 전송 경로와 수신 경로는 레인을 형성한다.
예를 들어, 제1 PCIe 인터페이스 커넥터(110)의 포트(P0)와 제2 PCIe 인터페이스 커넥터(220)의 포트(P0) 사이의 전송 경로 및 수신 경로는 0번 레인(Lane 0)을 형성하며, 제1 PCIe 인터페이스 커넥터(110)의 포트(P2)와 제2 PCIe 인터페이스 커넥터(220)의 포트(P2) 사이의 전송 경로 및 수신 경로는 2번 레인(Lane 2)을 형성할 수 있다.
이와 같은 레인 형성 과정은, 도 6 내지 도 14에 걸쳐 후술할, 제1 PCIe 장치(100)의 LTSSM(150)이 수행하는 링크 번호 협상 및 레인 번호 협상에 의해 이루어질 수 있다.
도 3은 제1 PCIe 장치(100)의 LTSSM(150)이 제2 PCIe 장치(200)와 링크 번호 협상을 수행하는 도중, 제1 PCIe 인터페이스 커넥터(110)의 포트(P6)와 제2 PCIe 인터페이스 커넥터(220)의 포트(P6) 사이의 레인이 정상적으로 동작하지 않음을 검출한 경우를 나타낸 것이다. 즉, 6번 레인(Lane 6)이 페일 레인(Failed Lane)에 해당하는 경우이다.
예를 들어, 제1 PCIe 인터페이스 커넥터(110)의 포트(P6)로부터 제2 PCIe 인터페이스 커넥터(220)의 포트(P6)로 데이터가 전송될 수 있는 전송 경로에 문제가 발생하였거나, 제1 PCIe 인터페이스 커넥터(110)의 포트(P6)가 제2 PCIe 인터페이스 커넥터(220)의 포트(P6)로부터 데이터를 수신할 수 있는 수신 경로에 문제가 발생한 경우일 수 있다.
이와 같은 경우, 제1 PCIe 장치(100)의 LTSSM(150)은, 제1 PCIe 인터페이스 커넥터(110)의 복수의 포트(P0 내지 P7)에 대해, 그 포트 번호가 순차적으로 증가하는 제1 순서로 레인 번호 협상을 수행한다.
PCIe 명세에 따르면, 하나의 링크를 형성하는 레인의 개수에 해당하는 링크 폭은 1 레인, 2 레인, 4 레인, 8 레인, 12 레인, 16 레인 및 32 레인 중 어느 하나로 결정되는 것이 일반적이다. 따라서, 제1 PCIe 장치(100)의 LTSSM(150)은 제1 PCIe 인터페이스 커넥터(110)의 포트 번호(P0)부터 순차적으로 증가하는 제1 순서로 4 레인의 폭을 갖는 링크를 설정한다.
본 실시예에서는 제1 순서가 포트 번호가 순차적으로 증가하는 순서로 설명하였으나, 본 발명의 범위가 이에 제한되는 것은 아니다. 즉, 구체적인 구현 방식에 따라 제1 순서는 포트 번호가 순차적으로 감소하는 순서를 의미할 수도 있다.
이후 제1 PCIe 장치(100)와 제2 PCIe 장치(200)는 4 레인의 폭을 갖는 링크를 통해 PICe 인터페이스 프로토콜에 따라 데이터 전송을 할 수 있다.
도 4 및 도 5는 제1 PCIe 장치(100)의 LTSSM(150)이 제2 PCIe 장치(200)와 링크 번호 협상을 수행하는 도중, 제1 PCIe 인터페이스 커넥터(110)의 포트(P2)와 제2 PCIe 인터페이스 커넥터(220)의 포트(P2) 사이의 레인이 정상적으로 동작하지 않음을 검출한 경우를 나타낸 것이다. 즉, 2번 레인(Lane 2)이 페일 레인에 해당하는 경우이다.
예를 들어, 제1 PCIe 인터페이스 커넥터(110)의 포트(P2)로부터 제2 PCIe 인터페이스 커넥터(220)의 포트(P2)로 데이터가 전송될 수 있는 전송 경로에 문제가 발생하였거나, 제1 PCIe 인터페이스 커넥터(110)의 포트(P2)가 제2 PCIe 인터페이스 커넥터(220)의 포트(P2)로부터 데이터를 수신할 수 있는 수신 경로에 문제가 발생한 경우일 수 있다.
도 4를 참조하면, 이와 같은 경우, 제1 PCIe 장치(100)의 LTSSM(150)은, 제1 PCIe 인터페이스 커넥터(110)의 복수의 포트(P0 내지 P7)에 대해, 그 포트 번호가 순차적으로 증가하는 제1 순서로 레인 번호 협상을 수행한다.
제1 순서로 레인 번호 협상을 수행한 결과, 제1 PCIe 장치(100)의 LTSSM(150)은 제1 PCIe 인터페이스 커넥터(110)의 포트 번호(P0)부터 순차적으로 증가하는 제1 순서로 2 레인의 폭을 갖는 링크를 설정할 수 있다.
그런데 링크로 설정된 레인은 2 개에 불과한 반면, 페일 레인에 해당되지 않지만 링크로 설정되지 못한 레인은 포트 번호(P3 내지 P7)에 해당하는 5 개나 된다. PCIe 명세에 따라서 형성될 수 있는 링크 폭을 고려한다고 해도, 제1 PCIe 장치(100)의 LTSSM(150)은 링크 설정을 위해, 예컨대 포트 번호(P4 내지 P7)에 해당하는 4 개 레인을 사용하지 못하고, 그보다 대역폭이 적은 포트 번호(P0 및 P1)에 해당하는 2 개 레인만을 사용하게 된다. 이것은 관점에 따라서는 더 넓은 대역폭을 제공할 수 있는 4 개 레인을 낭비하는 셈이 될 수도 있다.
도 5를 참조하면, 이와 같은 점을 개선하기 위해, 제1 PCIe 장치(100)의 LTSSM(150)은, 제1 PCIe 인터페이스 커넥터(110)의 복수의 포트(P0 내지 P7)에 대해, 제1 순서와 반대인 제2 순서로 레인 번호 협상을 수행한다.
본 실시예에서, 제1 순서는 제1 PCIe 인터페이스 커넥터(110)의 복수의 포트(P0 내지 P7)에 대해, 그 포트 번호가 순차적으로 증가하는 순서였으므로, 제2 순서는 제1 PCIe 인터페이스 커넥터(110)의 복수의 포트(P0 내지 P7)에 대해, 그 포트 번호가 순차적으로 감소하는 순서를 의미할 것이다.
그러나 앞서 설명한 바와 같이, 만일 제1 순서가 포트 번호가 순차적으로 감소하는 순서라 했다면, 제2 순서는 이와 반대인 포트 번호가 순차적으로 증가하는 순서가 될 수도 있다.
제2 순서로 레인 번호 협상을 수행한 결과, 제1 PCIe 장치(100)의 LTSSM(150)은 제1 순서로 레인 번호 협상(즉, 제1 레인 번호 협상)을 수행한 결과와 제2 순서로 레인 번호 협상(즉, 제2 레인 번호 협상)을 수행한 경과에 기초하여 링크 폭을 결정할 수 있다.
본 실시예에서, 제1 레인 번호 협상의 결과는 포트(P0, P1)로부터 설정되는 폭이 2인 링크이며, 제2 레인 번호 협상의 결과는 포트(P4 내지 P7)로부터 설정되는 폭이 4인 링크이므로, 제1 PCIe 장치(100)의 LTSSM(150)은 이들 링크 중 링크 폭이 더 넓은, 즉, 폭이 4인 링크를 최종 설정할 수 있다.
이에 따라 PCIe 장치들 사이에서 링크를 설정하는 작업에 있어서 페일 레인이 존재하는 경우, PCIe 장치들 사이의 링크 폭을 최대화할 수 있다.
다만 유의할 점은, 제1 PCIe 장치(100)의 LTSSM(150)은, 제1 PCIe 인터페이스 커넥터(110)의 포트(P7)와 제2 PCIe 인터페이스 커넥터(220)의 포트(P7) 사이에 0번 레인(Lane 0)을 형성하고, 제1 PCIe 인터페이스 커넥터(110)의 포트(P6)와 제2 PCIe 인터페이스 커넥터(220)의 포트(P6) 사이에 0번 레인(Lane 1)을 형성한다는 점이다.
즉, 도 5의 실시예에서, 제1 PCIe 장치(100)의 LTSSM(150)은 제2 순서에 따라 레인을 설정하기 때문에, LTSSM(150)은 PCIe 명세에 의해 정의되는 PCIe 레인 리버설(Lane Reversal) 기능을 지원하여야 한다. LTSSM(150)은 제2 레인 번호 협상을 위해 PCIe 레인 리버설 기능을 이용하여 레인 번호를 역순으로 설정할 수 있게 된다.
지금까지 설명한 실시예에서는, 제1 PCIe 장치(100)의 LTSSM(150)이 레인 번호 협상을 제1 순서로 한 번 수행하고, 제2 순서로 한 번 수행한 다음, 이에 따른 두 가지 결과를 모두 고려하여 링크 폭을 결정하였다.
그런데 제1 PCIe 장치(100)의 LTSSM(150)이 페일 레인이 몇 번 레인인지를 미리 알 수 있다면, 간단한 연산식을 통해 레인 번호 협상을 1 회만 수행하면서도, PCIe 장치들 사이의 링크 폭을 최대화하는 동일한 효과를 얻을 수 있다.
PCIe 명세에 따르면 제1 PCIe 장치(100)의 LTSSM(150)은 제2 PCIe 장치(200)와 레인 번호 협상을 수행하기 전에, 링크 번호 협상을 먼저 수행한다. 이 과정에서 페일 레인이 존재하는지, 그렇다면 페일 레인의 포트 번호(또는 레인 번호)의 값이 무엇인지를 검출할 수 있다.
즉, 제1 PCIe 장치(100)의 LTSSM(150)은 복수의 포트(P0 내지 P7)에 대해 링크 번호 협상을 수행하여 페일 레인의 번호를 검출하고, 페일 레인의 번호의 값에 따라 제1 레인 번호 협상만을 수행하거나, 제2 레인 번호 협상만을 수행할 수 있다. 또는 페일 레인의 번호의 값에 따라 제2 레인 번호 협상을 선택적으로 수행할 수 있다.
구체적으로, 제1 PCIe 장치(100)의 LTSSM(150)은, 페일 레인의 포트 번호가 미리 정해진 값 미만인 경우에는 제2 레인 번호 협상만을 수행하고, 페일 레인의 포트 번호가 미리 정해진 값 이상인 경우에는 제1 레인 번호 협상만을 수행할 수 있다.
이와 다르게, 제1 PCIe 장치(100)의 LTSSM(150)은, 페일 레인의 포트 번호가 미리 정해진 값 미만인 경우에는 제1 레인 번호 협상 후 제2 레인 번호 협상을 수행하고, 페일 레인의 포트 번호가 미리 정해진 값 이상인 경우에는 제1 레인 번호 협상을 수행한 후, 제2 레인 번호 협상을 수행하지 않을 수 있다.
여기서 미리 정해진 값이란, 예컨대 총 레인의 개수를 2로 나눈 값일 수 있다. 본 실시예에서, 미리 정해진 값은 총 8개의 레인을 2로 나눈 값인 4가 될 수 있다.
이에 따라, 제1 PCIe 장치(100)의 LTSSM(150)은, 페일 레인의 포트 번호가 4 미만인 경우에는 제2 레인 번호 협상만을 수행하고, 페일 레인의 포트 번호가 4 이상인 경우에는 제1 레인 번호 협상만을 수행할 수 있다.
또한, 제1 PCIe 장치(100)의 LTSSM(150)은, 페일 레인의 포트 번호가 4 미만인 경우에는 제1 레인 번호 협상 후 제2 레인 번호 협상을 수행하고, 페일 레인의 포트 번호가 4 이상인 경우에는 제1 레인 번호 협상을 수행한 후, 제2 레인 번호 협상을 수행하지 않을 수 있다.
이제부터 도 6 내지 도 14를 참조하여, 제1 PCIe 장치(100)의 LTSSM(150)이 링크를 설정하는 초기화 작업을 수행하는 더욱 세부적인 과정들을 설명하도록 한다.
도 6 내지 도 9는 본 발명의 일 실시예에 따른 PCIe 장치들 사이의 링크 설정 과정의 일 구현례를 설명하기 위한 도면들이다.
도 6 내지 도 9에서는 설명의 편의를 위해, PCIe 장치(100, 200)가 각각 4 개의 포트를 포함하는 것으로 도시하였으나, 포트의 개수는 이에 한정되는 것이 아님이 명백하다. 한편, 페일 레인은 2번 레인인 것으로 가정한다.
도 6을 참조하면, 제1 PCIe 장치(100)의 LTSSM(150)은 먼저 링크 번호 협상을 수행한다.
제1 PCIe 장치(100)의 LTSSM(150)은 각각의 포트(0 내지 3)를 통해 임의의 링크 번호 N을 제2 PCIe 장치(200)에 전송한다. 상기 링크 번호는 TS1 순서화 세트에 기록되어 제2 PCIe 장치(200)로 전송될 수 있다.
도 7을 참조하면, 제2 PCIe 장치(200)는, 제1 PCIe 장치(100)로부터 수신한 링크 번호와 동일한 번호 N을 각각의 포트(0 내지 3)를 통해 제1 PCIe 장치(100)에 전송한다. 상기 링크 번호는 TS1 순서화 세트에 기록되어 제1 PCIe 장치(100)로 전송될 수 있다.
그런데 여기서 2번 레인은 페일 레인이기 때문에, 제2 PCIe 장치(200)는 포트(2)를 통해서는 제1 PCIe 장치(100)로부터 수신한 링크 번호와 동일한 번호 N을 제1 PCIe 장치(100)에 전송하지 않는다. 구현 방식에 따라, 제2 PCIe 장치(200)는 포트(2)에 대해 패킷 필러(packet filler)에 해당하는 PAD 심볼을 전송할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
제2 PCIe 장치(200)에 대한 응답으로 인해, 제1 PCIe 장치(100)의 LTSSM(150)은 링크를 수립하기 위해 이용 가능한 레인이 0번, 1번 및 3번 레인임을 인지할 수 있다.
다음으로, 도 8을 참조하면, 제1 PCIe 장치(100)의 LTSSM(150)은 레인 번호 협상을 수행한다.
제1 PCIe 장치(100)의 LTSSM(150)은 각각의 포트(0, 1)를 통해 레인 번호를 제2 PCIe 장치(200)에 전송한다. 구체적으로 포트(0)에는 레인 번호 0이 부여되고, 포트(1)에는 레인 번호 1이 부여된다. 상기 레인 번호는 TS1 순서화 세트에 기록되어 제2 PCIe 장치(200)로 전송될 수 있다. 반면, 포트(2, 3)에는 레인 번호가 부여되지 않는다.
그 이유는 2번 레인이 페일 레인이기 때문에, 제1 PCIe 장치(100)의 LTSSM(150)가 2번 레인을 제외하고 더 넓은 폭을 갖는 링크를 선택하였기 때문이다.
제1 PCIe 장치(100)의 LTSSM(150)가 더 넓은 폭을 갖는 링크를 선택하는 구체적인 방법은, 앞서 도 5와 관련하여 설명한 여러가지 방법들이 이용될 수 있다.
즉, 제1 PCIe 장치(100)의 LTSSM(150)은 포트(0, 1)에 대응되는 폭이 2인 링크와, 포트(3)에 대응되는 폭이 1인 링크 중, 더 넓은 폭을 갖는 링크를 선택한 후, 포트(0, 1)만을 통해 레인 번호를 제2 PCIe 장치(200)에 전송한다.
도 9를 참조하면, 제2 PCIe 장치(200)는, 제1 PCIe 장치(100)로부터 수신한 레인 번호와 동일한 번호 0, 1을 각각의 포트(0, 1)를 통해 제1 PCIe 장치(100)에 전송한다. 상기 레인 번호는 TS1 순서화 세트에 기록되어 제1 PCIe 장치(100)로 전송될 수 있다.
제2 PCIe 장치(200)에 대한 응답으로 인해, 제1 PCIe 장치(100)의 LTSSM(150)은 협상이 종료되고 링크가 수립되었음을 인지하고, 예컨대 L0 상태로 트랜지션하여 데이터 전송을 시작할 수 있다.
도 10 내지 도 14는 본 발명의 일 실시예에 따른 PCIe 장치들 사이의 링크 설정 과정의 다른 구현례를 설명하기 위한 도면들이다.
도 10 내지 도 14에서는 설명의 편의를 위해, PCIe 장치(100, 200)가 각각 4 개의 포트를 포함하는 것으로 도시하였으나, 포트의 개수는 이에 한정되는 것이 아님이 명백하다. 한편, 페일 레인은 1번 레인인 것으로 가정한다.
도 10을 참조하면, 제1 PCIe 장치(100)의 LTSSM(150)은 먼저 링크 번호 협상을 수행한다.
제1 PCIe 장치(100)의 LTSSM(150)은 각각의 포트(0 내지 3)를 통해 임의의 링크 번호 N을 제2 PCIe 장치(200)에 전송한다. 상기 링크 번호는 TS1 순서화 세트에 기록되어 제2 PCIe 장치(200)로 전송될 수 있다.
도 11을 참조하면, 제2 PCIe 장치(200)는, 제1 PCIe 장치(100)로부터 수신한 링크 번호와 동일한 번호 N을 각각의 포트(0 내지 3)를 통해 제1 PCIe 장치(100)에 전송한다. 상기 링크 번호는 TS1 순서화 세트에 기록되어 제1 PCIe 장치(100)로 전송될 수 있다.
그런데 여기서 1번 레인은 페일 레인이기 때문에, 제2 PCIe 장치(200)는 포트(1)를 통해서는 제1 PCIe 장치(100)로부터 수신한 링크 번호와 동일한 번호 N을 제1 PCIe 장치(100)에 전송하지 않는다. 구현 방식에 따라, 제2 PCIe 장치(200)는 포트(1)에 대해 PAD 심볼을 전송할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
제2 PCIe 장치(200)에 대한 응답으로 인해, 제1 PCIe 장치(100)의 LTSSM(150)은 링크를 수립하기 위해 이용 가능한 레인이 0번, 2번 및 3번 레인임을 인지할 수 있다.
다음으로, 도 12를 참조하면, 제1 PCIe 장치(100)의 LTSSM(150)은 레인 번호 협상을 수행한다.
제1 PCIe 장치(100)의 LTSSM(150)은 포트(0)를 통해 레인 번호를 제2 PCIe 장치(200)에 전송하여 제1 레인 번호 협상을 할 수 있다.
즉, 제1 PCIe 장치(100)의 LTSSM(150)은 포트(0)을 통해 레인 번호를 제2 PCIe 장치(200)에 전송한다. 구체적으로 포트(0)에는 레인 번호 0이 부여된다. 상기 레인 번호는 TS1 순서화 세트에 기록되어 제2 PCIe 장치(200)로 전송될 수 있다. 반면, 포트(1, 2, 3)에는 레인 번호가 부여되지 않는다.
다음으로, 도 13을 참조하면, 제1 PCIe 장치(100)의 LTSSM(150)은 포트(2, 3)를 통해 레인 번호를 제2 PCIe 장치(200)에 전송하여 제2 레인 번호 협상을 할 수 있다. LTSSM(150)은 제2 레인 번호 협상을 위해 PCIe 레인 리버설 기능을 이용하여 레인 번호를 역순으로 설정할 수 있다.
즉, 제1 PCIe 장치(100)의 LTSSM(150)은 포트(2, 3)을 통해 레인 번호를 제2 PCIe 장치(200)에 전송한다. 구체적으로 포트(2)에는 레인 번호 1이 부여되고, 포트(3)에는 레인 번호 0이 부여된다. 상기 레인 번호는 TS1 순서화 세트에 기록되어 제2 PCIe 장치(200)로 전송될 수 있다. 반면, 포트(0, 1)에는 레인 번호가 부여되지 않는다.
제1 PCIe 장치(100)의 LTSSM(150)은 제1 레인 번호 협상 및 제2 레인 번호 협상의 결과 중 더 넓은 폭을 갖는 링크를 선택할 수 있다. 그러나 제1 PCIe 장치(100)의 LTSSM(150)가 더 넓은 폭을 갖는 링크를 선택하는 구체적인 방법은 이에 제한되는 것이 아니고, 앞서 도 5와 관련하여 설명한 여러가지 방법들이 이용될 수 있다.
즉, 제1 PCIe 장치(100)의 LTSSM(150)은 포트(0)에 대응되는 폭이 1인 링크와, 포트(2, 3)에 대응되는 폭이 2인 링크 중, 더 넓은 폭을 갖는 링크를 선택한 후, 포트(2, 3)만을 통해 레인 번호를 제2 PCIe 장치(200)에 전송한다.
도 14를 참조하면, 제2 PCIe 장치(200)는, 제1 PCIe 장치(100)로부터 수신한 레인 번호와 동일한 번호 0, 1을 각각의 포트(3, 2)를 통해 제1 PCIe 장치(100)에 전송한다. 상기 레인 번호는 TS1 순서화 세트에 기록되어 제1 PCIe 장치(100)로 전송될 수 있다.
제2 PCIe 장치(200)에 대한 응답으로 인해, 제1 PCIe 장치(100)의 LTSSM(150)은 협상이 종료되고 링크가 수립되었음을 인지하고, 예컨대 L0 상태로 트랜지션하여 데이터 전송을 시작할 수 있다.
도 15는 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 15를 참조하면, 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법은, 링크 설정을 시작(S1501)하고, 제1 PCIe 장치(100)가 링크 번호 협상을 수행하기 위해 제2 PCIe 장치(200)에 링크 번호를 전송(S1503)한다.
이에 대한 응답으로, 제2 PCIe 장치(200)는 링크 번호를 제1 PCIe 장치(100)에 전송(S1505)한다.
제1 PCIe 장치(100)는 제2 PCIe 장치(200)로부터 수신한 응답을 기초로, 페일 레인이 존재하는지 여부를 판단(S1507)한다. 페일 레인이 존재하는 경우라면, 제1 PCIe 장치(100)는 페일 레인의 레인 번호가 미리 정해진 값, 예컨대 총 레인의 개수를 2로 나눈 값 미만인지 여부를 판단(S1509)한다.
만일 페일 레인이 존재하지 않거나, 페일 레인이 존재하였지만 페일 레인의 레인 번호가 미리 정해진 값 이상인 경우, 제1 PCIe 장치(100)는 레인 번호 협상을 위해 레인 번호를 제1 순서로 부여하고, 이들을 제2 PCIe 장치로 전송(S1511)한다.
만일 페일 레인의 레인 번호가 미리 정해진 값 미만인 경우, 제1 PCIe 장치(100)는 레인 번호 협상을 위해 레인 번호를 제2 순서로 부여하고, 이들을 제2 PCIe 장치로 전송(S1513)한다.
이에 대한 응답으로, 제2 PCIe 장치(200)는 레인 번호를 제1 PCIe 장치(100)에 전송(S1515)한다.
제2 PCIe 장치(200)에 대한 응답으로 인해, 제1 PCIe 장치(100)는 협상이 종료되고 링크가 수립되었음을 인지하고, 예컨대 L0 상태로 트랜지션하여 데이터 전송을 시작(S1517)할 수 있다.
본 발명의 다양한 실시예에 따르면, PCIe 장치들 사이에서 링크를 설정하는 작업에 있어서 페일 레인이 존재하는 경우, PCIe 장치들 사이의 링크 폭을 최대화할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100, 200: PCIe 장치 110, 220: PCIe 인터페이스 커넥터

Claims (20)

  1. PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 포트; 및
    상기 복수의 포트로부터 설정되는 복수의 레인(Lane)으로 이루어지는 링크(Link)를 결정하는 PCIe 컨트롤러를 포함하고,
    상기 PCIe 컨트롤러는,
    상기 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제1 레인 번호 협상(Lane number negotiation)을 수행하고,
    상기 복수의 포트에 대해, 상기 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행한 후,
    상기 제1 레인 번호 협상 및 상기 제2 레인 번호 협상의 결과에 기초하여 링크 폭(Link width)을 결정하는 LTSSM(Link Training and Status State Machine)을 포함하는 반도체 장치.
  2. 제1항에 있어서,
    상기 링크 폭은 상기 제1 레인 번호 협상 결과에 따른 제1 링크 폭과, 상기 제2 레인 번호 협상 결과에 따른 제2 링크 폭 중 더 넓은 링크 폭을 포함하는 반도체 장치.
  3. 제1항에 있어서,
    상기 LTSSM은 상기 복수의 포트에 대해 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Failed Lane)의 번호를 검출하고,
    상기 페일 레인의 번호의 값에 따라 상기 제2 레인 번호 협상을 선택적으로 수행하는 반도체 장치.
  4. PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 포트; 및
    상기 복수의 포트로부터 설정되는 복수의 레인(Lane)으로 이루어지는 링크(Link)를 결정하는 PCIe 컨트롤러를 포함하고,
    상기 PCIe 컨트롤러는,
    상기 복수의 포트에 대해 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Failed Lane)의 레인 번호를 검출하고,
    상기 페일 레인의 포트 번호가 미리 정해진 값 이상인 경우, 상기 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제1 레인 번호 협상(lane number negotiation)을 수행하여 링크 폭(Link width)를 결정하고,
    상기 페일 레인의 포트 번호가 미리 정해진 값 미만인 경우, 상기 복수의 포트에 대해, 상기 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행하여 상기 링크 폭을 결정하는 LTSSM(Link Training and Status State Machine)을 포함하는 반도체 장치.
  5. 제4항에 있어서,
    상기 링크 폭은 상기 제1 레인 번호 협상 결과에 따른 제1 링크 폭과, 상기 제2 레인 번호 협상 결과에 따른 제2 링크 폭 중 더 넓은 링크 폭으로 결정되는 반도체 장치.
  6. PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 레인(Lane)을 포함하는 링크(Link);
    상기 복수의 레인을 형성하는 복수의 포트를 포함하고, 상기 복수의 포트를 통해 상기 링크에 연결되는 제1 장치; 및
    상기 링크에 연결되어 상기 제1 장치와 데이터를 송수신하는 제2 장치를 포함하고,
    상기 제1 장치는,
    상기 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 상기 제2 장치와 제1 레인 번호 협상(Lane number negotiation)을 수행하고,
    상기 복수의 포트에 대해, 상기 제1 순서와 반대인 제2 순서로 상기 제2 장치와 제2 레인 번호 협상을 수행한 후,
    상기 제1 레인 번호 협상 및 상기 제2 레인 번호 협상의 결과에 기초하여 상기 제2 장치와의 데이터 송수신을 위한 링크 폭(Link width)을 결정하는 반도체 시스템.
  7. 제6항에 있어서,
    상기 링크 폭은 상기 제1 레인 번호 협상 결과에 따른 제1 링크 폭과, 상기 제2 레인 번호 협상 결과에 따른 제2 링크 폭 중 더 넓은 링크 폭을 포함하는 반도체 시스템.
  8. 제6항에 있어서,
    상기 제1 장치는 상기 복수의 포트에 대해 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Failed Lane)의 번호를 검출하고,
    상기 페일 레인의 번호의 값에 따라 상기 제2 레인 번호 협상을 선택적으로 수행하는 반도체 시스템.
  9. PCI 익스프레스(PCI Express, PCIe) 환경에서 데이터를 송수신하기 위한 복수의 레인(Lane)을 포함하는 링크(Link);
    상기 복수의 레인을 형성하는 복수의 포트를 포함하고, 상기 복수의 포트를 통해 상기 링크에 연결되는 제1 장치; 및
    상기 링크에 연결되어 상기 제1 장치와 데이터를 송수신하는 제2 장치를 포함하고,
    상기 제1 장치는,
    상기 복수의 포트에 대해 상기 제2 장치와 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Failed Lane)의 레인 번호를 검출하고,
    상기 페일 레인의 포트 번호가 미리 정해진 값 이상인 경우, 상기 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 상기 제2 장치와 제1 레인 번호 협상(lane number negotiation)을 수행하여 상기 제2 장치와의 데이터 송수신을 위한 링크 폭(Link width)를 결정하고,
    상기 페일 레인의 포트 번호가 미리 정해진 값 미만인 경우, 상기 복수의 포트에 대해, 상기 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행하여 상기 링크 폭을 결정하는 반도체 시스템.
  10. 제9항에 있어서,
    상기 링크 폭은 상기 제1 레인 번호 협상 결과에 따른 제1 링크 폭과, 상기 제2 레인 번호 협상 결과에 따른 제2 링크 폭 중 더 넓은 링크 폭으로 결정되는 반도체 시스템.
  11. PCI 익스프레스(PCI Express, PCIe) 환경에서, 복수의 레인(Lane)으로 이루어지는 링크(Link)를 통해 연결된 디바이스와 링크 번호 협상(Link number negotiation)을 수행하여 페일 레인(Fail Lane)의 레인 번호를 검출하고,
    상기 페일 레인의 레인 번호가 검출된 경우, 상기 페일 레인의 레인 번호가 미리 정해진 값 미만인지 여부를 결정하고,
    상기 레인 번호가 순차적으로 증가 또는 감소하는 제1 순서로 상기 디바이스와 제1 레인 번호 협상(Lane number negotiation)을 수행하고,
    상기 제1 순서와 반대인 제2 순서로 상기 디바이스와 제2 레인 번호 협상을 수행하고,
    상기 디바이스와의 데이터 송수신을 위한 링크 폭(Link width)을 결정하는 것을 포함하는 반도체 장치의 동작 방법.
  12. 제11항에 있어서,
    상기 링크 폭은 상기 제1 레인 번호 협상 결과에 따른 제1 링크 폭과, 상기 제2 레인 번호 협상 결과에 따른 제2 링크 폭 중 더 넓은 링크 폭으로 결정되는 반도체 장치의 동작 방법.
  13. 제11항에 있어서,
    상기 페일 레인의 레인 번호가 검출되지 않은 경우, 상기 제1 순서로 상기 디바이스와 레인 번호 협상을 수행하여 상기 링크 폭을 결정하는 것을 더 포함하는 반도체 장치의 동작 방법.
  14. 제11항에 있어서,
    상기 제1 레인 번호 협상을 수행하는 것은, 상기 페일 레인의 레인 번호가 미리 정해진 값 이상인 경우에 수행되는 반도체 장치의 동작 방법.
  15. 제11항에 있어서,
    상기 제2 레인 번호 협상을 수행하는 것은, 상기 페일 레인의 레인 번호가 미리 정해진 값 미만인 경우에 수행되는 반도체 장치의 동작 방법.
  16. 제11항에 있어서,
    상기 제2 레인 번호 협상을 수행하는 것은, PCIe 레인 리버설 기능(Lane Reversal)을 이용하여 레인 번호를 역순으로 설정하는 것을 더 포함하는 반도체 장치의 동작 방법.
  17. 고속 직렬 입출력 환경에서 데이터를 송수신하기 위한 복수의 포트; 및
    상기 복수의 포트로부터 설정되는 복수의 레인(Lane)으로 이루어지는 링크(Link)를 결정하는 직렬 입출력 컨트롤러를 포함하고,
    상기 직렬 입출력 컨트롤러는,
    상기 복수의 포트에 대해, 그 포트 번호가 순차적으로 증가 또는 감소하는 제1 순서로 제1 레인 번호 협상(Lane number negotiation)을 수행하고,
    상기 복수의 포트에 대해, 상기 제1 순서와 반대인 제2 순서로 제2 레인 번호 협상을 수행한 후,
    상기 제1 레인 번호 협상 및 상기 제2 레인 번호 협상의 결과에 기초하여 링크 폭(Link width)을 결정하는 반도체 장치.
  18. 제17항에 있어서,
    상기 링크 폭은 상기 제1 레인 번호 협상 결과에 따른 제1 링크 폭과, 상기 제2 레인 번호 협상 결과에 따른 제2 링크 폭 중 더 넓은 링크 폭을 포함하는 반도체 장치.
  19. 제17항에 있어서,
    상기 직렬 입출력 컨트롤러는 레인 리버설(Lane Reversal) 기능을 지원하는 반도체 장치.
  20. 제19항에 있어서,
    상기 직렬 입출력 컨트롤러는 상기 제2 레인 번호 협상을 위해 상기 레인 리버설 기능을 이용하여 레인 번호를 역순으로 설정하는 반도체 장치.
KR1020160128398A 2016-10-05 2016-10-05 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법 KR102569761B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160128398A KR102569761B1 (ko) 2016-10-05 2016-10-05 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법
US15/695,058 US10747697B2 (en) 2016-10-05 2017-09-05 Semiconductor device, method of operating semiconductor device and system incorporating same
DE102017120447.4A DE102017120447A1 (de) 2016-10-05 2017-09-06 Halbleitervorrichtung, Verfahren zum Betreiben der Halbleitervorrichtung und ein System, das diese beinhaltet
CN201710875026.4A CN107918594B (zh) 2016-10-05 2017-09-25 半导体装置、操作半导体装置的方法和包括该装置的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160128398A KR102569761B1 (ko) 2016-10-05 2016-10-05 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20180037783A true KR20180037783A (ko) 2018-04-13
KR102569761B1 KR102569761B1 (ko) 2023-08-22

Family

ID=61623329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160128398A KR102569761B1 (ko) 2016-10-05 2016-10-05 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법

Country Status (4)

Country Link
US (1) US10747697B2 (ko)
KR (1) KR102569761B1 (ko)
CN (1) CN107918594B (ko)
DE (1) DE102017120447A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467909B1 (en) 2021-05-25 2022-10-11 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
KR20220158517A (ko) * 2021-05-24 2022-12-01 에스케이하이닉스 주식회사 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US11809344B2 (en) 2021-06-01 2023-11-07 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11815941B2 (en) 2021-05-26 2023-11-14 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11940942B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11960367B2 (en) 2021-05-24 2024-04-16 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统
CN109558282B (zh) * 2018-12-03 2021-10-29 郑州云海信息技术有限公司 一种pcie链路检测方法、系统及电子设备和存储介质
US10698856B1 (en) * 2018-12-18 2020-06-30 Ati Technologies Ulc Alternative protocol selection
US11693813B2 (en) 2018-12-18 2023-07-04 Ati Technologies Ulc Alternative protocol over physical layer
US10936530B2 (en) 2019-07-24 2021-03-02 Ati Technologies Ulc Method and apparatus for determining link bifurcation availability
US11847089B2 (en) * 2022-04-27 2023-12-19 Mellanox Technologies Ltd. Electronic device and method for sharing data lanes of a network interface device between two or more computing devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756123B1 (en) * 2006-12-21 2010-07-13 Nvidia Corporation Apparatus, system, and method for swizzling of a PCIe link
US20120001276A1 (en) * 2010-06-30 2012-01-05 Industrial Technology Research Institute Apparatus integrating microelectromechanical system device with circuit chip and methods for fabricating the same
US20120011276A1 (en) * 2004-05-21 2012-01-12 Naveen Cherukuri Dynamically Modulating Link Width
EP2961098A1 (en) * 2014-04-02 2015-12-30 Huawei Technologies Co. Ltd. Method, device and system for processing pcie link failure

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426597B1 (en) * 2003-05-07 2008-09-16 Nvidia Corporation Apparatus, system, and method for bus link width optimization of a graphics system
US7136953B1 (en) * 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US20060114918A1 (en) 2004-11-09 2006-06-01 Junichi Ikeda Data transfer system, data transfer method, and image apparatus system
US7353443B2 (en) 2005-06-24 2008-04-01 Intel Corporation Providing high availability in a PCI-Express link in the presence of lane faults
CN100382064C (zh) * 2005-12-19 2008-04-16 威盛电子股份有限公司 状态协调方法
US7836352B2 (en) 2006-06-30 2010-11-16 Intel Corporation Method and apparatus for improving high availability in a PCI express link through predictive failure analysis
US8677176B2 (en) 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8645746B2 (en) * 2010-12-03 2014-02-04 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US9292465B2 (en) 2011-12-21 2016-03-22 Intel Corporation Dynamic link width adjustment
CN103117929B (zh) * 2013-01-31 2015-12-23 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
WO2015155883A1 (ja) 2014-04-11 2015-10-15 三菱重工マシナリーテクノロジー株式会社 タイヤ保持装置、タイヤ試験システム
US9582366B2 (en) 2014-11-21 2017-02-28 International Business Machines Corporation Detecting and sparing of optical PCIE cable channel attached IO drawer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120011276A1 (en) * 2004-05-21 2012-01-12 Naveen Cherukuri Dynamically Modulating Link Width
US7756123B1 (en) * 2006-12-21 2010-07-13 Nvidia Corporation Apparatus, system, and method for swizzling of a PCIe link
US20120001276A1 (en) * 2010-06-30 2012-01-05 Industrial Technology Research Institute Apparatus integrating microelectromechanical system device with circuit chip and methods for fabricating the same
EP2961098A1 (en) * 2014-04-02 2015-12-30 Huawei Technologies Co. Ltd. Method, device and system for processing pcie link failure

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220158517A (ko) * 2021-05-24 2022-12-01 에스케이하이닉스 주식회사 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US11797468B2 (en) 2021-05-24 2023-10-24 SK Hynix Inc. Peripheral component interconnect express device and computing system including the same
US11960367B2 (en) 2021-05-24 2024-04-16 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
US11467909B1 (en) 2021-05-25 2022-10-11 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11815941B2 (en) 2021-05-26 2023-11-14 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11809344B2 (en) 2021-06-01 2023-11-07 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11940942B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof

Also Published As

Publication number Publication date
US20180095920A1 (en) 2018-04-05
DE102017120447A1 (de) 2018-04-05
CN107918594B (zh) 2023-09-12
DE102017120447A8 (de) 2018-05-24
KR102569761B1 (ko) 2023-08-22
CN107918594A (zh) 2018-04-17
US10747697B2 (en) 2020-08-18

Similar Documents

Publication Publication Date Title
KR102569761B1 (ko) 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법
US8127059B1 (en) Apparatus for interconnecting hosts with storage devices
US7757020B2 (en) Point-to-point link negotiation method and apparatus
KR101766445B1 (ko) 시분할 동작들을 사용하는 다중 프로토콜 터널링
US20160267048A1 (en) Device, system and method for communication with heterogeneous physical layers
US8296469B2 (en) Scalable method and apparatus for link with reconfigurable ports
US7360010B2 (en) Method and apparatus for storage command and data router
KR100794421B1 (ko) PCI-Express 통신 시스템
CN113227991B (zh) 替代协议选择
CN103460201B (zh) 串行接口
EP3779711B1 (en) Method for configuring balance time, chips and communication system
TW200910275A (en) Method for dynamically reassigning virtual lane buffer allocation to maximize IO performance
US8244948B2 (en) Method and system for combining multiple SAS expanders into a SAS switch
US20190370202A1 (en) Ad-hoc sensing switched data circuit for connecting network hosts and peripherals
KR102669923B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
KR102033112B1 (ko) Pci 익스프레스 스위치 장치 및 그의 접속 제어 방법
TWI233730B (en) Automatic configuration device and method for network media link
JP7052386B2 (ja) 転送装置及び転送方法
JP2004153803A (ja) データ通信装置、データ通信システム、データ通信方法、データ通信プログラム及び情報記録媒体

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