KR102518317B1 - PCIe 인터페이스 장치 및 그 동작 방법 - Google Patents

PCIe 인터페이스 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102518317B1
KR102518317B1 KR1020210048084A KR20210048084A KR102518317B1 KR 102518317 B1 KR102518317 B1 KR 102518317B1 KR 1020210048084 A KR1020210048084 A KR 1020210048084A KR 20210048084 A KR20210048084 A KR 20210048084A KR 102518317 B1 KR102518317 B1 KR 102518317B1
Authority
KR
South Korea
Prior art keywords
power
state
link
mode
power mode
Prior art date
Application number
KR1020210048084A
Other languages
English (en)
Other versions
KR20220141681A (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 KR1020210048084A priority Critical patent/KR102518317B1/ko
Priority to US17/522,843 priority patent/US11960424B2/en
Priority to CN202210005244.3A priority patent/CN115203084A/zh
Priority to TW111104890A priority patent/TW202240417A/zh
Priority to US17/707,744 priority patent/US20220327074A1/en
Publication of KR20220141681A publication Critical patent/KR20220141681A/ko
Application granted granted Critical
Publication of KR102518317B1 publication Critical patent/KR102518317B1/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

본 기술은 전자 장치에 관한 것으로, 본 기술에 따른 PCIe(Peripheral Component Interconnect Express) 인터페이스 장치는 레인 그룹, 커맨드 큐 및 링크 관리부를 포함할 수 있다. 레인 그룹은 호스트와 통신하기 위한 링크를 형성하는, 디폴트 레인 및 적어도 하나 이상의 레인들을 포함할 수 있다. 커맨드 큐는 호스트의 요청을 기초로 생성된 적어도 하나 이상의 DMA(Direct Memory Access)장치에 대한 커맨드들을 저장할 수 있다. 링크 관리부는 커맨드 큐에 저장된 커맨드의 양이 기준 값보다 이하이면, 동작 모드를 복수의 파워 모드들 중 제1 파워 모드에서 제1 파워 모드보다 전력 소비가 적은 제2 파워 모드로 변경하고, 적어도 하나 이상의 레인들을 비활성화시키고, 적어도 하나 이상의 DMA 장치에 제1 동작 클럭보다 낮은 제2 동작 클럭을 제공할 수 있다.

Description

PCIe 인터페이스 장치 및 그 동작 방법{PERIPHERAL COMPONENT INTERCONNECT EXPRESS INTERFACE 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(Peripheral Component Interconnect Express) 인터페이스 장치는 레인 그룹, 커맨드 큐 및 링크 관리부를 포함할 수 있다. 레인 그룹은 호스트와 통신하기 위한 링크를 형성하는, 디폴트 레인 및 적어도 하나 이상의 레인들을 포함할 수 있다. 커맨드 큐는 호스트의 요청을 기초로 생성된 적어도 하나 이상의 DMA(Direct Memory Access)장치에 대한 커맨드들을 저장할 수 있다. 링크 관리부는 커맨드 큐에 저장된 커맨드의 양이 기준 값보다 이하이면, 동작 모드를 복수의 파워 모드들 중 제1 파워 모드에서 제1 파워 모드보다 전력 소비가 적은 제2 파워 모드로 변경하고, 적어도 하나 이상의 레인들을 비활성화시키고, 적어도 하나 이상의 DMA 장치에 제1 동작 클럭보다 낮은 제2 동작 클럭을 제공할 수 있다.
본 발명의 실시 예에 따른 호스트와 통신하기 위한 링크를 형성하는 디폴트 레인 및 적어도 하나 이상의 레인들을 포함하는 PCIe(Peripheral Component Interconnect Express) 인터페이스 장치의 동작 방법은, 호스트의 요청을 기초로 생성된 적어도 하나 이상의 DMA(Direct Memory Access)장치에 대한 커맨드들의 개수가 기준 값보다 이하이면, 동작 모드를 복수의 파워 모드들 중 제1 파워 모드에서 제1 파워 모드보다 전력 소비가 적은 제2 파워 모드로 변경하는 단계; 적어도 하나 이상의 레인들을 비활성화시키는 단계; 및 적어도 하나 이상의 DMA 장치에 제1 동작 클럭보다 낮은 제2 동작 클럭을 제공하는 단계;를 포함할 수 있다.
본 기술에 따르면 향상된 전력 관리 성능을 갖는 PCIe 인터페이스 장치 및 그 동작 방법이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 PCIe 시스템을 설명하기 위한 도면이다.
도 2는 도 1을 참조하여 설명된 PCIe 인터페이스 장치에 포함된 레이어들을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 레인(lane)을 설명하기 위한 도면이다.
도 4a는 도 1을 참조하여 설명된 링크와 관련하여, LTSSM(Link Training & Status State Machine)을 설명하기 위한 도면이다.
도 4b는 도 4a를 참조하여 설명된 L1의 서브 상태들을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따른 PCIe 장치의 구조 및 호스트와의 통신을 설명하기 위한 도면이다.
도 6은 도 5를 참조하여 설명된 PCIe 인터페이스 장치의 전력 관리를 설명하기 위한 도면이다.
도 7a 및 도 7b는 PCIe 인터페이스 장치의 동작을 설명하기 위한 순서도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시 예에 따른 PCIe 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 제1 PCIe 시스템(10)은 제1 PCIe 인터페이스 장치(PCIe Interface 1, 11)를 포함할 수 있다. 제2 PCIe 시스템(20)은 제2 PCIe 인터페이스 장치(PCIe Interface 2, 21)를 포함할 수 있다.
제1 PCIe 시스템(10) 및 제2 PCIe 시스템(20)은 PCIe 프로토콜을 이용한 통신을 지원하는 전자 장치일 수 있다. 예를 들어, 제1 PCIe 시스템(10)은 PC, 랩탑 컴퓨터 또는 모바일 컴퓨팅 장치일 수 있다. 그리고, 제2 PCIe 시스템(20)은 확장 카드(expansion card), 확장 보드(expansion board), 어댑터 카드(adapter card), 애드-인 카드(add-in card) 또는 액세서리 카드 (accessory card)를 포함할 수 있다. 제2 PCIe 시스템(20)은 제1 PCIe 시스템(10)에 확장 버스를 통한 부가적인 기능을 제공하기 위해, 제1 PCIe 시스템(10)의 마더보드 상의 전기적 커넥터 또는 확장 슬롯에 삽입될 수 있는 인쇄 회로 기판(Printed Circuit Board(PCB))을 포함할 수 있다. 제2 PCIe 시스템(20)은 솔리드 스테이트 드라이브(solid state drives(SSD))와 같은 저장 장치, 그래픽 카드, 네트워크 카드 또는 USB 카드를 포함할 수 있다. 다른 실시 예에서, 제1 PCIe 시스템(10)과 제2 PCIe 시스템(20)은 반대로 구성될 수 있다.
제1 PCIe 시스템(10)과 제2 PCIe 시스템(20)은 각각 제1 PCIe 인터페이스 장치(11) 및 제2 PCIe 인터페이스 장치(21)를 이용하여 통신을 수행할 수 있다. 제1 PCIe 시스템(10) 및 제2 PCIe 시스템(20)은 링크(Link)를 형성하고 형성된 링크를 통해 통신할 수 있다. 제1 PCIe 시스템(10) 및 제2 PCIe 시스템(20)은 링크를 통해 상호 간에 데이터 패킷을 송수신할 수 있다.
도 2는 도 1을 참조하여 설명된 PCIe 인터페이스 장치에 포함된 레이어들을 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, PCI 인터페이스 장치들(11, 21)은 각각 트랜잭션 레이어, 데이터 링크 레이어 및 피지컬 레이어를 포함할 수 있다. 피지컬 레이어는 논리 서브 블록 및 물리 서브 블록을 포함할 수 있다.
트랜잭션 레이어는 TLP(Transaction Layer Packet)를 조합 또는 분해를 할 수 있다. 여기서, TLP는 리드와 라이트의 트랜잭션, 즉 특정 이벤트를 처리하는데 사용할 수 있다.
트랜잭션 레이어는 신용 기반 플로우를 제어할 수 있다. 또, 트랜잭션 레이어는 트랜잭션 타입에 따라 다양한 포맷의 어드레싱을 지원할 수 있다. 예를 들면, 트랜잭션 레이어는 메모리, 입출력, 컨피겨레이션 또는 메시지에 대한 어드레싱을 지원할 수 있다.
트랜잭션 레이어는 초기화 및 컨피겨레이션 기능을 수행할 수 있다. 구체적으로, 트랜잭션 레이어는 프로세서 또는 관리 장치에서 생성한 링크 설정 정보를 저장할 수 있다. 또, 트랜잭션 레이어는 피지컬 레이어에서 결정된 대역폭 및 주파수와 관련된 링크 속성을 저장할 수 있다.
트랜잭션 레이어는 패킷을 생성하고 처리할 수 있다. 구체적으로, 장치 코어에서 요청된 TLP를 생성하고, 수신된 TLP를 데이터 페이로드 또는 상태 정보로 변환할 수 있다. 또, 트랜잭션 레이어는 End-to-End 데이터 인테그리티를 지원하는 경우 CRC(Cyclic Redundancy Code)를 생성하고 TLP의 Header에 업데이트할 수 있다.
트랜잭션 레이어는 플로우 제어를 할 수 있다. 구체적으로, 트랜잭션 레이어는 링크에서 TLP에 대한 플로우 제어 크레딧을 추적할 수 있다. 또, 트랜잭션 레이어는 데이터 링크 레이어를 통해 트랜잭션 크레딧 상태를 주기적으로 수신할 수 있다. 트랜잭션 레이어는 플로우 제어 정보를 기초로 TLP 전송을 제어할 수 있다.
트랜잭션 레이어는 전원을 관리할 수 있다. 구체적으로, 트랜잭션 레이어는 시스템 소프트웨어의 지시에 따른 전원을 관리할 수 있다. 또, 트랜잭션 레이어는 전원이 켜진 상태에서 하드웨어의 지시에 따라 자율적인 전원 관리를 할 수 있다.
트랜잭션 레이어는 애플리케이션의 특정 클래스를 위해 가상 채널 메커니즘 및 트래픽 클래스 식별을 할 수 있다. 트랜잭션 레이어는 특정 피지컬 리소스를 통해 독립적인 논리 데이터 플로우를 제공할 수 있다. 또, 트랜잭션 레이어는 패킷 라벨링을 통하여 서로 다른 오더링을 제공하는 방식으로 적절한 서비스 정책을 적용할 수 있다.
데이터 링크 레이어는 링크 관리, 데이터 인테그리티, 에러 검출 및 에러 정정을 담당할 수 있다. 데이터 링크 레이어는 송신할 TLP에 대해 데이터 보호 코드 및 TLP 시퀀스 넘버를 부여하여 피지컬 레이어로 송신할 수 있다. 또, 데이터 링크 레이어는 피지컬 레이어로부터 수신된 TLP의 인테그리티를 확인하여 트랜잭션 레이어에 송신할 수 있다.
데이터 링크 레이어는 TLP의 에러를 감지하면, 에러가 없는 TLP를 수신하거나, 링크가 페일 상태임이 판단될 때까지 TLP의 재송신을 피지컬 레이어에 요청할 수 있다. 데이터 링크 레이어는 링크 관리에 사용되는 DLLP(Data Link Layer Packet)을 생성하고 소비할 수 있다.
데이터 링크 레이어는 신뢰할 수 있는 정보를 교환할 수 있다. 또, 데이터 링크 레이어는 초기화 및 전원을 관리할 수 있다. 구체적으로, 데이터 링크 레이어는 트랜잭션 레이어의 전원 상태 요청을 피지컬 레이어로 전송할 수 있다. 또, 데이터 링크 레이어는 활성화 여부, 리셋, 연결 해제 및 전원 관리 상태에 관한 정보를 트랜잭션 레이어로 전송할 수 있다.
데이터 링크 레이어는 데이터 보호, 에러 확인 및 재시도를 수행할 수 있다. 구체적으로, 데이터 링크 레이어는 데이터 보호를 위해 CRC를 생성할 수 있다. 또, 데이터 링크 레이어는 전송된 TLP에 대해 재시도가 가능하도록 TLP를 저장할 수 있다. 데이터 링크 레이어는 TLP를 확인하고 재시도 메시지를 전송하고, 에러 보고 및 로깅을 위한 에러 표시를 할 수 있다.
피지컬 레이어는 드라이버, 입력 버퍼, 병렬-직렬 또는 직렬-병렬 변환기 및 PLL(Phase Locked Loop) 등 인터페이스 작동을 위한 구성을 포함할 수 있다.
피지컬 레이어는 데이터 링크 레이어로부터 수신된 패킷을 직렬화된 포맷으로 변환하여 전송할 수 있다. 또, 피지컬 레이어는 링크의 다른 쪽에 연결된 장치와의 호환성에 따라 대역폭 및 주파수를 설정할 수 있다. 피지컬 레이어는 데이터를 직렬로 통신하기 위해, 패킷을 병렬에서 직렬, 직렬에서 다시 병렬로 변환할 수 있다. 즉, 피지컬 레이어는 시리얼라이저 또는 디시리얼라이저의 기능을 수행할 수 있다.
피지컬 레이어는 인터페이스 초기화, 유지 관리 및 상태 추적을 할 수 있다. 구체적으로, 피지컬 레이어는 구성요소 간 연결로 인한 전원을 관리할 수 있다. 또, 피지컬 레이어는 구성요소 간 대역폭 및 레인 맵핑을 협상하고, 레인의 극성을 반전시킬 수 있다.
피지컬 레이어는 symbol 및 special ordered set을 생성할 수 있다. 또, 피지컬 레이어는 생성된 symbol을 전송하고 얼라인할 수 있다.
피지컬 레이어는 PCI 구성요소 사이에서 패킷의 송신기 또는 수신기 역할을 할 수 있다. 즉, 피지컬 레이어는 트랜잭션 레이어 및 데이터 링크 레이어를 통해 수신된 패킷을 변환하여 다른 PCI 구성요소에 송신하고, 다른 PCI 구성요소로부터 수신된 패킷을 변환하여 데이터 링크 레이어를 통해 트랜잭션 레이어로 송신할 수 있다.
피지컬 레이어에 포함된 논리 서브 블록은 두 개의 섹션으로 구성될 수 있다. 두 개의 섹션 중 하나는 전송 섹션으로, 데이터 링크 레이어로부터 전송된 정보를 물리 서브 블록으로 전송하는 것을 준비하는 섹션일 수 있다. 두 개의 섹션 중 다른 하나는 수신 섹션으로, 데이터 링크 레이어로 정보를 출력하기 전, 정보를 식별하고 데이터 링크 레이어로 정보의 출력을 준비하는 섹션일 수 있다.
피지컬 레이어에 포함된 물리 서브 블록은 전기적 서브 블록으로, 공통 또는 개별적으로 독립된 기준 클럭 구조를 지원할 수 있다. 또한, 물리 서브 블록은 저전력 링크 동작을 위해 스윙을 감소시킬 수 있으며, 대역 내 수신기를 감지하고 전기적 유휴 상태를 감지할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 레인(lane)을 설명하기 위한 도면이다.
도 3을 참조하면, 제1 송신기(TX1), 제2 송신기(TX2), 제1 수신기(RX1) 및 제2 수신기(RX2)가 도시되어 있다. 레인(lane)은 차동 구동된 신호 쌍들을 포함하는 경로, 예컨대, 송신용으로 구성된 송신 경로 쌍 및 수신용으로 구성된 수신 경로 쌍을 포함할 수 있다 PCIe 시스템은 데이터를 다른 PCIe 시스템으로 송신하는 송신 로직 및 데이터를 다른 PCIe 시스템으로부터 수신하는 수신 로직을 포함할 수 있다. 예를 들어, 제1 송신기(TX1)에 연결된 두 개의 송신 경로 및 제1 수신기(RX1)에 연결된 두 개의 수신 경로를 포함할 수 있다.
여기서, 송신 경로는 송신 회선, 구리 회선, 광 회선, 무선 통신 채널, 적외선 통신 링크, 또는 다른 통신 경로와 같이 데이터를 송신하기 위한 임의의 경로를 의미할 수 있다. 그리고, 수신 경로는 송신 경로와 동일하게 구현되나, 수신을 위해 이용되는 경로일 수 있다.
도 1을 참조하여 설명된 제1 PCIe 시스템(10) 및 제2 PCIe 시스템(20) 사이의 접속은 링크라고 지칭될 수 있다. 링크는 적어도 1개 이상의 레인(lane)을 지원할 수 있다. 그리고, 각각의 레인은 한 세트의 차동 신호 쌍(하나의 쌍은 송신용, 하나의 쌍은 수신용)을 나타낼 수 있다. 그리고, 링크는 대역폭을 조정하기 위해, 복수의 레인을 포함할 수 있다. 예를 들어, 링크는 1, 2, 4, 8, 12, 16, 32, 64 등의 레인을 포함할 수 있다.
도 4a는 도 1을 참조하여 설명된 링크와 관련하여, LTSSM(Link Training & Status State Machine)을 설명하기 위한 도면이다.
Detect 상태는 PCIe 컴포넌트 간에 연결된 링크를 감지하는 상태일 수 있다. 즉, Detect 상태는 물리적으로 연결된 레인을 탐색하는 상태일 수 있다.
Detect 상태는 LTSSM의 초기 상태로서 리셋 후 또는 부팅 시 진입되는 상태일 수 있다. 또, Detect 상태는 모든 로직, 포트 및 레지스터를 리셋할 수 있다. Detect 상태는 호스트로부터 지시가 있을 때 진입될 수 있다. LTSSM은 Detect 상태에서 Polling 상태로 진행할 수 있다.
실시 예에서, Polling 상태는 감지된 레인 중 데이터 통신이 가능한 레인을 구별하는 상태일 수 있다. 즉, Polling 상태는 PCIe 컴포넌트 간의 클럭을 동기화하고, 레인의 극성을 확인하고(D+인지 또는 D-인지), 레인이 사용할 수 있는 데이터 전송 속도를 확인하는 상태일 수 있다. 나아가, Polling 상태는 데이터에서 연속된 비트들 사이의 경계를 확인하는 상태일 수 있다. 실시 예에서, LTSSM은 Polling 상태에서 Configuration 상태로 진행할 수 있다.
실시 예에서, Configuration 상태는 레인의 연결 상태를 확인하는 상태일 수 있다. 예를 들면, Configuration 상태는 데이터 통신이 가능한 레인 폭을 확정하는 상태일 수 있다. 또, Configuration 상태에서, Training Sequences의 PAD로 표기되던 비트가 협상된 수로 변경되고, 양 쪽 컴포넌트 간의 최대 성능을 위한 협상이 수행될 수 있다. Configuration 상태에서, 송신기와 수신기는 모두 협상된 데이터 송수신 속도로 데이터를 송신 또는 수신할 수 있다. 또, Configuration 상태에서, 여러 레인들에서 parallel bit streams이 각각 다른 시간에 다른 장치에 도착하는 Lane to Lane De-skew를 해결할 수 있다.
실시 예에서, LTSSM은 Configuration 상태에서 Detect 상태, L0 상태, Recovery 상태, Loopback 상태, 또는 Disabled 상태로 진행할 수 있다.
실시 예에서, L0 상태는 정상적으로 데이터 및 제어 패킷을 송수신하는 상태일 수 있다. 즉, L0 상태에서, TLP(transaction layer packet) 및 DLLP(data link layer packet)가 송수신될 수 있다. 또, 모든 전원 관리 상태는 L0 상태에서 시작될 수 있다.
실시 예에서, LTSSM은 L0 상태에서 L1 상태, L2 상태, L0s 상태 또는 Recovery 상태로 진행할 수 있다.
실시 예에서, L0s 상태, L1 상태, L2 상태는 각각 저전력 상태의 상태일 수 있다.
구체적으로, L0s 상태는 L0 상태의 하위 상태로, L0s 상태에서 링크는 Recovery 상태를 거치지 않고 빠르게 저전력 상태로 진행하고 복구될 수 있다. 또, L0s 상태에서 L0 상태로 진행하기 위해서, bit lock, symbol lock 및 Lane to Lane De-skew가 다시 설정될 수 있다. 이 때, 양 컴포넌트의 송신기 및 수신기는 동시에 L0s 상태에 있을 필요는 없다. LTSSM은 L0s 상태에서 L0 상태 또는 Recovery 상태로 진행할 수 있다.
구체적으로, L1 상태는 L0s 상태보다 L0 상태로의 복귀 속도는 느리지만, L1 상태에서 추가적인 재개 레이턴시를 통해 L0 상태에 비해 추가적으로 더 큰 전력을 절약할 수 있는 상태일 수 있다. L1 상태는 ASPM(active state power management) 또는 Power Management Software를 통해 진입될 수 있다. 이 때, ASPM는 PCIe로 연결된 장치가 사용 중이지 않을 때 링크를 저전력 상태로 변경하는 정책이고, Power Management Software는 PCIe로 연결된 장치를 저전력 상태로 바꾸는 정책일 수 있다.
또, L1 상태로의 진입은 데이터 링크 레이어로부터 수신된 지시에 의해 EIOS(electrical idle ordered set)를 수신한 후 진행될 수 있다. LTSSM은 L1 상태에서 Recovery 상태로 진행할 수 있다.
구체적으로, L2 상태에서, 최대 전력이 보전되며, PCIe로 연결된 장치의 송신기 및 수신기가 차단될 수 있다. L2 상태에서 전원 및 클럭은 보장되지 않지만, AUX 전원은 사용할 수 있다. L2 상태로의 진입은 데이터 링크 레이어로부터 지시에 의해 EIOS를 수신한 후 진행될 수 있다. LTSSM은 L2 상태에서 Detect 상태로 진행할 수 있다.
실시 예에서, Recovery 상태는 L0 상태에서 에러 발생 시 진행되며, 에러 복구 후 다시 L0 상태로 진행할 수 있다. 또, Recovery 상태는 L1 상태에서 L0 상태로 복귀 시 진행되는 상태일 수 있으며, Loopback 상태, Hot Reset 상태 또는 Disabled 상태 진입 시 천이되는 상태일 수 있다.
Recovery 상태에서, bit lock, symbol lock 또는 block alignment 및 Lane to lane de-skew가 재설정될 수 있다. 또, Recovery 상태에서, 레인의 속도가 변경될 수 있다.
실시 예에서, LTSSM은 Recovery 상태에서 L0 상태, Configuration 상태, Detect 상태, Loopback 상태, Hot Reset 상태 또는 Disabled 상태로 진행할 수 있다.
실시 예에서, Loopback 상태는 테스트를 위해 진행되는 상태로, bit error rate 측정 시 진입되는 상태일 수 있다. Loopback 상태는 Training Sequences(ex. TS1, TS2)의 Training Control 필드에서 bit 2를 사용하는 상태며, 수신기는 수신된 패킷을 모두 재전송할 수 있다. LTSSM은 Loopback 상태에서 bit error rate 측정 후 Detect 상태로 진행할 수 있다.
실시 예에서, Hot Reset 상태는 링크를 리셋하는 상태로, Training Sequences(ex. TS1, TS2)의 Training Control 필드에서 bit 0을 사용하는 상태일 수 있다. LTSSM은 Hot Reset 상태에서 Detect 상태로 진행할 수 있다.
실시 예에서, Disabled 상태는 수신기가 낮은 임피던스 상태일 때, 송신기를 전기적 아이들 상태로 만드는 상태일 수 있다. Disabled 상태에서, 전기적 아이들 상태가 종료될 때까지, 링크는 비활성화될 수 있다. Disabled 상태는 Training Sequences(ex. TS1, TS2)의 Training Control 필드에서 bit 1을 사용하는 상태일 수 있다. 상위 상태에서 지시를 수신하면, LTSSM은 Disabled 상태로 진행될 수 있다. LTSSM은 Disabled 상태에서 Detect 상태로 진행할 수 있다.
링크 업은 Detect 상태에서 Polling 상태, Configuration 상태를 거쳐 L0 상태로 천이되는 것을 나타내고, 링크 다운은 다시 Detect 상태로 천이되는 것을 나타낼 수 있다. 링크 트레이닝은 PCIe 레이어 중 피지컬 레이어가 Configuration 상태 또는 Recovery 상태에 놓여있는 상태를 나타낼 수 있다.
또, LTSSM은 각 상태마다 링크 업 레지스터 값을 설정할 수 있다. 예를 들면, 링크 업 레지스터가 '1'인 상태는 링크 업 상태, 링크 업 레지스터가 '0'인 상태는 링크 다운 상태일 수 있다. LTSSM이 최초로 L0 상태로 진행할 경우 링크 업 레지스터는 '1'로 설정될 수 있다.
구체적으로, Detect 상태, Polling 상태, Configuration 상태, Loopback 상태, Hot Reset 상태 및 Disabled 상태에 대응하는 링크 업 레지스터는 '0'으로 설정되고, L0 상태, L0s 상태, L1 상태 및 L2 상태에 대응하는 링크 업 레지스터는 '1'로 설정될 수 있다.
실시 예에서, 링크 다운 시, 데이터는 플러시되고, PCIe 레지스터 및 NVMe 레지스터는 리셋될 수 있다. 따라서, 호스트는 PCIe 레지스터 및 NVMe 레지스터를 초기화해야 한다. 호스트에 의도된 링크 다운의 경우, 호스트가 PCIe 및 NVMe를 초기화할 수 있다.
그러나, 호스트에 의도되지 않은 서든 링크 다운의 경우, 예를 들면, 데이터 송수신 속도 변경의 실패, 레인 변경의 실패, 저전력 종료의 실패 등의 경우, LTSSM timeout이 발생되어, LTSSM은 Detect 상태로 천이될 수 있다. 이 때, 호스트에 의도되지 않은 서든 링크 다운은 두 포트 간 링크 다운이므로 OS 및 NVMe driver는 이를 인지하지 못할 수 있다. 따라서, 호스트는 PCIe 및 NVMe를 초기화하지 않고 장치에 접근을 시도하며, 리셋된 값들로 인해 블루 스크린 및 호스트 동작의 중단 등이 발생될 수 있다.
실시 예에서, L0 상태는 정상 링크 상태이고, L1 상태는 저전력 링크 상태일 수 있다.
도 4b는 도 4a를 참조하여 설명된 L1의 서브 상태들을 설명하기 위한 도면이다.
도 4b를 참조하면, L1의 서브 상태는 L1.0 서브 상태, L1.1 서브 상태 및 L1.2 서브 상태를 포함할 수 있다.
L1.0 서브 상태는 L1.1 서브 상태 또는 L1.2 서브 상태로 천이할 수 있다.
L1.0 서브 상태는 도 3을 참조하여 설명된 L1 상태에 대응될 수 있다. L1.0 서브 상태에서 전기 유휴 상태 (Electrical Idle Exit)를 감지하기 위해, 업스트림 포트 및 다운 스트림 포트가 활성화될 필요가 있다.
L1.1 서브 상태는 L1.0 서브 상태로 천이할 수 있다.
L1.1 서브 상태에서, 링크 공통 모드 전압들이 유지될 필요가 있다. L1.1 서브 상태로 진입하거나 탈출하기 위해, 양방향의 오픈-드레인 클럭 요청(CLKREQ#) 신호가 사용될 수 있다. L1.1 서브 상태에서 전기 유휴 상태 (Electrical Idle Exit)를 감지하기 위해, 업스트림 포트 및 다운 스트림 포트가 활성화될 필요가 없다.
L1.2 서브 상태는 L1.0 서브 상태로 천이할 수 있다.
L1.2 서브 상태에서, 링크 공통 모드 전압들이 유지될 필요가 없다. L1.2 서브 상태로 진입하거나 탈출하기 위해, 양방향의 오픈-드레인 클럭 요청(CLKREQ#) 신호가 사용될 수 있다. L1.1 서브 상태에서 전기 유휴 상태 (Electrical Idle Exit)를 감지하기 위해, 업스트림 포트 및 다운 스트림 포트가 활성화될 필요가 없다.
L1.0 서브 상태를 제외한 L1의 서브 상태들(L1.1 서브 상태 및 L1.2 서브 상태)를 지원하는 포트는 기준 클럭이 반드시 필요한 것은 아니다. 오픈-드레인 클럭 요청(CLKREQ#) 신호는 L1의 서브 상태 프로토콜에 의해 사용될 수 있지만, 링크의 포트에서 사용되는 로컬 클럭과의 관계가 별도로 정의되지 않을 수 있다. L1.2 서브 상태를 지원하는 포트는 반드시 LTR(Latency Tolerance Reporting)을 지원해야한다.
실시 예에서, L1.1 서브 상태 및 L1.2 서브 상태는 저전력 링크 서브 상태일 수 있다.
도 5는 본 발명의 실시 예에 따른 PCIe 장치의 구조 및 호스트와의 통신을 설명하기 위한 도면이다.
도 5를 참조하면, PCIe 장치(1000)는 PCIe 인터페이스 장치(100) 및 적어도 하나 이상의 DMA(Direct Memory Access) 장치들(200)을 포함할 수 있다.
호스트(2000)는 호스트 인터페이스 장치(2100)를 포함할 수 있다.
PCIe 장치(1000)와 호스트(2000)는 각각 PCIe 인터페이스 장치(100) 및 호스트 인터페이스 장치(2100)를 이용하여 상호 간에 통신할 수 있다. PCIe 인터페이스 장치(100)와 호스트 인터페이스 장치(2100)는 통신을 위한 링크를 형성할 수 있다. 링크는 PCIe 인터페이스 장치(100)와 호스트 인터페이스 장치(2100) 간에 연결된 레인들을 포함할 수 있다. PCIe 인터페이스 장치(100)는 링크를 통해 호스트 인터페이스 장치(2100)와 데이터를 송수신할 수 있다. 실시 예에서, 호스트(2000)는 도 1을 참조하여 설명된 제1 PCIe 시스템(10)에 대응될 수 있다. PCIe 장치(1000)는 제2 PCIe 시스템(20)에 대응될 수 있다.
실시 예에서, PCIe 인터페이스 장치(100)는 피지컬 레이어(110), 커맨드 큐(120) 및 링크 관리부(130)를 포함할 수 있다.
피지컬 레이어(110)는 호스트(2000)와 통신하기 위한 링크를 형성할 수 있다. 피지컬 레이어(110)는 레인 그룹(111)을 포함할 수 있다. 레인 그룹(111)은 디폴트 레인과 적어도 하나 이상의 레인들을 포함할 수 있다.
커맨드 큐(120)는 호스트(2000)의 요청을 기초로 생성된 적어도 하나 이상의 DMA 장치(200)에 대한 커맨드들을 저장할 수 있다.
링크 관리부(130)는 커맨드 큐(120)에 저장된 커맨드의 양이 기준 값보다 이하이면, 동작 모드를 제1 파워 모드에서 제2 파워 모드로 변경할 수 있다. 제2 파워 모드는 복수의 파워 모드들 중 제1 파워 모드보다 전력 소비가 적은 파워 모드일 수 있다. 링크 관리부(130)는 제2 파워 모드에서 적어도 하나 이상의 레인들을 비활성화시키고, DMA 장치(200)에 제1 동작 클럭보다 낮은 제2 동작 클럭을 제공할 수 있다.
실시 예에서, 링크 관리부(130)는 파워 제어부(131), 클럭 제어부(132) 및 링크 제어부(133)를 포함할 수 있다.
파워 제어부(131)는 커맨드 큐에 저장된 커맨드의 양이 기준 값보다 크면 동작 모드를 복수의 파워 모드들 중 제1 파워 모드로 설정할 수 있다. 복수의 파워 모드들은 제1 내지 제5 파워 모드들을 포함할 수 있다. 제1 파워 모드부터 제5 파워 모드 순으로 전력 소비가 낮아질 수 있다. 복수의 파워 모드들의 개수는 본 실시 예에 제한되지 않는다.
파워 제어부(131)는 커맨드 큐에 저장된 커맨드의 양이 기준 값보다 이하이면, 동작 모드를 제2 파워 모드로 설정할 수 있다. 파워 제어부(131)는 커맨드 큐가 제1 기준 시간 이상 비어 있고, 호스트(2000)가 허용하는 레이턴시가 기준 레이턴시보다 작거나 같으면, 동작 모드를 제3 파워 모드로 설정할 수 있다. 제1 기준 시간은 도 6에서 참조하여 설명된 액티브-아이들 구간에 진입 여부를 판단하는 기준 시간일 수 있다. 파워 제어부(131)는 커맨드 큐가 제1 기준 시간 이상 비어 있고, 호스트(2000)가 허용하는 레이턴시가 기준 레이턴시보다 크면, 동작 모드를 제4 파워 모드로 설정할 수 있다. 파워 제어부(131)는 커맨드 큐가 제2 기준 시간 이상 비어 있으면, 동작 모드를 제5 파워 모드로 설정할 수 있다. 제2 기준 시간은 도 6에서 참조하여 설명된 아이들 구간에 진입 여부를 판단하는 기준 시간일 수 있다. 제2 기준 시간은 제1 기준 시간보다 클 수 있다.
파워 제어부(131)는 디폴트 레인 및 적어도 하나 이상의 레인들을 복수의 파워 상태들 중 어느 하나의 상태로 설정할 수 있다. 복수의 파워 상태들은 제1 내지 제3 파워 상태를 포함할 수 있다. 제1 파워 상태부터 제3 파워 상태 순으로 소비 전력이 커질 수 있다. 복수의 파워 상태들의 개수는 본 실시 예에 제한되지 않는다.
파워 제어부(131)는 제1 파워 모드에서, 디폴트 레인 및 적어도 하나 이상의 레인들을 제3 파워 상태로 설정할 수 있다. 파워 제어부(131)는 제2 파워 모드에서, 디폴트 레인을 제3 파워 상태로 유지할 수 있다. 파워 제어부(131)는 제2 파워 모드에서 적어도 하나 이상의 레인들을 제1 파워 상태로 설정할 수 있다. 파워 제어부(131)는 제3 파워 모드에서, 디폴트 레인을 제3 파워 상태로 유지하고, 적어도 하나 이상의 레인들을 파워 오프 상태로 설정할 수 있다. 파워 제어부(131)는 제4 파워 모드에서, 디폴트 레인을 제2 파워 상태로 설정하고, 적어도 하나 이상의 레인들을 파워 오프 상태로 설정할 수 있다. 파워 제어부(131)는 제5 파워 모드에서, 디폴트 레인을 제1 파워 상태로 설정하고, 적어도 하나 이상의 레인들을 파워 오프 상태로 설정할 수 있다.
클럭 제어부(132)는 제1 파워 모드에서, DMA 장치(200)에 제1 동작 클럭을 제공할 수 있다. 클럭 제어부(132)는 제2 내지 제4 파워 모드에서, DMA 장치(200)에 제2 동작 클럭을 제공할 수 있다. 제2 동작 클럭은 활성화된 레인의 개수 대 상기 레인 그룹에 포함된 전체 레인의 개수의 비율로 제1 동작 클럭을 감소시킨 동작 클럭일 수 있다.
링크 제어부(133)는 제1 내지 제3 파워 모드에서, 링크를 정상 링크 상태인 L0 상태로 유지할 수 있다. 링크 제어부(133)는 제4 파워 모드에서, 링크를 저전력 링크 상태인 L1 상태로 천이시킬 수 있다. 링크 제어부(133)는 제5 파워 모드에서 링크를 저전력 링크 서브 상태인 L1의 서브 상태로 천이시킬 수 있다.
DMA 장치(200)는 PCIe 장치(1000)로부터 제공되는 동작 클럭(OP_CLK)을 기초로 데이터 통신을 수행할 수 있다.
DMA 장치(200)의 종류는 NVMe(Non Volatile Memory Express) 장치, SSD(Solid State Drive) 장치, AI CPU(Artificial Intelligence Central Processing Unit), AI SoC(Artificial Intelligence System on Chip), 이더넷(Ethernet) 장치, 사운드 카드 및 그래픽 카드 등을 포함할 수 있다. DMA 장치(200)의 종류는 이에 한정되지 않고, PCIe 통신 프로토콜을 사용하는 다른 전자 장치들을 포함할 수 있다.
도 6은 도 5를 참조하여 설명된 PCIe 인터페이스 장치의 전력 관리를 설명하기 위한 도면이다.
도 6을 참조하면, 레인 그룹은 제1 내지 제4 레인들(X_0~X_3)을 포함할 수 있다. 레인 그룹에 포함되는 레인의 개수는 본 실시 예에 제한되지 않는다. 제1 레인(X_0)은 디폴트 레인일 수 있다.
도 6에서 복수의 파워 모드들은 제1 내지 제5 파워 모드들(PM1~PM5)을 포함할 수 있다. 복수의 파워 모드들의 개수는 본 실시 예에 제한되지 않는다. 제1 파워 모드(PM1)에서 제5 파워 모드(PM5) 순으로 전력 소비가 낮아질 수 있다.
풀 퍼포먼스 액티브 구간에서 동작 모드는 제1 파워 모드(PM1)로 설정될 수 있다. 로우 퍼포먼스 액티브 구간에서 동작 모드는 제2 파워 모드(PM2)로 설정될 수 있다. 제1 액티브 아이들 구간에서 동작 모드는 제3 파워 모드(PM3)로 설정될 수 있다. 제2 액티브 아이들 구간에서 동작 모드는 제4 파워 모드(PM4)로 설정될 수 있다. 아이들 구간에서 동작 모드는 제5 파워 모드(PM5)로 설정될 수 있다.
커맨드 큐에 저장된 커맨드들의 개수가 기준 값보다 작거나 같으면, 동작 모드는 제1 파워 모드(PM1)에서 제2 파워 모드(PM2)로 변경될 수 있다. 커맨드 큐에 저장된 커맨드들이 모두 처리 완료된 시점부터, 제1 기준 시간이 경과하면, 동작 모드는 제2 파워 모드(PM2)에서 제3 파워 모드(PM3)로 변경될 수 있다. 커맨드 큐에 저장된 커맨드들이 모두 처리 완료된 시점부터, 제1 기준 시간이 경과하고, 호스트가 허용하는 레이턴시가 기준 레이턴시보다 크면, 동작 모드는 제3 파워 모드(PM3)에서 제4 파워 모드(PM4)로 변경될 수 있다. 커맨드 큐에 저장된 커맨드들이 모두 처리 완료된 시점부터, 제2 기준 시간이 경과하면, 동작 모드는 제4 파워 모드(PM4)에서 제5 파워 모드(PM5)로 변경될 수 있다. 제2 기준 시간은 제1 기준 시간보다 클 수 있다. 호스트의 요청에 따라 신규 커맨드가 생성되면 동작 모드는 제5 파워 모드(PM5)에서 제2 파워 모드(PM2)로 변경될 수 있다. 생성된 신규 커맨드의 개수가 기준 값보다 크면, 동작 모드는 제2 파워 모드(PM2)에서 제1 파워 모드(PM1)로 변경될 수 있다.
복수의 파워 상태들은 제1 내지 제3 파워 상태(PWR_S1~PWR_S3)를 포함할 수 있다. 복수의 파워 상태들의 개수는 본 실시 예에 제한되지 않는다. 제1 파워 상태(PWR_S1)에서 제3 파워 상태(PWR_S3) 순으로 소비 전력이 높아질 수 있다. 제1 파워 상태(PWR_S1)는 P2 상태일 수 있다. 제2 파워 상태(PWR_S2)는 P1 상태일 수 있다. 제3 파워 상태(PWR_S3)는 P0 상태일 수 있다. 실시 예에서, 파워 상태는 레인 별로 설정될 수 있다.
P0 상태에서, 도 5를 참조하여 설명된 레인의 동작 클럭(PCLK)은 작동해야한다(must stay operational). 레인을 제외한 피지컬 레이어(110)의 내부 클럭들은 작동(operational)할 수 있다. 피지컬 레이어(110)의 내부 클럭들과 레인의 동작 클럭(PCLK)은 별개의 클럭일 수 있다. 피지컬 레이어(110)는 PCI Express 시그널링을 송수신할 수 있다. 레인의 동작 클럭(PCLK)은 PCIe 장치의 Gen Speed에 따라 달라질 수 있다.
P1 상태에서, 피지컬 레이어(110)의 내부 클럭들 중 선택된 내부 클럭은 턴 오프될 수 있다. 레인의 동작 클럭(PCLK)은 작동 해야한다(must). 송신 채널 및 수신 채널 모두 아이들일 수 있다 P1 상태는 도 4a를 참조하여 설명된 Disabled 상태, Detect 상태 및 L1 상태에서 사용될 수 있다.
P2 상태에서, 피지컬 레이어(110)의 내부 클럭들 중 선택된 내부 클럭은 턴 오프될 수 있다. 레인의 동작 클럭(PCLK)은 턴 오프된다. 병렬 인터페이스는 비동기 모드로 동작할 수 있다. P2 상태는 도 4a를 참조하여 설명된 L1 상태, L2 상태 및 도 4b를 참조하여 설명된 L1의 서브 상태에서 사용될 수 있다.
제1 케이스를 살펴보면, 풀 퍼포먼스 액티브 구간에서 로우 퍼포먼스 액티브 구간 및 제1 액티브 아이들 구간까지, DMA 장치에 제1 동작 클럭(Clock 1)이 제공될 수 있다. 제1 내지 제4 레인들(X_0~X_3)은 P0 상태로 설정될 수 있다. 링크는 L0 상태를 유지할 수 있다.
제2 액티브 아이들 구간에서, DMA 장치에 제1 동작 클럭(Clock 1)이 제공될 수 있다. 제1 내지 제4 레인들(X_0~X_3)은 P1 상태로 설정될 수 있다. 링크는 L1 상태로 천이할 수 있다.
아이들 구간에서, DMA 장치에 제공되는 동작 클럭이 턴 오프될 수 있다. 제1 내지 제4 레인들(X_0~X_3)은 P2 상태로 설정될 수 있다. 링크는 L1의 서브 상태로 천이할 수 있다.
제2 케이스를 살펴보면, 풀 퍼포먼스 액티브 구간에서, DMA 장치에 제1 동작 클럭(Clock 1)이 제공될 수 있다. 제1 내지 제4 레인들(X_0~X_3)은 P0 상태로 설정될 수 있다. 링크는 L0 상태를 유지할 수 있다.
로우 퍼포먼스 액티브 구간에서, DMA 장치에 제2 동작 클럭(Clock 2)이 제공될 수 있다. 제2 동작 클럭(Clock 2)은 활성화된 레인의 개수 대 상기 레인 그룹에 포함된 전체 레인의 개수의 비율로 제1 동작 클럭(Clock 1)을 감소시킨 동작 클럭일 수 있다. 도 6에서 제2 동작 클럭(Clock 2)은 제1 동작 클럭(Clock 1)을 1/4로 감소시킨 동작 클럭일 수 있다. 제1 레인(X_0)은 P0 상태로 설정될 수 있다. 제2 내지 제4 레인들(X_1~X_3)은 P2 상태로 설정될 수 있다. 링크는 L0 상태를 유지할 수 있다.
제1 액티브 아이들 구간에서, DMA 장치에 제2 동작 클럭(Clock 2)이 제공될 수 있다. 제1 레인(X_0)은 P0 상태로 설정될 수 있다. 제2 내지 제4 레인들(X_1~X_3)은 파워 오프 상태로 설정될 수 있다. 링크는 L0 상태를 유지할 수 있다.
제2 액티브 아이들 구간에서, DMA 장치에 제2 동작 클럭(Clock 2)이 제공될 수 있다. 제1 레인(X_0)은 P1 상태로 설정될 수 있다. 제2 내지 제4 레인들(X_1~X_3)은 파워 오프 상태로 설정될 수 있다. 링크는 L1 상태로 천이할 수 있다.
아이들 구간에서, DMA 장치에 제공되는 동작 클럭은 턴 오프될 수 있다. 다양한 실시 예에서, DMA 장치에 아주 낮은 동작 클럭이 제공될 수 있다. 제1 레인(X_0)은 P2 상태로 설정될 수 있다. 제2 내지 제4 레인들(X_1~X_3)은 파워 오프 상태로 설정될 수 있다. 링크는 L1의 서브 상태로 천이할 수 있다.
로우 퍼포먼스 액티브 구간에서 아이들 구간까지, 제1 케이스의 경우 제1 내지 제4 레인들(X_0~X_3)은 활성화될 수 있다. 제2 케이스의 경우, 디폴트 레인인 제1 레인(X_0)만 활성화되고, 제2 내지 제4 레인(X_1~X_3)들은 비활성화될 수 있다. 따라서 제2 케이스는 제1 케이스와 비교하여 전력 소비를 절감할 수 있다.
도 7a 및 도 7b는 PCIe 인터페이스 장치의 동작을 설명하기 위한 순서도이다.
도 7a를 참조하면, S701단계에서, PCIe 인터페이스 장치는 동작 모드를 복수의 파워 모드들 중 제1 파워 모드로 설정할 수 있다. 제1 파워 모드는 복수의 파워 모드들 중 가장 전력 소비가 높은 파워 모드일 수 있다.
S703단계에서, PCIe 인터페이스 장치는 DMA 장치에 대한 커맨드들의 개수가 기준 값보다 큰 지 판단할 수 있다. 판단 결과, 커맨드들의 개수가 기준 값보다 크면 S701단계로 진행하고, 커맨드들의 개수가 기준 값보다 작거나 같으면 S705단계로 진행한다.
S705단계에서, PCIe 인터페이스 장치는 동작 모드를 복수의 파워 모드들 중 제1 파워 모드보다 전력 소비가 낮은 제2 파워 모드로 설정할 수 있다.
S707단계에서, PCIe 인터페이스 장치는 복수의 레인들 중 디폴트 레인을 제외한 적어도 하나 이상의 레인들을 비활성화시킬 수 있다.
S709단계에서, PCIe 인터페이스 장치는 적어도 하나 이상의 레인들을 복수의 파워 상태들 중 제1 파워 상태(P2)로 설정하고, 디폴트 레인을 제1 파워 상태(P2)보다 높은 제3 파워 상태(P0)로 설정할 수 있다. 제3 파워 상태(P0)는 복수의 파워 상태 중 가장 높은 레벨일 수 있다.
S711단계에서, PCIe 인터페이스 장치는 DMA 장치에 제1 동작 클럭보다 낮은 제2 동작 클럭을 제공할 수 있다. 제2 동작 클럭은 활성화된 레인의 개수 대 상기 레인 그룹에 포함된 전체 레인의 개수의 비율로 제1 동작 클럭을 감소시킨 클럭일 수 있다.
S713단계에서, PCIe 인터페이스 장치는 S703단계에서 전술한 DMA 장치에 대한 커맨드들을 모두 처리 완료한 이후에 제1 기준 시간이 경과하였는지 판단할 수 있다. 제1 기준 시간은 도 6에서 참조하여 설명된 액티브-아이들 구간에 진입 여부를 판단하는 기준 시간일 수 있다.
S715단계에서, PCIe 인터페이스 장치는 호스트가 허용하는 레이턴시가 기준 레이턴시보다 큰 지 판단할 수 있다. 판단 결과, 호스트가 허용하는 레이턴시가 기준 레이턴시보다 크면 S721단계로 진행하고, 호스트가 허용하는 레이턴시가 기준 레이턴시보다 작거나 같으면 S717단계로 진행한다.
S717단계에서, PCIe 인터페이스 장치는 동작 모드를 제2 파워 모드보다 전력 소비가 적은 제3 파워 모드로 설정할 수 있다.
S719단계에서, PCIe 인터페이스 장치는 비활성화된 적어도 하나 이상의 레인들을 파워 오프 상태로 설정할 수 있다.
S721단계에서, PCIe 인터페이스 장치는 동작 모드를 제3 파워 모드보다 전력 소비가 적은 제4 파워 모드로 설정할 수 있다.
S723단계에서, PCIe 인터페이스 장치는 링크를 L1 상태로 천이시킬 수 있다.
S725단계에서, PCIe 인터페이스 장치는 적어도 하나 이상의 레인들의 파워를 턴 오프시키고, 디폴트 레인의 파워를 제1 파워 상태보다 높고 제3 파워 상태 낮은 제2 파워 상태(P1)로 설정할 수 있다.
도 7b를 참조하면, S719단계 또는 S725단계는 S727단계로 진행할 수 있다.
S727단계에서, PCIe 인터페이스 장치는 S703단계에서 전술한 DMA 장치에 대한 커맨드들을 모두 처리 완료한 이후에 제2 기준 시간이 경과하였는지 판단할 수 있다. 제2 기준 시간은 도 6에서 참조하여 설명된 아이들 구간에 진입 여부를 판단하는 기준 시간일 수 있다. 제2 기준 시간은 제1 기준 시간보다 클 수 있다.
S729단계에서, PCIe 인터페이스 장치는 동작 모드를 제5 파워 모드로 설정할 수 있다. 제 5 파워 모드는 복수의 파워 모드들 중 가장 전력 소비가 낮은 파워 모드일 수 있다.
S731단계에서, PCIe 인터페이스 장치는 링크를 저전력 링크 서브 상태로 천이시킬 수 있다. 저전력 링크 서브 상태는 도 4b를 참조하여 설명된 L1.1 서브 상태 및 L1.2 서브 상태를 포함할 수 있다.
S733단계에서, PCIe 인터페이스 장치는 디폴트 레인을 제1 파워 상태(P2)로 설정할 수 있다. 제1 파워 상태(P2)는 복수의 파워 상태 중 가장 낮은 레벨일 수 있다.
S735단계에서, PCIe 인터페이스 장치는 DMA 장치에 제공되는 동작 클럭을 턴 오프시킬 수 있다.
S737단계에서, PCIe 인터페이스 장치는 호스트의 요청에 따라 DMA 장치에 대한 신규 커맨드들이 생성되었는지 판단할 수 있다. 판단 결과, 신규 커맨드들이 생성되면 S739단계로 진행하고, 신규 커맨드들이 생성되지 않았으면 S729단계로 진행한다.
S739단계에서, PCIe 인터페이스 장치는 링크를 정상 링크 상태(L0)로 천이시킬 수 있다.
S741단계에서, PCIe 인터페이스 장치는 S737단계에서 생성된 신규 커맨드들의 개수가 기준 값보다 큰 지 판단할 수 있다. 판단 결과 신규 커맨드들의 개수가 기준 값보다 크면, S743단계로 진행하고, 신규 커맨드들의 개수가 기준 값보다 작거나 같으면 S749단계로 진행한다.
S743단계에서, PCIe 인터페이스 장치는 동작 모드를 제1 파워 모드로 설정할 수 있다.
S745단계에서, PCIe 인터페이스 장치는 적어도 하나 이상의 레인들 및 디폴트 레인을 제3 파워 상태(P0)로 설정할 수 있다.
S747단계에서, PCIe 인터페이스 장치는 DMA 장치에 제1 동작 클럭을 제공할 수 있다.
S749단계에서, PCIe 인터페이스 장치는 동작 모드를 제2 파워 모드로 설정할 수 있다.
S751단계에서, PCIe 인터페이스 장치는 적어도 하나 이상의 레인들을 제1 파워 상태(P2)로 설정하고, 디폴트 레인을 제3 파워 상태(P0)로 설정할 수 있다.
S753단계에서, PCIe 인터페이스 장치는 DMA 장치에 제2 동작 클럭을 제공할 수 있다.
100: PCIe 인터페이스 장치
110: 피지컬 레이어
111: 레인 그룹
120: 커맨드 큐
130: 링크 관리부
131: 파워 제어부
132: 클럭 제어부
133: 링크 제어부
200: DMA 장치
1000: PCIe 장치
2000: 호스트 시스템
2100: 호스트 인터페이스 장치

Claims (25)

  1. 호스트와 통신하기 위한 링크를 형성하는, 디폴트 레인 및 적어도 하나 이상의 레인들을 포함하는 레인 그룹;
    상기 호스트의 요청을 기초로 생성된 적어도 하나 이상의 DMA(Direct Memory Access)장치에 대한 커맨드들을 저장하는 커맨드 큐; 및
    상기 커맨드 큐에 저장된 커맨드의 양이 기준 값보다 이하이면, 동작 모드를 복수의 파워 모드들 중 제1 파워 모드에서 상기 제1 파워 모드보다 전력 소비가 적은 제2 파워 모드로 변경하고, 상기 적어도 하나 이상의 레인들을 비활성화시키고, 상기 적어도 하나 이상의 DMA 장치에 제1 동작 클럭보다 낮은 제2 동작 클럭을 제공하는 링크 관리부;를 포함하는 PCIe(Peripheral Component Interconnect Express) 인터페이스 장치.
  2. 제 1항에 있어서, 상기 링크 관리부는,
    상기 커맨드 큐에 저장된 커맨드의 양이 상기 기준 값보다 이하이면, 상기 동작 모드를 상기 제1 파워 모드에서 상기 제2 파워 모드로 변경하는 파워 제어부;
    활성화된 레인의 개수 대 상기 레인 그룹에 포함된 전체 레인의 개수의 비율로 상기 제1 동작 클럭을 감소시킨 상기 제2 동작 클럭을 상기 적어도 하나 이상의 DMA 장치에 제공하는 클럭 제어부; 및
    상기 링크를 정상 링크 상태로 유지하는 링크 제어부;를 포함하는 PCIe 인터페이스 장치.
  3. 제 2항에 있어서, 상기 파워 제어부는,
    상기 제2 파워 모드에서, 상기 적어도 하나 이상의 레인들을 복수의 파워 상태들 중 제1 파워 상태로 설정하고, 상기 디폴트 레인을 상기 복수의 파워 상태들 중 상기 제1 파워 상태보다 높은 제3 파워 상태로 설정하는 PCIe 인터페이스 장치.
  4. 제 3항에 있어서, 상기 파워 제어부는,
    상기 커맨드 큐가 제1 기준 시간 이상 비어 있으면, 상기 동작 모드를 상기 제2 파워 모드에서 상기 복수의 파워 모드들 중 상기 제2 파워 모드보다 전력 소비가 적은 제3 파워 모드로 변경하는 PCIe 인터페이스 장치.
  5. 제 4항에 있어서, 상기 파워 제어부는,
    상기 제3 파워 모드에서, 상기 디폴트 레인을 상기 제3 파워 상태로 유지하고, 상기 적어도 하나 이상의 레인들을 파워 오프 상태로 설정하는 PCIe 인터페이스 장치.
  6. 제 4항에 있어서, 상기 파워 제어부는,
    상기 호스트가 허용하는 레이턴시가 기준 레이턴시보다 큰 경우, 상기 동작 모드를 상기 제3 파워 모드에서 상기 복수의 파워 모드들 중 상기 제3 파워 모드보다 전력 소비가 적은 제4 파워 모드로 변경하는 PCIe 인터페이스 장치.
  7. 제 6항에 있어서, 상기 파워 제어부는,
    상기 제4 파워 모드에서, 상기 디폴트 레인을 상기 복수의 파워 상태들 중, 상기 제1 파워 상태보다 높고 상기 제3 파워 상태보다 낮은 제2 파워 상태로 설정하고, 상기 적어도 하나 이상의 레인들을 파워 오프 상태로 설정하는 PCIe 인터페이스 장치.
  8. 제 6항에 있어서, 상기 링크 제어부는,
    상기 제4 파워 모드에서, 상기 링크를 상기 정상 링크 상태에서 저전력 링크 상태로 천이시키는 PCIe 인터페이스 장치.
  9. 제 4항에 있어서, 상기 파워 제어부는,
    상기 커맨드 큐가 상기 제1 기준 시간보다 큰 제2 기준 시간 이상 비어 있으면, 상기 동작 모드를 상기 제3 파워 모드에서 상기 복수의 파워 모드들 중 상기 제3 파워 모드보다 전력 소비가 적은 제5 파워 모드로 변경하는 PCIe 인터페이스 장치.
  10. 제 9항에 있어서, 상기 파워 제어부는,
    상기 제5 파워 모드에서, 상기 디폴트 레인을 상기 제1 파워 상태로 설정하고, 상기 적어도 하나 이상의 레인들을 파워 오프 상태로 설정하는 PCIe 인터페이스 장치.
  11. 제 9항에 있어서, 상기 링크 제어부는,
    상기 제5 파워 모드에서, 상기 링크를 상기 정상 링크 상태에서 저전력 링크 서브 상태로 천이시키는 PCIe 인터페이스 장치.
  12. 제 9항에 있어서, 상기 클럭 제어부는,
    상기 제5 파워 모드에서, 상기 적어도 하나 이상의 DMA 장치에 제공하는 동작 클럭을 턴 오프시키는 PCIe 인터페이스 장치.
  13. 제 9항에 있어서, 상기 파워 제어부는,
    상기 호스트의 요청에 따라 생성된 신규 커맨드가 상기 커맨드 큐에 저장되면, 상기 동작 모드를 상기 제5 파워 모드에서 상기 제2 파워 모드로 변경하고,
    상기 링크 제어부는,
    상기 적어도 하나 이상의 레인들을 활성화시키고, 상기 링크를 저전력 링크 서브 상태에서 상기 정상 링크 상태로 천이시키는 PCIe 인터페이스 장치.
  14. 제 13항에 있어서, 상기 파워 제어부는,
    상기 커맨드 큐에 저장된 커맨드의 양이 상기 기준 값보다 크면, 상기 동작 모드를 상기 제2 파워 모드에서 상기 제1 파워 모드로 변경하는 PCIe 인터페이스 장치.
  15. 호스트와 통신하기 위한 링크를 형성하는 디폴트 레인 및 적어도 하나 이상의 레인들을 포함하는 PCIe(Peripheral Component Interconnect Express) 인터페이스 장치의 동작 방법에 있어서,
    상기 호스트의 요청을 기초로 생성된 적어도 하나 이상의 DMA(Direct Memory Access)장치에 대한 커맨드들의 개수가 기준 값보다 이하이면, 동작 모드를 복수의 파워 모드들 중 제1 파워 모드에서 상기 제1 파워 모드보다 전력 소비가 적은 제2 파워 모드로 변경하는 단계;
    상기 적어도 하나 이상의 레인들을 비활성화시키는 단계; 및
    상기 적어도 하나 이상의 DMA 장치에 제1 동작 클럭보다 낮은 제2 동작 클럭을 제공하는 단계;를 포함하는 PCIe 인터페이스 장치의 동작 방법.
  16. 제 15항에 있어서, 상기 제2 동작 클럭을 제공하는 단계는,
    활성화된 레인의 개수 대 상기 레인 그룹에 포함된 전체 레인의 개수의 비율로 상기 제1 동작 클럭을 감소시킨 상기 제2 동작 클럭을 상기 적어도 하나 이상의 DMA 장치에 제공하는 단계;를 포함하는 PCIe 인터페이스 장치의 동작 방법.
  17. 제 15항에 있어서, 상기 제2 파워 모드로 변경하는 단계는,
    상기 적어도 하나 이상의 레인들을 복수의 파워 상태들 중 제1 파워 상태로 설정하는 단계; 및
    상기 디폴트 레인을 상기 복수의 파워 상태들 중 상기 제1 파워 상태보다 높은 제3 파워 상태로 설정하는 단계;를 포함하는 PCIe 인터페이스 장치의 동작 방법.
  18. 제 17항에 있어서,
    상기 적어도 하나 이상의 DMA(Direct Memory Access)장치에 대한 커맨드들이 처리 완료된 시점에서 제1 기준 시간이 경과하면, 상기 동작 모드를 상기 제2 파워 모드에서 상기 복수의 파워 모드들 중 상기 제2 파워 모드보다 전력 소비가 적은 제3 파워 모드로 변경하는 단계;를 더 포함하는 PCIe 인터페이스 장치의 동작 방법.
  19. 제 18항에 있어서, 상기 제3 파워 모드로 변경하는 단계는,
    상기 디폴트 레인을 상기 제3 파워 상태로 유지하는 단계; 및
    상기 적어도 하나 이상의 레인들을 파워 오프 상태로 설정하는 단계;를 포함하는 PCIe 인터페이스 장치의 동작 방법.
  20. 제 18항에 있어서,
    상기 호스트가 허용하는 레이턴시가 기준 레이턴시보다 큰 경우, 상기 동작 모드를 상기 제3 파워 모드에서 상기 복수의 파워 모드들 중 상기 제3 파워 모드보다 전력 소비가 적은 제4 파워 모드로 변경하는 단계;를 더 포함하는 PCIe 인터페이스 장치의 동작 방법.
  21. 제 20항에 있어서, 상기 제4 파워 모드로 변경하는 단계는,
    상기 디폴트 레인을 상기 복수의 파워 상태들 중, 상기 제1 파워 상태보다 높고 상기 제3 파워 상태보다 낮은 제2 파워 상태로 설정하는 단계;
    상기 적어도 하나 이상의 레인들을 파워 오프 상태로 설정하는 단계; 및
    상기 링크를 링크 정상 상태에서 저전력 링크 상태로 천이시키는 단계;를 포함하는 PCIe 인터페이스 장치의 동작 방법.
  22. 제 18항에 있어서,
    상기 커맨드들이 처리 완료된 시점에서 상기 제1 기준 시간보다 큰 제2 기준 시간이 경과하면, 상기 동작 모드를 상기 제3 파워 모드에서 상기 복수의 파워 모드들 중 상기 제3 파워 모드보다 전력 소비가 적은 제5 파워 모드로 변경하는 단계;를 포함하는 PCIe 인터페이스 장치의 동작 방법.
  23. 제 22항에 있어서, 상기 제5 파워 모드로 변경하는 단계는,
    상기 디폴트 레인을 상기 제1 파워 상태로 설정하는 단계;
    상기 적어도 하나 이상의 레인들을 파워 오프 상태로 설정하는 단계:
    상기 링크를 정상 링크 상태에서 저전력 링크 서브 상태로 천이시키는 단계; 및
    상기 제5 파워 모드에서, 상기 적어도 하나 이상의 DMA 장치에 제공하는 동작 클럭을 턴 오프시키는 단계;를 포함하는 PCIe 인터페이스 장치의 동작 방법.
  24. 제 23항에 있어서,
    상기 호스트의 요청에 따라 상기 적어도 하나 이상의 DMA 장치들에 대한 신규 커맨드들이 생성되면, 상기 동작 모드를 상기 제5 파워 모드에서 상기 제2 파워 모드로 변경하는 단계;
    상기 적어도 하나 이상의 레인들을 활성화시키는 단계; 및
    상기 링크를 상기 저전력 링크 서브 상태에서 상기 정상 링크 상태로 천이시키는 단계;를 더 포함하는 PCIe 인터페이스 장치의 동작 방법.
  25. 제 24항에 있어서,
    상기 신규 커맨드들의 개수가 상기 기준 값보다 크면, 상기 동작 모드를 상기 제2 파워 모드에서 상기 제1 파워 모드로 변경하는 단계;를 더 포함하는 PCIe 인터페이스 장치의 동작 방법.
KR1020210048084A 2021-04-13 2021-04-13 PCIe 인터페이스 장치 및 그 동작 방법 KR102518317B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210048084A KR102518317B1 (ko) 2021-04-13 2021-04-13 PCIe 인터페이스 장치 및 그 동작 방법
US17/522,843 US11960424B2 (en) 2021-04-13 2021-11-09 Peripheral component interconnect express (PCIe) interface device and method of operating the same
CN202210005244.3A CN115203084A (zh) 2021-04-13 2022-01-04 高速外围组件互连(pcie)接口装置及其操作方法
TW111104890A TW202240417A (zh) 2021-04-13 2022-02-10 快捷週邊組件互連(pcie)介面裝置及其操作方法
US17/707,744 US20220327074A1 (en) 2021-04-13 2022-03-29 PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210048084A KR102518317B1 (ko) 2021-04-13 2021-04-13 PCIe 인터페이스 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20220141681A KR20220141681A (ko) 2022-10-20
KR102518317B1 true KR102518317B1 (ko) 2023-04-06

Family

ID=83510267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210048084A KR102518317B1 (ko) 2021-04-13 2021-04-13 PCIe 인터페이스 장치 및 그 동작 방법

Country Status (4)

Country Link
US (1) US11960424B2 (ko)
KR (1) KR102518317B1 (ko)
CN (1) CN115203084A (ko)
TW (1) TW202240417A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11782497B2 (en) 2021-06-01 2023-10-10 SK Hynix Inc. Peripheral component interconnect express (PCIE) interface device and method of operating the same
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090103444A1 (en) 2007-10-22 2009-04-23 Dell Products L.P. Method and Apparatus for Power Throttling of Highspeed Multi-Lane Serial Links
CN111124975A (zh) 2019-12-27 2020-05-08 江苏芯盛智能科技有限公司 一种PCIe设备动态功耗节省方法以及低功耗PCIe设备

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000041B2 (en) 2003-03-31 2006-02-14 Intel Corporation Method and an apparatus to efficiently handle read completions that satisfy a read request
US7136953B1 (en) * 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US8081706B2 (en) * 2005-08-24 2011-12-20 Altera Corporation Lane-to-lane skew reduction in multi-channel, high-speed, transceiver circuitry
US7647515B2 (en) 2005-08-29 2010-01-12 Dell Products L.P. System and method for information handling system adaptive variable bus idle timer
US7984314B2 (en) 2007-05-14 2011-07-19 Intel Corporation Power management of low power link states
US9146892B2 (en) 2007-10-11 2015-09-29 Broadcom Corporation Method and system for improving PCI-E L1 ASPM exit latency
US20090187683A1 (en) * 2008-01-22 2009-07-23 International Business Machines Corporation Adaptive link width control
US8503468B2 (en) * 2008-11-05 2013-08-06 Fusion-Io, Inc. PCI express load sharing network interface controller cluster
JP2010238150A (ja) 2009-03-31 2010-10-21 Toshiba Corp PCIExpress通信システム、及びその通信方法
US8131889B2 (en) * 2009-11-10 2012-03-06 Apple Inc. Command queue for peripheral component
US20110173352A1 (en) * 2010-01-13 2011-07-14 Mellanox Technologies Ltd Power Reduction on Idle Communication Lanes
US8832336B2 (en) * 2010-01-30 2014-09-09 Mosys, Inc. Reducing latency in serializer-deserializer links
US8689028B2 (en) 2011-07-01 2014-04-01 Intel Corporation Method and apparatus to reduce idle link power in a platform
JP6017584B2 (ja) * 2011-12-21 2016-11-02 インテル コーポレイション 動的リンク幅調整
US20130173837A1 (en) 2011-12-30 2013-07-04 Advanced Micro Devices, Inc. Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex
CN104246652B (zh) 2012-04-24 2018-07-17 英特尔公司 用于活动互连链路功率管理的自适应低功率链路状态进入策略
US8938630B2 (en) * 2012-07-30 2015-01-20 Micron Technology, Inc. Apparatus power control
US9183171B2 (en) 2012-09-29 2015-11-10 Intel Corporation Fast deskew when exiting low-power partial-width high speed link state
JP6192284B2 (ja) 2012-10-15 2017-09-06 キヤノン株式会社 通信装置及びその制御方法
KR101700545B1 (ko) * 2012-10-22 2017-01-26 인텔 코포레이션 고성능 인터커넥트 코히어런스 프로토콜
US9026698B2 (en) 2013-03-15 2015-05-05 Intel Corporation Apparatus, system and method for providing access to a device function
US9229525B2 (en) * 2013-06-17 2016-01-05 Apple Inc. Adaptive latency tolerance for power management of memory bus interfaces
US9535870B2 (en) 2013-09-18 2017-01-03 HGST Netherlands B.V. Acknowledgement-less protocol for solid state drive interface
US9467120B1 (en) * 2013-12-19 2016-10-11 Altera Corporation Power management for PCI express
US9454213B2 (en) 2013-12-26 2016-09-27 Intel Corporation Method, apparatus, system for lane staggering and determinism for serial high speed I/O lanes
KR102218735B1 (ko) * 2014-01-21 2021-02-23 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법
US9304690B2 (en) * 2014-05-07 2016-04-05 HGST Netherlands B.V. System and method for peer-to-peer PCIe storage transfers
US20160188510A1 (en) 2014-12-26 2016-06-30 Samsung Electronics Co., Ltd. METHOD FETCHING/PROCESSING NVMe COMMANDS IN MULTI-PORT, SR-IOV OR MR-IOV SUPPORTED PCIe BASED STORAGE DEVICES
US20160216758A1 (en) 2015-01-27 2016-07-28 Avago Technologies General Ip (Singapore) Pte. Ltd. PCI Express Device With Early Low Power State
KR102333391B1 (ko) * 2015-02-27 2021-12-01 삼성전자 주식회사 전자 장치 및 이의 전력 제어 방법
KR102403489B1 (ko) * 2015-07-10 2022-05-27 삼성전자주식회사 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법
JP2017033501A (ja) 2015-08-06 2017-02-09 株式会社東芝 記憶装置および制御方法
US11029748B2 (en) 2016-03-15 2021-06-08 Qualcomm Incorporated Adaptive peripheral component interconnect express link substate initiation for optimal performance and power savings
US10133504B2 (en) 2016-04-06 2018-11-20 Futurewei Technologies, Inc. Dynamic partitioning of processing hardware
US10025522B2 (en) * 2016-04-15 2018-07-17 Sandisk Technologies Llc Memory interface command queue throttling
KR20170124017A (ko) * 2016-04-29 2017-11-09 삼성전자주식회사 동작 전압을 조절하는 메모리 장치, 메모리 장치를 제어하는 어플리케이션 프로세서 및 메모리 장치의 동작방법
US9760311B1 (en) * 2016-06-23 2017-09-12 Sandisk Technologies Llc Storage system and method for adaptive thermal throttling
US9946325B2 (en) 2016-06-30 2018-04-17 Intel IP Corporation Interprocessor power state transitions
US10452278B2 (en) 2017-03-24 2019-10-22 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
US10963035B2 (en) 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
US11132319B2 (en) 2018-01-12 2021-09-28 Intel Corporation Timer control for peripheral component interconnect express components implemented with thunderbolt controllers
US20190250930A1 (en) 2018-02-12 2019-08-15 Western Digital Technologies, Inc. Method and apparatus for configuring a serial data link
JP7292864B2 (ja) 2018-04-23 2023-06-19 キオクシア株式会社 半導体記憶装置
US11231764B2 (en) 2018-10-17 2022-01-25 Samsung Electronics Co., Ltd. System and method for supporting chassis level keep alive in NVME-of based system
US11307638B2 (en) 2018-12-12 2022-04-19 Intel Corporation Securely providing multiple wake-up time options for PCI Express
CN112352221A (zh) 2019-01-31 2021-02-09 英特尔公司 用以支持虚拟化环境中的ssd设备驱动器与物理ssd之间的sq/cq对通信的快速传输的共享存储器机制
US11815976B2 (en) 2019-05-22 2023-11-14 Qualcomm Incorporated Bandwidth based power management for peripheral component interconnect express devices
US11073894B2 (en) 2019-05-24 2021-07-27 Qualcomm Incorporated System power management for peripheral component interconnect express (PCIE)-based devices
US11593280B2 (en) 2019-06-25 2023-02-28 Intel Corporation Predictive packet header compression
US11194751B2 (en) 2019-07-16 2021-12-07 Intel Corporation Power management of re-driver devices
US11775470B2 (en) 2019-11-20 2023-10-03 Intel Corporation Transaction layer packet format
US11543996B2 (en) 2020-05-20 2023-01-03 Western Digital Technologies, Inc. Systems and methods for power management in a data storage device
US20200310517A1 (en) 2020-05-28 2020-10-01 Intel Corporation Adaptive lower power state entry and exit
US20220197519A1 (en) 2020-12-19 2022-06-23 Intel Corporation Multi-level memory system power management apparatus and method
US20220327074A1 (en) 2021-04-13 2022-10-13 SK Hynix Inc. PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090103444A1 (en) 2007-10-22 2009-04-23 Dell Products L.P. Method and Apparatus for Power Throttling of Highspeed Multi-Lane Serial Links
CN111124975A (zh) 2019-12-27 2020-05-08 江苏芯盛智能科技有限公司 一种PCIe设备动态功耗节省方法以及低功耗PCIe设备

Also Published As

Publication number Publication date
CN115203084A (zh) 2022-10-18
KR20220141681A (ko) 2022-10-20
TW202240417A (zh) 2022-10-16
US11960424B2 (en) 2024-04-16
US20220327073A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
CN106209695B (zh) 给加载/存储通信协议提供低功率物理单元
EP1617317A2 (en) Method and apparatus for managing power consumption relating to a differential serial communication link
KR102518317B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
US20220327074A1 (en) PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
TW202248869A (zh) 快捷週邊組件互連介面裝置及其操作方法
US11797468B2 (en) Peripheral component interconnect express device and computing system including the same
KR102635450B1 (ko) PCIe 장치 및 그 동작 방법
TW202241110A (zh) PCIe介面和介面系統
KR102669923B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
KR102668564B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
KR102519484B1 (ko) PCIe 인터페이스 장치 및 이를 포함하는 시스템
US11782497B2 (en) Peripheral component interconnect express (PCIE) interface device and method of operating the same
US20240104035A1 (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
US20230315672A1 (en) Interface device and computing system including the same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right