KR102635450B1 - PCIe 장치 및 그 동작 방법 - Google Patents

PCIe 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102635450B1
KR102635450B1 KR1020210067690A KR20210067690A KR102635450B1 KR 102635450 B1 KR102635450 B1 KR 102635450B1 KR 1020210067690 A KR1020210067690 A KR 1020210067690A KR 20210067690 A KR20210067690 A KR 20210067690A KR 102635450 B1 KR102635450 B1 KR 102635450B1
Authority
KR
South Korea
Prior art keywords
link
port
state
pcie
host
Prior art date
Application number
KR1020210067690A
Other languages
English (en)
Other versions
KR20220159722A (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 KR1020210067690A priority Critical patent/KR102635450B1/ko
Priority to US17/526,995 priority patent/US11815941B2/en
Priority to CN202210024024.5A priority patent/CN115408318A/zh
Priority to TW111105800A priority patent/TW202246997A/zh
Priority to US17/749,133 priority patent/US11921657B2/en
Publication of KR20220159722A publication Critical patent/KR20220159722A/ko
Priority to US18/534,037 priority patent/US20240104035A1/en
Application granted granted Critical
Publication of KR102635450B1 publication Critical patent/KR102635450B1/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/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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

Abstract

본 기술에 따른 PCIe 장치는 제1 호스트와 제1 링크를 이용하여 링크업되는 제1 포트, 상기 제1 호스트 또는 제2 호스트와 제2 링크를 이용하여 링크업되는 제2 포트 및 상기 제1 포트 및 상기 제2 포트가 독립적으로 동작하는 듀얼 포트 모드에서 상기 제1 포트만 동작하는 싱글 포트 모드로 동작 모드를 변경하도록 상기 제1 포트 및 상기 제2 포트를 제어하는 포트 모드 제어부;를 포함하되, 상기 포트 모드 제어부는 상기 제1 링크가 링크업된 상태에서 상기 제2 링크를 리셋하도록 상기 제2 포트를 제어할 수 있다.

Description

PCIe 장치 및 그 동작 방법{PERIPHERAL COMPONENT INTERCONNECT EXPRESS DEVICE AND OPERATING METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로는 PCIe 장치 및 그 동작 방법에 관한 것이다.
PCIe(Peripheral Component Interconnect Express)는 데이터 통신을 위한 직렬 구조의 인터페이스이다. PCIe 기반 저장 장치는 멀티 포트(multi-port) 및 멀티 펑션(multi-function)을 지원한다. PCIe 기반 저장 장치는 가상화(virtualize) 및 비가상화(Non-virtualize)될 수 있고, 하나 이상의 PCIe 펑션(PCIe function)을 통해 호스트 I/O 명령어의 QoS(Quality of Service)를 달성할 수 있다.
저장 장치는 컴퓨터나 스마트폰 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 저장 장치는 데이터가 저장되는 메모리 장치와 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치 (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) 등이 있다.
본 발명의 일 실시 예는 포트 모드를 변경하는 향상된 PCIe 장치의 동작 방법을 제공한다.
본 발명의 일 실시 예에 따른 PCIe 장치는 제1 호스트와 제1 링크를 이용하여 링크업되는 제1 포트, 상기 제1 호스트 또는 제2 호스트와 제2 링크를 이용하여 링크업되는 제2 포트 및 상기 제1 포트 및 상기 제2 포트가 독립적으로 동작하는 듀얼 포트 모드에서 상기 제1 포트만 동작하는 싱글 포트 모드로 동작 모드를 변경하도록 상기 제1 포트 및 상기 제2 포트를 제어하는 포트 모드 제어부를 포함하되, 상기 포트 모드 제어부는 상기 제1 링크가 링크업된 상태에서 상기 제2 링크를 리셋하도록 상기 제2 포트를 제어할 수 있다.
본 발명의 일 실시 예에 따른 PCIe 장치는 제1 호스트와 제1 링크를 이용하여 링크업되는 제1 포트, 상기 제1 호스트 또는 제2 호스트와 제2 링크를 이용하여 링크업되는 제2 포트 및 상기 제1 포트 및 상기 제2 포트 중 상기 제1 포트만 동작하는 싱글 포트 모드에서 상기 제1 포트 및 상기 제2 포트가 독립적으로 동작하는 듀얼 포트 모드로 동작 모드를 변경하도록 상기 제1 포트 및 상기 제2 포트를 제어하는 포트 모드 제어부를 포함하되, 상기 포트 모드 제어부는 상기 제1 링크가 링크업된 상태에서 상기 제2 링크를 링크업하는 링크 트레이닝 동작을 수행하도록 상기 제2 포트를 제어할 수 있다.
본 발명의 일 실시 예에 따른 제1 포트 및 제2 포트를 포함하는 PCIe 장치의 동작 방법은제1 호스트와 상기 제1 포트의 제1 링크를 링크업하는 제1 링크 트레이닝 동작을 수행하는 단계, 상기 제1 링크 트레이닝 동작이 완료되면, 싱글 포트 모드로 동작하는 단계, 상기 제1 호스트로부터 수신한 모드 변경 요청에 응답하여, 상기 제1 링크에 대응되는 레인을 감소시키는 레인 감소 동작을 수행하는 단계 및 상기 제1 링크의 상태가 L0 상태가 되면, 제2 호스트와 상기 제2 포트의 제2 링크를 링크업하는 제2 링크 트레이닝 동작을 수행하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 제1 포트 및 제2 포트를 포함하는 PCIe 장치의 동작 방법은 제1 호스트와 상기 제1 포트의 제1 링크를 링크업하는 제1 링크 트레이닝 동작 및 제2 호스트와 상기 제2 포트의 제2 링크를 링크업하는 제2 링크 트레이닝 동작을 수행하는 단계, 상기 제1 링크 트레이닝 동작 및 상기 제2 링크 트레이닝 동작이 완료되면, 상기 제1 링크 및 상기 제2 링크가 독립적으로 동작하는 듀얼 포트 모드로 동작하는 단계, 상기 제1 호스트 또는 상기 제2 호스트로부터 수신한 모드 변경 요청에 응답하여, 상기 제2 링크를 비활성화시키는 단계 및 상기 제2 링크의 비활성화가 완료되면, 상기 제1 링크에 대응되는 레인을 증가시키는 레인 증가 동작을 수행하는 단계를 포함할 수 있다.
본 기술은 포트 모드를 변경하는 향상된 PCIe 장치의 동작 방법을 제공한다.
도 1은 본 발명의 실시 예에 따른 PCIe 컴퓨팅 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 PCIe 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 PCIe 인터페이스를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 송신기, 수신기 및 레인을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 듀얼 포트 모드 및 싱글 포트 모드를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 PCIe 장치의 링크 상태를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 듀얼 포트 모드 및 싱글 포트 모드를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 듀얼 포트 모드 및 싱글 포트 모드를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 듀얼 포트 모드 및 싱글 포트 모드를 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시 예에 따른 듀얼 포트 모드 및 싱글 포트 모드를 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시 예에 따른 PCIe 장치의 구성을 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시 예에 따른 PCIe 장치가 싱글 포트 모드에서 듀얼 포트 모드로 변경되는 방법에 대하여 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시 예에 따른 PCIe 장치가 듀얼 포트 모드에서 싱글 포트 모드로 변경되는 방법에 대하여 설명하기 위한 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있는 기술 내용에 대해서는 설명을 생략한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 PCIe 컴퓨팅 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 도 1의 PCIe 컴퓨팅 시스템(100)은 중앙 처리 장치(110), 루트 컴플렉스(120), 메모리(130), 스위치(140), PCIe 엔드 포인트(150_1 내지 150_3), 레거시 엔드 포인트(160_1, 160_2) 및 PCIe 브릿지(170)를 포함할 수 있다.
PCIe 컴퓨팅 시스템(100)은 PCIe 인터페이스를 이용한 통신을 지원하는 전자 장치일 수 있다. PCIe 컴퓨팅 시스템(100)은 PC, 랩탑 컴퓨터 또는 모바일 컴퓨팅 장치일 수 있고, 확장 카드(expansion card), 확장 보드(expansion board), 어댑터 카드(adapter card), 애드-인 카드(add-in card) 또는 액세서리 카드 (accessory card)를 포함할 수 있다. 그리고, PCIe 컴퓨팅 시스템(100)은 확장 버스를 통해 PCIe 컴퓨팅 시스템(100)에 부가적인 기능을 제공하기 위해 PCIe 컴퓨팅 시스템(100)의 마더보드 상의 전기적 커넥터 또는 확장 슬롯에 삽입될 수 있는 인쇄 회로 기판 (printed circuit board(PCB))을 포함할 수 있다. 또한, PCIe 컴퓨팅 시스템(100)는 솔리드 스테이트 드라이브(solid state drives(SSD))와 같은 저장 장치를 포함할 수 있고, 그래픽 카드, 네트워크 카드, 또는 USB 카드 등을 포함할 수 있다.
중앙 처리 장치(110)는 PCIe 컴퓨팅 시스템(100)의 각 구성과 전기적으로 연결되어 있으며, PCIe 컴퓨팅 시스템(100)의 각 동작을 제어할 수 있다. 구체적으로, 중앙 처리 장치(110)는 운영 체제 또는 응용 프로그램을 구동하여 중앙 처리 장치(110)에 연결된 하드웨어 또는 소프트웨어의 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 그리고, 중앙 처리 장치(110)는 PCIe 컴퓨팅 시스템(100)의 동작을 제어하기 위한 소프트웨어 또는 어플리케이션을 실행할 수 있다.
루트 컴플렉스(120)는 주변 컴포넌트 인터커넥트 익스프레스(Peripheral Component Interconnect Express; PCIe) 상호 접속 아키텍처 내 루트 허브, 제어기 허브, 또는 루트 제어기일 수 있다. 예를 들어, 루트 컴플렉스(120)는 칩셋, 메모리 제어기 허브(memory controller hub, MCH), 노스브릿지, 인터커넥트 제어기 허브(interconnect controller hub, ICH), 사우스브릿지, 및 루트 제어기/허브를 포함할 수 있다. 그리고, 루트 컴플렉스(120)는 중앙 처리 장치(110) 및 메모리(130)를 입출력 계층 구조(I/O Hierarchy)와 연결할 수 있다. 루트 컴플렉스(120)는 피어-투-피어(Peer-to-Peer; P2P) 라우팅을 지원할 수 있다. 루트 컴플렉스(120)는 적어도 하나의 호스트 브릿지 및 루트 포트를 포함할 수 있다. 루트 컴플렉스(120)는 하나 이상의 PCIe(Peripheral Component Interconnect Express) 포트를 지원할 수 있다.
메모리(130)는 PCIe 컴퓨팅 시스템(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) 디바이스, 스캐너, 및 기타 입력/출력 디바이스와 같은 전자 시스템에 연결되는 임의의 내부 또는 외부 디바이스나 컴포넌트를 포함할 수 있다.
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)는 컨피겨레이션 공간 헤더를 제공할 수 있다. 또, PCIe 엔드 포인트(150_1~150_3) 및 레거시 엔드 포인트(160_1, 160_2)는 컴플리터(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를 송수신할 수 있다.
도 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)는 PCIe 코어(211), 트랜잭션 레이어(212), 데이터 링크 레이어(213) 및 피지컬 레이어(214)를 포함할 수 있다. 각 레이어들(212, 213, 214)은 두 개의 섹션들을 포함할 수 있다. 하나의 섹션(TX)은 아웃바운드(또는 전송될) 정보를 처리할 수 있고, 다른 하나(RX)는 인바운드(또는 수신된) 정보를 처리할 수 있다. 그리고, 제1 PCIe 인터페이스(210-1)는 다른 PCIe 인터페이스 사이에서 정보를 통신하기 위해 패킷들(packets)을 사용할 수 있다.
PCIe 코어(211)는 제1 PCIe 인터페이스(210-1)를 전반적으로 제어할 수 있다. 구체적으로, PCIe 코어(211)는 인터페이스를 동작하기 위한 소프트웨어 레이어를 포함할 수 있다. 그리고, PCIe 코어(211)는 트랜잭션 레이어(212)로 어드레스, 트랜잭션 타입 및 데이터 등을 전송하거나 트랜잭션 레이어(212)로부터 어드레스, 트랜잭션 타입 및 데이터 등을 수신할 수 있다. 실시 예에서, PCIe 코어(211)는 인터페이스에 연결된 링크의 상태를 변경시키는 LTSSM(Link Training & Status State Machine) 또는 링크 트레이닝 모듈로 동작할 수 있다.
PCIe 인터페이스의 구조에서 상위(upper) 레이어는 트랜잭션 레이어(212)일 수 있다. 트랜잭션 레이어(212)는 트랜잭션 레이어 패킷들(transaction layer packets(TLPs))을 모으고(assembly) 분해(disassembly)할 수 있다. 그리고, 트랜잭션 레이어(212)는 스플릿 트랜잭션(split tansaction), 즉, 타겟 시스템이 응답에 필요한 데이터를 수집하는 동안 링크로 다른 트래픽을 전달하게 해주는 트랜잭션을 구현할 수 있다. 예컨대, 트랜잭션 레이어(212)는 요청과 응답이 시간적으로 분리되어 있는 트랜잭션을 구현할 수 있다. 일 실시예에서, 네 개의 트랜잭션 어드레스 공간은 구성 어드레스 공간, 메모리 어드레스 공간, 입력/출력 어드레스 공간, 및 메시지 어드레스 공간을 포함할 수 있다. 메모리 공간 트랜잭션은 데이터를 메모리-매핑된 장소로/로부터 전달하는 읽기 요청 및 쓰기 요청 중 하나 이상을 포함할 수 있다. 일 실시예에서, 메모리 공간 트랜잭션은 두 가지 상이한 어드레스 포맷, 예를 들면, 32-비트 어드레스와 같이 짧은 어드레스 포맷, 또는 64-비트 어드레스와 같이 긴 어드레스 포맷을 사용할 수 있다. 구성 공간 트랜잭션은 PCIe 장치의 구성 공간에 액세스하는데 사용될 수 있다. 구성 공간으로의 트랜잭션은 읽기 요청 및 쓰기 요청을 포함할 수 있다. 메시지 공간 트랜잭션(또는, 메시지)은 PCIe 장치들 간의 대역-내(in-band) 통신을 지원하기 위해 정의될 수 있다.
트랜잭션 레이어(212)는 PCIe 코어(211)로부터 수신한 링크 구성 정보(Link configuration information) 등을 저장할 수 있다. 그리고, PCIe 코어(211)에서 요청한 TLP를 생성하거나, 수신한 TLP를 페이로드(payload) 또는 상태 정보(status information)로 변환할 수 있다.
PCIe 인터페이스의 구조에서 중간 레이어(middle layer)는 데이터 링크 레이어(213)이고, 데이터 링크 레이어(213)는 트랜잭션 레이어(212) 및 피지컬 레이어(214) 사이의 중간 스테이지(intermediate stage)의 기능을 수행할 수 있다. 데이터 링크 레이어(213)의 주요한 기능은 링크 관리(link management) 및 에러 검출과 에러 정정을 포함하는 데이터 무결성(data integrity)일 수 있다. 구체적으로, 데이터 링크 레이어(213)의 송신 측은 트랜잭션 레이어(212)에서 수집된(assembled) TLPs를 수용(accept)하고, 데이터 보호 코드를 부여하거나, TLP 시퀀스 번호를 계산할 수 있다. 그리고, 데이터 링크 레이어(213)의 송신 측은 링크를 통해 전송하기 위해 데이터 보호 코드와 TLP 시퀀스 번호를 피지컬 레이어(214)로 전송할 수 있다. 데이터 링크 레이어(213)의 수신 측은 피지컬 레이어(214)로부터 수신된 TLPs의 데이터 무결성을 체크하고, 추가적인 처리를 위해 트랜잭션 레이어(212)로 TLPs를 전송할 수 있다.
피지컬 레이어(214)는 인터페이스 동작을 위한 회로(circuitry)를 포함할 수 있다. 여기서, 피지컬 레이어는 드라이버, 입력 버퍼, 직렬-병렬 변환 회로, 병렬-직렬 변환 회로, 위상 동기 루프(phase locked loop(PLLs), 및 임피던스 매칭 회로등을 포함할 수 있다.
그리고, 피지컬 레이어(214)는 패킷을 외부 PCIe 장치에 물리적으로 전송하는 논리 서브블록 및 전기 서브블록을 포함할 수 있다. 여기서, 논리 서브블록은 피지컬 레이어의 '디지털' 기능에 필요한 역할을 수행할 수 있다. 이와 관련하여, 논리 서브블록은 전기 서브블록에 의해 전송되는 발송 정보를 준비하는 송신 섹션과 수신된 정보를 데이터 링크 레이어(213)에 전달하기 전에 수신된 정보를 식별하고 준비하는 수신 섹션을 포함할 수 있다. 피지컬 레이어(214)는 송신기(TX) 및 수신기(RX)를 포함할 수 있다. 송신기(TX)는 논리 서브블록에 의해 송신기가 직렬화하여 외부 장치에 송신하는 심볼을 공급받을 수 있다. 그리고, 수신기(RX)는 외부 장치로부터 직렬화된 심볼을 공급받고 수신된 신호를 비트스트림으로 변환할 수 있다. 비트스트림은 역직렬화되어 논리 서브블록에 공급될 수 있다. 즉, 피지컬 레이어(214)는 데이터 링크 레이어(213)로부터 수신한 TLPs를 직렬화된 형식(serialized format)으로 변환하고, 외부 장치로부터 수신한 패킷을 역직렬화된 형식(deserialized format)으로 변환할 수 있다. 그리고, 피지컬 레이어(214)는 인터페이스 초기화 및 유지에 관련된 논리적 기능들을 포함할 수 있다.
도 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 호스트(2000-1) 및 제2 PCIe 호스트(2000-2)와 링크업되는 PCIe 장치(1000)가 도시되어 있다. 여기서, 링크업(link-up)은 논리적으로 데이터 통신이 가능한 상태로 연결되어 있는 상태를 의미할 수 있다. 한편, 제1 PCIe 호스트(2000-1) 및 제2 PCIe 호스트(2000-2)는 PCIe 장치(1000)보다 상위 계층일 수 있다. 그리고, 상위 계층으로의 데이터 이동 및 전송을 업스트림이라고 칭할 수 있으며, 업스트림을 지원하는 포트를 업스트림 포트라고 칭할 수 있다. 반대로, 하위 계층으로의 데이터 이동 및 전송을 다운스트림이라고 칭할 수 있으며, 다운스트림을 지원하는 포트를 다운스트림 포트라고 칭할 수 있다. 예를 들어, 도 1을 참조하면, 스위치(140)는 다운스트림 및 업스트림의 라우팅을 지원할 수 있다. 구체적으로, 업스트림은 패킷 또는 메시지를 PCIe 엔드 포인트(예컨대, 150_1)로부터 루트 컴플렉스(120)를 향한 계층 위쪽으로의 라우팅이고, 다운스트림은 루트 컴플렉스(120)로부터 PCIe 앤드 포인트(예컨대, 150_2)를 향한 계층 아래쪽으로의 라우팅일 수 있다.
PCIe 장치(1000)는 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)를 포함할 수 있다. 그리고, PCIe 장치(1000)는 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)가 독립적으로 동작하는 듀얼 포트 모드로 제1 PCIe 호스트(2000-1) 및 제2 PCIe 호스트(2000-2)와 데이터 통신이 될 수 있다.
구체적으로, PCIe 장치(1000)에 포함된 제1 업스트림 포트(1100)는 제1 링크(10)를 이용하여 제1 PCIe 호스트(2000-1)와 링크업될 수 있다. 그리고, PCIe 장치(1000)에 포함된 제2 업스트림 포트(1200)는 제2 링크(20)를 이용하여 제2 PCIe 호스트(2000-2)와 링크업될 수 있다. 제1 업스트림 포트(1100)는 제1 PCIe 호스트(2000-1)의 제1 다운스트림 포트(2100-1)에 링크업될 수 있고, 제2 업스트림 포트(1200)는 제2 PCIe 호스트(2000-2)의 제2 다운스트림 포트(2100-2)에 링크업될 수 있다. 여기서, 제1 링크(10) 및 제2 링크(20)의 링크 폭(Link width)은 각각 x1, x2, x4, x8, x12, x16, x32, x64 등의 레인을 포함할 수 있다.
실시 예에서, PCIe 장치(1000)가 듀얼 포트 모드로 동작할 때, 제1 업스트림 포트(1100) 및 제1 다운스트림 포트(2100-1) 사이의 제1 링크(10)의 오류(예컨대, 클럭 오류) 등은 제2 업스트림 포트(1200) 및 제2 다운스트림 포트(2100-2) 사이의 제2 링크(20)에 영향을 주지 않을 수 있다.
실시 예에서, 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)는 각각 독립된 PCIe 인터페이스 및 LTSSM(Link Training & Status State Machine)을 포함하여 구현될 수 있다. 구체적으로, 제1 업스트림 포트(1100)는 제1 LTSSM을 포함할 수 있고, 제2 업스트림 포트(1200)는 제2 LTSSM을 포함할 수 있다. 그리고, 제1 LTSSM 및 제2 LTSSM은 제1 링크(10)에 대한 링크 트레이닝 및 제2 링크(20)에 대한 링크 트레이닝을 독립적으로 수행할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 PCIe 장치의 링크 상태를 설명하기 위한 도면이다.
도 6을 참조하면, 감지(detect) 상태, 폴링(polling) 상태, 구성(configuration) 상태, 핫 리셋(hot reset), 불능(disabled) 상태, L0 상태 등의 PCIe 장치의 링크 상태가 도시되어 있다.
감지 상태는 파워 온 또는 리셋 후의 초기 상태이며 이하의 상태들로부터 진입된 것일 수 있다. 예를 들어, 감지 상태는 구성 상태, 핫 리셋, 불능 상태, L2 상태, 룩백(loopback) 상태 및 리커버리 상태로부터 진입된 상태일 수 있다. 감지 상태는 모든 로직, 포트 및 레지스터를 리셋할 수 있고, PCIe 인터페이스에 연결된 링크를 감지하는 단계일 수 있다. 즉, 감지 상태는 물리적으로 연결된 레인을 탐색하는 단계일 수 있다.
폴링 상태는 감지된 레인들 중 데이터 통신이 가능한 레인을 구별하는 상태를 의미할 수 있다. 폴링 상태는 PCIe 인터페이스의 양 끝 단의 클럭을 동기화하고, 레인의 극성이 D+인지 D-인지를 확인하고, 레인이 사용할 수 있는 데이터 전송 속도를 확인하는 단계일 수 있다. 즉, 폴링 상태는 극적 반전(polarity inversion)을 확인하는 상태일 수 있다. 또한, 폴링 상태의 링크는 감지 상태 또는 구성 상태로 진입할 수 있다.
구성 상태는 레인의 연결 상태를 확인하는 상태일 수 있다. 구성 상태는 폴링 상태에서 진입할 수 있고, 또는, L0 상태 진입 후 레인 감소(lane reduce) 및 레인 폭 증가(lane width up)시 구성 상태로 진입할 수 있다. 구성 상태는 데이터 통신이 가능한 레인 폭(lane width)을 확정하는 상태일 수 있다. 구성 상태는 데이터 통신 중인 양쪽 장치의 최대 성능을 위한 협상이 수행될 수 있다. 그리고, 구성 상태는 레인 반전(lane reverse)을 확인하는 단계일 수 있다. 실시 예에 따르면, 구성 상태에서 레인 폭을 증가시키는 up-configure 동작 또는 레인 폭을 감소시키는 lane reduce 동작이 수행될 수 있다.
리커버리 상태는 링크 대역폭의 재구성을 위해 사용되는 상태일 수 있다. 리커버리 상태는 설정된 링크의 링크 대역폭을 바꾸고, 비트 락(bit lock), 심볼 락 및 레인-투-레인 디스큐(lane-to-lane de-skew)를 재설정할 수 있다. 리커버리 상태는 L0 상태에서 에러가 발생한 경우 진입할 수 있고, 이후, 리커버리 상태에서 에러를 복구한 후 L0 상태로 변경될 수 있다. 또한, 본 발명의 일 실시 예에 따르면, 리커버리 상태에서 링크의 이퀄라이제이션 동작이 수행될 수 있다.
L0 상태는 데이터 및 패킷들이 링크를 통해 송신 및 수신될 수 있는 정상 동작 상태(normal operational state)일 수 있다. 구체적으로, L0 상태는 데이터 및 제어 패킷들이 송신 및 수신될 수 있는 물리적 버스 인터페이스의 동작 상태일 수 있다. L0 상태는 최대 활성 상태(fully active state)일 수 있다.
L0s 상태는 L0 상태의 하위 단계로, L0s 상태에서 링크는 리커버리 상태를 거치지 않고 빠르게 저전력 상태로 진행하고 정상 동작 상태(예컨대, L0 상태)로 복구될 수 있다. 즉, L0s 상태는 물리적 버스 인터페이스가 전력을 보존할 수 있는 상태로 신속하게 진입할 수 있게 하고 리커버리 상태를 거치지 않고서 정상 동작 상태로 복구될 수 있게 하는 전력 절감 상태이다.
L1 상태는 L0s 상태보다 L0 상태로의 복귀 속도는 느리지만, L1 상태에서 추가적인 재개 레이턴시를 통해 L0 상태에 비해 추가적으로 더 큰 전력을 절약할 수 있는 단계일 수 있다. L1 상태는 ASPM(active state power management) 또는 Power Management Software를 통해 진입될 수 있다. 이 때, ASPM는 PCIe로 연결된 장치가 사용 중이지 않을 때, 링크를 저전력 상태로 변경하는 정책이고, Power Management Software는 PCIe로 연결된 장치를 저전력 상태로 바꾸는 정책일 수 있다.
L2 상태는 최대 전력 절감 상태일 수 있다. L2 상태에서 대부분의 송신기 및 수신기가 셧 오프될 수 있다. L2 상태에서 메인 전력 및 클록들은 보장되지 않지만, 보조 전력은 이용할 수 있다.
루프백 상태는 테스트 및 오작동 분리 사용을 위한 상태일 수 있다. 루프백 상태에서는 링크를 리셋할 수 있다. 루프백 상태는 레인 단위로만 동작되며, 루프백 수신 레인이 선택되고 구성되어야 한다.
불능 상태는 설정된 링크가 지시될 때까지 불능이 되게 하는 상태일 수 있다. 핫 리셋 상태는 다운스트림 포트에 의해서만 트리거될 수 있다. 다운스트림 포트는 핫 리셋을 전파하기 위해 트레이닝 시퀀스들(예컨대, TS1 또는 TS2)을 사용할 수 있다. 여기서, 트레이닝 시퀀스들(Training Sequences; TS)은 비트 정렬 초기화(initializing bit alignment), 심볼 정렬(Symbol alignment) 및 피지컬 레이어(Physical) 매개 변수(parameter) 교환에 사용되는 정렬된 집합일 수 있다.
도 7 내지 도 10은 본 발명의 일 실시 예에 따른 듀얼 포트 모드 및 싱글 포트 모드를 설명하기 위한 도면이다.
도 7 내지 도 10을 참조하면, PCIe 장치(1000)는 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)를 포함할 수 있다. 그리고, 제1 업스트림 포트(1100)는 제1 다운스트림 포트(2100-1)에 링크업될 수 있고, 제2 업스트림 포트(1200)는 제1 업스트림 포트(1100)와 독립적으로 동작하는 링크를 통하여 제2 다운스트림 포트(2100-2)에 링크업될 수 있다. 그리고, 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)는 물리적 또는 논리적으로 연결된 링크의 상태를 제어하는 LTSSM을 각각 포함할 수 있다.
본 발명의 일 실시 예에 따르면, PCIe 장치(1000)는 링크가 링크업된 상태에서 싱글 포트 모드에서 듀얼 포트 모드로 동작 모드를 변경할 수 있다. 또는, PCIe 장치(1000)는 적어도 하나의 링크가 링크업된 상태에서 듀얼 포트 모드에서 싱글 포트 모드로 동작 모드를 변경할 수 있다.
도 7을 참조하면, PCIe 장치(1000)의 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)는 제1 다운스트림 포트(2100-1) 및 제2 다운스트림 포트(2100-2)에 각각 연결된 듀얼 포트 모드일 수 있다. 실시 예에서, 제1 다운스트림 포트(2100-1) 및 제2 다운스트림 포트(2100-2)는 하나의 호스트에 포함되어 각각 독립적인 포트로 구현될 수 있다. 또는, 제1 다운스트림 포트(2100-1) 및 제2 다운스트림 포트(2100-2)는 상이한 호스트에 포함되어 구현될 수 있다. 도 7을 참조하면, 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)에 연결된 링크는 논리적으로 데이터 통신이 가능한 상태일 수 있다.
도 8을 참조하면, PCIe 장치(1000)의 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)는 제1 업스트림 포트(1100)를 이용한 데이터 통신만 가능한 싱글 포트 모드일 수 있다. 구체적으로, PCIe 장치(1000)의 동작 모드가 듀얼 포트 모드에서 싱글 포트 모드로 변경될 때, 제1 업스트림 포트(1100)의 링크 상태는 L0 상태일 수 있고, 제2 업스트림 포트(1200)의 링크 상태는 링크업된 링크를 초기화하는 리셋 상태(예컨대, 콜드 리셋, 웜 리셋 또는 핫 리셋)이거나, 링크업된 링크를 비활성화하는 불능 상태일 수 있다. 또는, PCIe 장치(1000)의 동작 모드가 싱글 포트 모드에서 듀얼 포트 모드로 변경될 때, 제1 업스트림 포트(1100)의 링크 상태는 L0 상태일 수 있고, 제2 업스트림 포트(1200)의 링크 상태는 링크를 연결하는 링크 트레이닝 중인 상태일 수 있다. 예를 들어, 제2 업스트림 포트(1200)의 링크 상태는 감지 상태, 폴링 상태 또는 구성 상태 중 어느 하나의 상태일 수 있다. 본 발명의 일 실시 예에 따르면, 제1 업스트림 포트(1100)의 링크 상태는 L0 상태이므로, 제2 업스트림 포트(1200)의 링크 상태와 관계 없이, PCIe 장치(1000)는 제1 업스트림 포트(1100)를 이용하여 제1 다운스트림 포트(2100-1)와 데이터 통신을 지속할 수 있다.
도 9를 참조하면, PCIe 장치(1000)의 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)는 제1 업스트림 포트(1100)를 이용한 데이터 통신만 가능한 싱글 포트 모드일 수 있다. 구체적으로, PCIe 장치(1000)의 동작 모드가 듀얼 포트 모드에서 싱글 포트 모드로 변경될 때, 제1 업스트림 포트(1100)는 링크를 구성하는 레인 폭을 증가시키는 up-configure 동작을 수행하는 상태일 수 있다. 예를 들어, 제1 업스트림 포트(1100)는 제1 업스트림 포트(1100)에 연결된 링크를 x2 레인에서 x4 레인으로 레인 폭을 증가시킬 수 있다. 구체적으로, 제1 업스트림 포트(1100)의 링크가 최대 레인폭으로 구성될 수 있도록, 제1 LTSSM은 제1 업스트림 포트(1100)의 링크 상태를 L0 상태, 리커버리 상태, 구성 상태로 순차적으로 변경시키고, 각 상태에서 레인 폭을 증가시키는 up-configure 동작을 수행할 수 있다. 또는, PCIe 장치(1000)의 동작 모드가 싱글 포트 모드에서 듀얼 포트 모드로 변경될 때, 제1 업스트림 포트(1100)의 링크를 구성하는 레인 폭을 감소시키는 레인 감소(lane reduce) 동작을 수행하는 상태일 수 있다. 예를 들어, 제1 업스트림 포트(1100)는 제1 업스트림 포트(1100)에 연결된 링크를 x4 레인에서 x2 레인으로 레인 폭을 감소시킬 수 있다. 구체적으로, PCIe 장치(1000)는 제1 업스트림 포트(1100)만으로 동작하는 싱글 포트 모드에서 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)가 독립적으로 동작하는 듀얼 포트 모드로 변경하기 위해 제1 업스트림 포트(1100)의 레인폭을 감소시킬 수 있다. 제1 LTSSM은 제1 업스트림 포트(1100)의 링크 상태를 L0 상태, 리커버리 상태, 구성 상태로 순차적으로 변경시키고, 각 상태에서 레인 폭을 감소시키기는 레인 감소(lane reduce) 동작을 수행할 수 있다.
도 10을 참조하면, PCIe 장치(1000)의 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)는 제1 업스트림 포트(1100)를 이용한 데이터 통신만 가능한 싱글 포트 모드일 수 있다. 실시 예에서, 제1 다운스트림 포트(2100-1)에 연결된 링크가 최대 레인폭으로 구현된 상태일 수 있다. 또는, 본 발명의 일 실시 예에 따르면, 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)가 동일한 호스트에 연결된 상태에서, 제2 업스트림 포트(1200)와 연결된 링크 또는 데이터 통신에 오류가 발생한 경우, PCIe 장치(1000)는 오류가 복구될 때까지 제1 업스트림 포트(1100)만을 이용하여 데이터 통신을 속행할 수 있다.
도 7 내지 도 10을 참조하면, PCIe 장치(1000)는 호스트로부터 듀얼 포트 모드에서 싱글 포트 모드로 모드 변경 요청을 수신할 수 있다. 그리고, PCIe 장치(1000)는 호스트의 동작 모드 변경 요청에 응답하여, 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)에 연결된 링크 상태를 도 7에서 도 8, 도 9 및 도 10에 대응되는 링크 상태로 순차적으로 변경시킬 수 있다.
또는, 도 7 내지 도 10을 참조하면, PCIe 장치(1000)는 호스트로부터 싱글 포트 모드에서 듀얼 포트 모드로 모드 변경 요청을 수신할 수 있다. 그리고, PCIe 장치(1000)는 호스트의 동작 모드 변경 요청에 응답하여, 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)에 연결된 링크 상태를 도 10에서 도 9, 도 8 및 도 7에 대응되는 링크 상태로 순차적으로 변경시킬 수 있다.
도 11은 본 발명의 일 실시 예에 따른 PCIe 장치의 구성을 설명하기 위한 도면이다.
도 11을 참조하면, PCIe 장치(1000)는 제1 업스트림 포트(1100), 제2 업스트림 포트(1200) 및 포트 모드 제어부(1300)를 포함할 수 있다. PCIe 장치(1000)는 제1 업스트림 포트(1100)만을 이용하는 싱글 포트 모드로 데이터 통신을 수행할 수 있다. 구체적으로, PCIe 장치(1000)는 제1 레인 내지 제4 레인 중 적어도 하나의 레인을 이용하여 제1 업스트림 포트(1100)를 외부 장치와 링크업할 수 있다. 한편, 도 11에서는 PCIe 장치(1000)가 4개의 레인을 포함하는 형태로 도시되었으나, 4개보다 많은 레인들을 포함하는 형태로 구현될 수 있음은 물론이다.
PCIe 장치(1000)는 제1 레인 내지 제4 레인을 모두 이용하여 싱글 포트 모드로 동작할 때, 포트 모드 제어부(1300)는 각 회로에 입력되는 기준 클럭이 동일하도록 제1 멀티플렉서(1010)를 제어할 수 있다. 구체적으로, 싱글 포트 모드로 동작할 때, 포트 모드 제어부(1300)는 제1 멀티플렉서(1010)에 입력되는 제1 기준 클럭(Refclk#1) 및 제2 기준 클럭(Refclk#2) 중 제1 기준 클럭(Refclk#1)이 각 회로에 입력되도록 제1 멀티플렉서(1010)를 제어할 수 있다. 그리고, 싱글 포트 모드로 동작할 때, 포트 모드 제어부(1300)는 제3 레인 및 제4 레인으로부터 전송되는 신호가 제1 PCIe 인터페이스로 전송되도록 제2 멀티플렉서(1020)를 제어할 수 있다.
또한, PCIe 장치(1000)는 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)를 모두 이용하는 듀얼 포트 모드로 데이터 통신을 수행할 수 있다. PCIe 장치(1000)는 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)를 이용하여 적어도 하나의 호스트와 링크업할 수 있다.
PCIe 장치(1000)는 듀얼 포트 모드로 동작할 때, 포트 모드 제어부(1300)를 이용하여 내부 회로를 제어할 수 있다. 구체적으로, 듀얼 포트 모드로 동작할 때, 포트 모드 제어부(1300)는 제1 업스트림 포트(1100)에는 제1 기준 클럭(Refclk#1)이 제공되고, 제2 업스트림 포트(1200)에는 제1 기준 클럭(Refclk#1)과 상이한 제2 기준 클럭(Refclk#2)이 제공되도록 제1 멀티플렉서(1010)를 제어할 수 있다. 그리고, 듀얼 포트 모드로 동작할 때, 포트 모드 제어부(1300)는 제3 레인 및 제4 레인으로부터 전송되는 신호가 제2 PCIe 인터페이스로 전송되도록 제2 멀티플렉서(1020)를 제어할 수 있다.
한편, PCIe 장치(1000)는 호스트로부터 수신하는 제1 PCIe 리셋 신호(PERST#1) 및 제2 PCIe 리셋 신호(PERST#2)에 응답하여 제1 업스트림 포트(1100) 및 제2 업스트림 포트(1200)에 각각 포함된 PCIe 인터페이스를 리셋할 수 있다. 그리고, PCIe 장치(1000)는 호스트로부터 수신하는 듀얼 포트 인에이블 신호(DualPortEN#)에 응답하여 싱글 포트 모드 또는 듀얼 포트 모드로 동작 모드를 변경할 수 있다. 구체적으로, 포트 모드 제어부(1300)는 제1 PCIe 리셋 신호(PERST#1)에 응답하여 제1 업스트림 포트(1100)에 포함된 PCIe 인터페이스 및 LTSSM을 리셋할 수 있다. 포트 모드 제어부(1300)는 제2 PCIe 리셋 신호(PERST#2)에 응답하여 제2 업스트림 포트(1200)에 포함된 PCIe 인터페이스 및 LTSSM을 리셋할 수 있다.
도 12는 본 발명의 일 실시 예에 따른 PCIe 장치가 싱글 포트 모드에서 듀얼 포트 모드로 변경되는 방법에 대하여 설명하기 위한 도면이다.
도 12를 참조하면, PCIe 장치(1000)의 동작 방법이 순차적으로 도시되어 있다. 구체적으로, PCIe 장치(1000)는 제1 포트 및 제2 포트를 포함할 수 있다. 그리고, PCIe 장치(1000)는 제1 포트를 제1 호스트와 링크업하고, 싱글 포트 모드로 동작할 수 있다(S1210). 구체적으로, PCIe 장치(1000)는 제1 호스트와 제1 포트의 제1 링크를 링크업하는 제1 링크 트레이닝 동작을 수행할 수 있다. 여기서, 싱글 포트 모드는 제1 포트 및 제2 포트 중 제1 포트만 동작하는 모드일 수 있다.
그리고, 호스트로부터 모드 변경 요청을 수신하면(S1220_Yes), PCIe 장치(1000)는 제1 링크의 레인 감소 동작을 수행할 수 있다(S1230). 여기서, 레인 감소 동작은 제1 링크에 대응되는 레인 폭(또는 링크 폭)을 감소시키는 동작일 수 있다.
제1 포트의 제1 링크의 상태가 L0 상태가 되면, PCIe 장치(1000)는 제2 포트의 링크업을 시작할 수 있다(S1240). 구체적으로, PCIe 장치(1000)는 제1 포트의 레인 감소 동작이 완료되고, 제1 포트의 제1 링크의 상태가 L0 상태로 복귀되면, 제2 포트의 제2 링크를 링크업하는 제2 링크 트레이닝 동작을 수행할 수 있다.
그리고, 제2 링크 트레이닝 동작이 완료되면, PCIe 장치(1000)는 제1 포트 및 제2 포트가 독립적으로 동작하는 듀얼 포트 모드로 동작할 수 있다. 즉, 제1 포트 및 제2 포트 중 어느 하나에서 수행되는 데이터 통신 또는 에러 발생 등은 나머지 하나에 영향을 주지 않을 수 있다. 듀얼 포트 모드로 동작하기 위하여, 제1 포트 및 제2 포트는 각각 LTSSM, PCIe 인터페이스 등을 포함할 수 있다. 여기서, PCIe 인터페이스는 PCIe 표준에 따라 동작하는 트랜잭션 레이어, 데이터 링크 레이어, 피지컬 레이어를 포함하는 인터페이스를 의미할 수 있다.
도 13은 본 발명의 일 실시 예에 따른 PCIe 장치가 듀얼 포트 모드에서 싱글 포트 모드로 변경되는 방법에 대하여 설명하기 위한 도면이다.
도 13을 참조하면, PCIe 장치(1000)의 동작 방법이 순차적으로 도시되어 있다. 구체적으로, PCIe 장치(1000)는 제1 포트 및 제2 포트를 포함할 수 있다. 그리고, PCIe 장치(1000)는 제1 포트와 제2 포트를 링크업하고, 듀얼 포트 모드로 동작할 수 있다(S1310). 구체적으로, PCIe 장치(1000)는 제1 포트를 제1 호스트와 링크업하고, 제2 포트를 제2 호스트와 링크업할 수 있다. 즉, PCIe 장치(1000)는 제1 호스트와 제1 포트의 제1 링크를 링크업하는 제1 링크 트레이닝 동작, 제2 호스트와 제2 포트의 제2 링크를 링크업하는 제2 링크 트레이닝 동작을 독립적으로 수행할 수 있다. 여기서, 링크업은 호스트와 데이터 통신이 논리적으로 가능하도록 링크를 호스트에 연결하는 동작일 수 있고, 링크 트레이닝 동작은 링크업을 수행하기 위하여 해당 링크와 관련된 설정을 조정하는 전반적인 동작을 의미할 수 있다.
그리고, 호스트로부터 모드 변경 요청을 수신하면(S1320_Yes), PCIe 장치(1000)는 제2 링크를 리셋 또는 비활성화할 수 있다(S1330). 여기서, 리셋 또는 비활성화는 호스트와 링크업된 링크의 연결을 물리적 또는 논리적으로 끊는 것을 의미할 수 있다. 그리고, 실시 예에서, PCIe 장치(1000)가 제2 링크를 리셋 또는 비활성화하는 동안, 제1 링크는 링크업된 상태(예컨대, L0 상태)를 유지할 수 있다.
그리고, 제2 링크의 리셋 또는 비활성화가 완료되면, PCIe 장치(1000)는 제1 링크의 레인폭을 증가시키는 레인 증가 동작을 수행할 수 있다(S1340). 제1 링크에 대한 레인 증가 동작을 수행하는 동안, 제1 링크의 상태는 L0 상태, 리커버리 상태, 구성 상태 및 L0 상태로 순차적으로 변경될 수 있다. 제1 링크에 대한 레인 증가 동작 동안 논리적으로 데이터 통신이 가능한 상태이므로, 제1 링크는 링크업된 상태라고 칭할 수 있다.
그리고, 제1 링크에 대한 레인 증가 동작이 완료되면, PCIe 장치(1000)는 제1 포트 및 제2 포트 중 제1 포트만 동작하는 싱글 포트 모드로 동작할 수 있고, PCIe 장치(1000)는 제1 링크의 레인 폭을 설정가능한 최대로 설정할 수 있다.
200-1: 제1 PCIe 장치
210-1: 제1 PCIe 인터페이스
214: 피지컬 레이어

Claims (23)

  1. 제1 호스트와 제1 링크를 이용하여 링크업되는 제1 포트;
    상기 제1 호스트 또는 제2 호스트와 제2 링크를 이용하여 링크업되는 제2 포트; 및
    상기 제1 포트 및 상기 제2 포트가 독립적으로 동작하는 듀얼 포트 모드에서 상기 제1 포트만 동작하는 싱글 포트 모드로 동작 모드를 변경하도록 상기 제1 포트 및 상기 제2 포트를 제어하는 포트 모드 제어부;를 포함하되,
    상기 포트 모드 제어부는,
    상기 제1 링크가 상기 제1 호스트와 상기 제1 포트간에 데이터를 통신하는 동안 상기 제2 링크를 리셋하도록 상기 제2 포트를 제어하는 PCIe 장치.
  2. 제1항에 있어서,
    상기 제1 포트는,
    상기 제1 링크의 상태를 변경시키는 제1 링크 트레이닝 모듈;을 포함하고,
    상기 제2 포트는,
    상기 제2 링크의 상태를 변경시키는 제2 링크 트레이닝 모듈;을 포함하는 PCIe 장치.
  3. 제2항에 있어서,
    상기 포트 모드 제어부는,
    상기 제1 링크가 상기 제1 호스트와 상기 제1 포트간에 데이터를 통신하는 상태에서 상기 제2 링크를 리셋하도록 상기 제2 링크 트레이닝 모듈을 제어하고, 상기 제2 링크의 리셋이 완료되면, 상기 제1 링크의 레인 폭을 확장하도록 상기 제1 링크 트레이닝 모듈을 제어하는 PCIe 장치.
  4. 제3항에 있어서,
    상기 제1 링크 트레이닝 모듈은,
    상기 포트 모드 제어부의 제어에 따라, 상기 제1 링크의 레인 폭을 증가시키는 up-configure 동작을 수행하는 PCIe 장치.
  5. 제3항에 있어서,
    상기 제1 링크 트레이닝 모듈은,
    상기 제1 링크의 상태를 데이터를 송수신하는 L0 상태, 리커버리 상태, 구성 상태 및 상기 L0 상태로 순차적으로 변경시키는 PCIe 장치.
  6. 제1항에 있어서,
    상기 제1 포트 및 상기 제2 포트는,
    링크 트레이닝 모듈의 제어에 따라 PCIe 표준에 따른 링크의 상태로 동작하는 트랜잭션 레이어, 데이터 링크 레이어 및 피지컬 레이어를 포함하는 PCIe 인터페이스;를 각각 포함하는 PCIe 장치.
  7. 제1항에 있어서,
    상기 포트 모드 제어부는,
    상기 제1 호스트로부터 상기 듀얼 포트 모드에서 상기 싱글 포트 모드로 모드 변경 요청에 응답하여, 상기 제2 링크를 리셋하도록 상기 제2 포트를 제어하는 PCIe 장치.
  8. 제1 호스트와 제1 링크를 이용하여 링크업되는 제1 포트;
    상기 제1 호스트 또는 제2 호스트와 제2 링크를 이용하여 링크업되는 제2 포트; 및
    상기 제1 포트 및 상기 제2 포트 중 상기 제1 포트만 동작하는 싱글 포트 모드에서 상기 제1 포트 및 상기 제2 포트가 독립적으로 동작하는 듀얼 포트 모드로 동작 모드를 변경하도록 상기 제1 포트 및 상기 제2 포트를 제어하는 포트 모드 제어부;를 포함하되,
    상기 포트 모드 제어부는,
    상기 제1 링크가 상기 제1 호스트와 상기 제1 포트간에 데이터를 통신하는 동안 상기 제2 링크를 링크업하는 링크 트레이닝 동작을 수행하도록 상기 제2 포트를 제어하는 PCIe 장치.
  9. 제8항에 있어서,
    상기 제1 포트는,
    상기 제1 링크의 상태를 변경시키는 제1 링크 트레이닝 모듈;을 포함하고,
    상기 제2 포트는,
    상기 제2 링크의 상태를 변경하는 제2 링크 트레이닝 모듈;을 포함하는 PCIe 장치.
  10. 제9항에 있어서,
    상기 포트 모드 제어부는,
    상기 제1 링크가 상기 제1 호스트와 상기 제1 포트간에 데이터를 통신하는 동안 상기 제1 링크에 대응되는 레인을 감소시키는 레인 감소 동작을 수행하도록 상기 제1 링크 트레이닝 모듈을 제어하고, 상기 레인 감소 동작이 완료되면, 상기 링크 트레이닝 동작을 수행하도록 상기 제2 링크 트레이닝 모듈을 제어하는 PCIe 장치.
  11. 제10항에 있어서,
    상기 제1 링크 트레이닝 모듈은,
    상기 포트 모드 제어부의 제어에 따라, 상기 제1 링크의 상태를 데이터를 송수신하는 L0 상태, 리커버리 상태, 구성 상태 및 상기 L0 상태로 순차적으로 변경시키는 PCIe 장치.
  12. 제8항에 있어서,
    상기 제1 포트 및 상기 제2 포트는,
    제1 링크 트레이닝 모듈 및 제2 링크 트레이닝 모듈의 제어에 따라 PCIe 표준에 따른 링크의 상태로 동작하는 트랜잭션 레이어, 데이터 링크 레이어 및 피지컬 레이어를 포함하는 PCIe 인터페이스;를 각각 포함하는 PCIe 장치.
  13. 제8항에 있어서,
    상기 제1 호스트로부터 상기 싱글 포트 모드에서 상기 듀얼 포트 모드로 모드 변경 요청에 응답하여, 상기 제2 링크에 대한 상기 링크 트레이닝 동작을 수행하는 PCIe 장치.
  14. 제1 포트 및 제2 포트를 포함하는 PCIe 장치의 동작 방법에 있어서,
    제1 호스트와 상기 제1 포트의 제1 링크를 링크업하는 제1 링크 트레이닝 동작을 수행하는 단계;
    상기 제1 링크 트레이닝 동작이 완료되면, 싱글 포트 모드로 동작하는 단계;
    상기 제1 호스트로부터 수신한 모드 변경 요청에 응답하여, 상기 제1 링크에 대응되는 레인을 감소시키는 레인 감소 동작을 수행하는 단계; 및
    상기 제1 링크의 상태가 상기 제1 호스트와 상기 제1 포트간에 데이터를 송수신하는 L0 상태가 되면, 제2 호스트와 상기 제2 포트의 제2 링크를 링크업하는 제2 링크 트레이닝 동작을 수행하는 단계;를 포함하는 PCIe 장치의 동작 방법.
  15. 제14항에 있어서,
    상기 제1 포트 및 상기 제2 포트가 독립적으로 동작하는 듀얼 포트 모드로 동작하는 단계;를 더 포함하는 PCIe 장치의 동작 방법.
  16. 제14항에 있어서,
    상기 제2 링크 트레이닝 동작을 수행하는 단계는,
    상기 제1 링크의 상태가 상기 L0 상태에서 수행되는 PCIe 장치의 동작 방법.
  17. 제14항에 있어서,
    상기 레인 감소 동작을 수행하는 단계는,
    상기 제1 링크의 상태가 상기 L0 상태, 리커버리 상태, 구성 상태 및 상기 L0 상태로 순차적으로 변경되는 PCIe 장치의 동작 방법.
  18. 제14항에 있어서,
    상기 제1 포트 및 상기 제2 포트는,
    PCIe 표준에 따라 동작하는 트랜잭션 레이어, 데이터 링크 레이어 및 피지컬 레이어를 포함하는 PCIe 인터페이스;를 각각 포함하는 PCIe 장치의 동작 방법.
  19. 제1 포트 및 제2 포트를 포함하는 PCIe 장치의 동작 방법에 있어서,
    제1 호스트와 상기 제1 포트의 제1 링크를 링크업하는 제1 링크 트레이닝 동작 및 제2 호스트와 상기 제2 포트의 제2 링크를 링크업하는 제2 링크 트레이닝 동작을 수행하는 단계;
    상기 제1 링크 트레이닝 동작 및 상기 제2 링크 트레이닝 동작이 완료되면, 상기 제1 링크 및 상기 제2 링크가 독립적으로 동작하는 듀얼 포트 모드로 동작하는 단계;
    상기 제1 호스트 또는 상기 제2 호스트로부터 수신한 모드 변경 요청에 응답하여, 상기 제1 링크가 상기 제1 호스트와 상기 제1 포트간에 데이터를 통신하는 동안 상기 제2 링크를 비활성화시키는 단계; 및
    상기 제2 링크의 비활성화가 완료되면, 상기 제1 링크에 대응되는 레인을 증가시키는 레인 증가 동작을 수행하는 단계;를 포함하는 PCIe 장치의 동작 방법.
  20. 제19항에 있어서,
    상기 레인 증가 동작이 완료되면, 상기 제1 포트을 이용하여 싱글 포트 모드로 동작하는 단계;를 더 포함하는 PCIe 장치의 동작 방법.
  21. 제19항에 있어서,
    상기 제2 링크를 비활성화시키는 단계는,
    상기 제1 링크의 상태가 데이터를 송수신하는 L0 상태에서 수행되는 PCIe 장치의 동작 방법.
  22. 제19항에 있어서,
    상기 레인 증가 동작을 수행하는 단계는,
    상기 제1 링크의 상태가 데이터를 송수신하는 L0 상태, 리커버리 상태, 구성 상태 및 상기 L0 상태로 순차적으로 변경되는 PCIe 장치의 동작 방법.
  23. 제19항에 있어서,
    상기 제1 포트 및 상기 제2 포트는,
    PCIe 표준에 따라 동작하는 트랜잭션 레이어, 데이터 링크 레이어 및 피지컬 레이어를 포함하는 PCIe 인터페이스;를 각각 포함하는 PCIe 장치의 동작 방법.
KR1020210067690A 2021-05-26 2021-05-26 PCIe 장치 및 그 동작 방법 KR102635450B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020210067690A KR102635450B1 (ko) 2021-05-26 2021-05-26 PCIe 장치 및 그 동작 방법
US17/526,995 US11815941B2 (en) 2021-05-26 2021-11-15 Peripheral component interconnect express device and operating method thereof
CN202210024024.5A CN115408318A (zh) 2021-05-26 2022-01-11 高速外围组件互连装置及其操作方法
TW111105800A TW202246997A (zh) 2021-05-26 2022-02-17 高速週邊組件互連裝置及其操作方法
US17/749,133 US11921657B2 (en) 2021-05-26 2022-05-19 Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US18/534,037 US20240104035A1 (en) 2021-05-26 2023-12-08 Peripheral component interconnect express device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210067690A KR102635450B1 (ko) 2021-05-26 2021-05-26 PCIe 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20220159722A KR20220159722A (ko) 2022-12-05
KR102635450B1 true KR102635450B1 (ko) 2024-02-13

Family

ID=84157226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210067690A KR102635450B1 (ko) 2021-05-26 2021-05-26 PCIe 장치 및 그 동작 방법

Country Status (4)

Country Link
US (1) US11815941B2 (ko)
KR (1) KR102635450B1 (ko)
CN (1) CN115408318A (ko)
TW (1) TW202246997A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023015308A1 (en) * 2021-08-06 2023-02-09 Microchip Technology Incorporated Determining allocation of lanes of a peripheral-component‑interconnect-express port to links

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060090014A1 (en) 2004-10-27 2006-04-27 Wong Kar L Transaction layer link down handling for PCI express
US20200192850A1 (en) 2018-12-18 2020-06-18 Ati Technologies Ulc Alternative protocol selection
US20200371579A1 (en) 2019-05-22 2020-11-26 Qualcomm Incorporated Bandwidth based power management for peripheral component interconnect express devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589723B2 (en) * 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US9262270B2 (en) 2012-12-28 2016-02-16 Intel Corporation Live error recovery
US9086966B2 (en) 2013-03-15 2015-07-21 Intel Corporation Systems, apparatuses, and methods for handling timeouts
US9396152B2 (en) 2013-03-15 2016-07-19 Intel Corporation Device, system and method for communication with heterogenous physical layers
US9430412B2 (en) * 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
JP6427979B2 (ja) 2014-06-19 2018-11-28 富士通株式会社 原因特定方法、原因特定プログラム、情報処理システム
KR102507714B1 (ko) 2016-05-02 2023-03-09 삼성전자주식회사 SRIS를 지원하는 PCIe 장치
EP3469486B1 (en) * 2016-06-10 2021-07-21 Liqid Inc. Multi-port interposer architectures in data storage systems
US10387353B2 (en) * 2016-07-26 2019-08-20 Samsung Electronics Co., Ltd. System architecture for supporting active pass-through board for multi-mode NMVE over fabrics devices
US10210123B2 (en) * 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
KR102569761B1 (ko) 2016-10-05 2023-08-22 삼성전자주식회사 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법
KR20180095765A (ko) * 2017-02-17 2018-08-28 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11238005B2 (en) 2018-07-20 2022-02-01 Samsung Electronics Co., Ltd. SFF-TA-100X based multi-mode protocols solid state devices
US10713209B2 (en) 2019-02-08 2020-07-14 Intel Corporation Recalibration of PHY circuitry for the PCI Express (PIPE) interface based on using a message bus interface
US11836101B2 (en) 2019-11-27 2023-12-05 Intel Corporation Partial link width states for bidirectional multilane links
US11656770B2 (en) * 2020-04-14 2023-05-23 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for supporting multiple connectors on storage devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060090014A1 (en) 2004-10-27 2006-04-27 Wong Kar L Transaction layer link down handling for PCI express
US20200192850A1 (en) 2018-12-18 2020-06-18 Ati Technologies Ulc Alternative protocol selection
US20200371579A1 (en) 2019-05-22 2020-11-26 Qualcomm Incorporated Bandwidth based power management for peripheral component interconnect express devices

Also Published As

Publication number Publication date
US20220382705A1 (en) 2022-12-01
TW202246997A (zh) 2022-12-01
CN115408318A (zh) 2022-11-29
KR20220159722A (ko) 2022-12-05
US11815941B2 (en) 2023-11-14

Similar Documents

Publication Publication Date Title
KR102559387B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
JP2022507935A (ja) 代替プロトコルの選択
KR102518317B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
KR102635450B1 (ko) PCIe 장치 및 그 동작 방법
KR102635457B1 (ko) PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US20240012770A1 (en) Interface device having plurality of ports and method of operating the same
KR102519484B1 (ko) PCIe 인터페이스 장치 및 이를 포함하는 시스템
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME
KR102519480B1 (ko) PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US11921657B2 (en) Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
US20230315672A1 (en) Interface device and computing system including the same

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