KR20240045073A - 반도체 장치 및 링크 설정 방법 - Google Patents

반도체 장치 및 링크 설정 방법 Download PDF

Info

Publication number
KR20240045073A
KR20240045073A KR1020230073449A KR20230073449A KR20240045073A KR 20240045073 A KR20240045073 A KR 20240045073A KR 1020230073449 A KR1020230073449 A KR 1020230073449A KR 20230073449 A KR20230073449 A KR 20230073449A KR 20240045073 A KR20240045073 A KR 20240045073A
Authority
KR
South Korea
Prior art keywords
preset
semiconductor device
link
ltssm
recovery policy
Prior art date
Application number
KR1020230073449A
Other languages
English (en)
Inventor
조재호
기선호
이왕석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/373,072 priority Critical patent/US20240126663A1/en
Publication of KR20240045073A publication Critical patent/KR20240045073A/ko

Links

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/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
    • 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)
  • Stored Programmes (AREA)

Abstract

일 실시예 따른 반도체 장치는 PCI 익스프레스 인터페이스에서 데이터를 주고받는 복수의 포트들; 및 상기 복수의 포트들에 복수의 레인(lane)을 설정하는 링크 업을 실행하는 LTSSM, 및 상기 LTSSM이 링크 업에 성공한 경우 설정한 제1 프리셋을 기준값으로 저장하는 메모리를 포함하고, 상기 기준값에 기초하여 상기 LTSSM이 설정하는 제2 프리셋의 유효성을 검증하는 PCIe 컨트롤러를 포함한다.

Description

반도체 장치 및 링크 설정 방법{SEMICONDUCTOR DEVICE AND LINK CONFIGURING METHOD}
개시 내용은 반도체 장치 및 링크 설정 방법에 관한 것이다.
반도체 장치는 다른 외부 장치와 데이터를 주고 받기 위한 인터페이스를 포함하며, 인터페이스는 다양한 규격에 따라 구현될 수 있다. 반도체 장치들을 서로 연결하는 인터페이스들 중에서 PCI 익스프레스(PCI Express(PCIe)) 인터페이스는, 고속 데이터 전송을 위해 다양한 분야에 적용되고 있다. PCIe 인터페이스는 직렬 전송 형태의 인터페이스로, PCIe 명세에 의해 정의되며, 동시에 데이터를 전송 및 수신할 수 있는 양방향 연결을 제공한다. PCIe 인터페이스에 의해 반도체 장치들이 서로 데이터를 주고 받기 위해서는, PCIe 인터페이스의 물리 계층(Physical Layer(PHY))에서 링크를 설정하는 프로세스, 및 물리 계층에서 설정 가능한 PHY 파라미터들의 값을 선택하는 프로세스 등이 실행되어야 할 수 있다.
일 실시예는 링크 업 프로세스에서 설정한 프리셋을 검증함으로써 링크의 정밀도와 안정성을 향상시키는 반도체 장치 및 링크 설정 방법을 제공하고자 한다.
이러한 기술적 과제를 해결하기 위한 일 실시예에 따른 반도체 장치는 PCI 익스프레스(PCI express(PCIe)) 인터페이스에서 데이터를 주고받는 복수의 포트들; 및 상기 복수의 포트들에 복수의 레인(lane)을 설정하는 링크 업을 실행하는 LTSSM(Link Training and Status State Machine), 및 상기 LTSSM이 링크 업에 성공한 경우 설정한 제1 프리셋(preset)을 기준값으로 저장하는 메모리를 포함하고, 상기 기준값에 기초하여 상기 LTSSM이 설정하는 제2 프리셋의 유효성을 검증하는 PCIe 컨트롤러를 포함한다.
상기 PCIe 컨트롤러는, 상기 LTSSM이 링크 업을 실행하기 이전에 물리 계층의 데이터 통신을 위한 PHY 파라미터를 설정하고, 상기 제2 프리셋의 유효성 검증이 실패한 경우 상기 PHY 파라미터를 변경할 수 있다.
상기 PCIe 컨트롤러는, 상기 제2 프리셋이 상기 기준값과 일치하면 상기 제2 프리셋이 유효한 것으로 결정할 수 있다.
상기 메모리는, 상기 LTSSM이 링크 업에 성공한 경우 설정한 제1 프리셋 변경 이력을 기준 히스토리로 더 저장하고, 상기 PCIe 컨트롤러는, 상기 기준값 및 상기 기준 히스토리에 기초하여 상기 제2 프리셋의 유효성을 검증할 수 있다.
상기 PCIe 컨트롤러는, 상기 제2 프리셋이 상기 기준값과 일치하고 상기 LTSSM이 설정하는 제2 프리셋 변경 이력이 상기 기준 히스토리와 일치하면 상기 제2 프리셋이 유효한 것으로 결정할 수 있다.
상기 PCIe 컨트롤러는, 상기 제2 프리셋이 상기 기준값과 일치하고 상기 LTSSM이 설정하는 제2 프리셋 변경 이력과 상기 기준 히스토리의 차이가 미리 결정된 차이 정도보다 작으면 상기 제2 프리셋이 유효한 것으로 결정할 수 있다.
상기 PCIe 컨트롤러는, 유효성 검증의 정밀도에 관한 복구 정책에 기초하여 상기 제2 프리셋의 유효성을 검증할 수 있다.
상기 PCIe 컨트롤러는, 비교적 높은 정밀도를 요구하는 환경에서 제1 복구 정책을 선택하고, 비교적 낮은 정밀도를 요구하는 환경에서 제2 복구 정책을 선택하고, 상기 제1 복구 정책의 저장 크기는 상기 제2 복구 정책의 저장 크기보다 클 수 있다.
상기 복구 정책은, 정밀도, 수행 속도, 저장 크기, 오차 범위, 및 차이 정도 중 적어도 하나를 포함할 수 있다.
상기 메모리는, 상기 LTSSM이 링크 업에 성공한 경우 설정한 상태들의 순서를 제1 기준 순서로 더 저장하고, 상기 PCIe 컨트롤러는, 상기 LTSSM이 설정하는 상태들의 제2 순서가 상기 제1 기준 순서와 일치하면 상기 제2 프리셋의 유효성을 검증할 수 있다.
상기 메모리는, 상기 LTSSM이 링크 업에 성공한 경우 설정한 서브 상태들의 순서를 제2 기준 순서로 더 저장하고, 상기 PCIe 컨트롤러는, 상기 제2 순서가 상기 제1 기준 순서와 일치하고 상기 LTSSM이 설정하는 서브 상태들의 제3 순서가 상기 제2 기준 순서와 일치하면 상기 제2 프리셋의 유효성을 검증할 수 있다.
일 실시예에 따른 반도체 장치는 PCI 익스프레스(PCI express(PCIe)) 인터페이스에서 데이터를 주고받는 복수의 포트들; 및 상기 복수의 포트들에 복수의 레인(lane)을 설정하는 링크 업 프로세스를 수행하고, 제1 시점에 설정한 제1 프리셋을 제1 복구 정책에 기초하여 검증하고, 상기 제1 시점보다 늦은 제2 시점에 설정한 제2 프리셋을 제2 복구 정책에 기초하여 검증하는 PCIe 컨트롤러를 포함한다.
상기 PCIe 컨트롤러는, 정밀도, 수행 속도, 저장 크기, 오차 범위, 및 차이 정도 중 적어도 하나에 기초하여 복구 정책을 결정할 수 있다.
상기 PCIe 컨트롤러는, 상기 제1 시점에 제1 저장 크기를 갖는 상기 제1 복구 정책을 결정하고, 상기 제2 시점에 상기 제1 저장 크기보다 작은 제2 저장 크기를 갖는 상기 제2 복구 정책을 결정할 수 있다.
상기 PCIe 컨트롤러는, 상기 제1 시점에 제1 오차 범위를 갖는 상기 제1 복구 정책을 결정하고, 상기 제2 시점에 상기 제1 오차 범위보다 작은 제2 오차 범위를 갖는 상기 제2 복구 정책을 결정할 수 있다.
상기 PCIe 컨트롤러는, 상기 제1 시점에 제1 차이 정도를 갖는 상기 제1 복구 정책을 결정하고, 상기 제2 시점에 상기 제1 차이 정도보다 큰 제2 차이 정도를 갖는 상기 제2 복구 정책을 결정할 수 있다.
상기 PCIe 컨트롤러는, 상기 제1 시점 이전에 상기 링크 업 프로세스에서 상태들을 실행한 순서가 기준 순서와 일치하면 상기 제1 프리셋을 검증할 수 있다.
상기 PCIe 컨트롤러는, 상기 제1 복구 정책, 상기 제2 복구 정책, 최종 프리셋을 검증하는데 사용되는 기준값, 프리셋 변경 이력을 검증하는데 사용되는 기준 히스토리 중 적어도 하나에 기초하여 상기 제1 프리셋 또는 상기 제2 프리셋을 검증할 수 있다.
일 실시예에 따른 링크 설정 방법은 LTSSM(Link Training and Status State Machine)의 리커버리 동작에서 설정되는 복수의 프리셋을 획득하는 단계; 리커버리 정책에 기초하여 상기 복수의 프리셋이 유효한지 여부를 판정하는 단계; 및 상기 적어도 하나의 프리셋이 유효하지 않으면 PHY 파라미터를 조정하는 단계를 포함한다.
상기 판정하는 단계는, 상기 리커버리 정책에 기초하여 상기 복수의 프리셋의 변경 이력이 기준 히스토리와 일치하면 상기 복수의 프리셋이 유효한 것으로 판정하는 단계를 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 스토리지 장치를 간단하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 시스템을 간단하게 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 시스템의 동작을 설명하기 위해 제공되는 도면이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 시스템의 동작을 설명하기 위해 제공되는 도면들이다.
도 6은 본 발명의 일 실시예에 따른 송신 등화기의 동작을 설명하기 위해 제공되는 도면이다.
도 7은 본 발명의 일 실시예에 따른 반도체 장치에 포함되는 LTSSM(Link Training and Status State Machine)을 간단하게 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 LTSSM의 복구 상태의 서브 상태를 설명하기 위해 제공되는 도면이다.
도 9 내지 도 11은 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면들이다.
도 12는 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 13은 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 14 내지 도 17은 일 실시예에 따른 복구 정책을 설명하기 위해 제공되는 도면들이다.
도 18은 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 19는 일 실시예에 따른 전자 시스템을 나타내는 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 도면을 참고하여 설명한 흐름도에서, 동작 순서는 변경될 수 있고, 여러 동작들이 병합되거나, 어느 동작이 분할될 수 있고, 특정 동작은 수행되지 않을 수 있다.
또한, 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다. 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소를 설명하는 데 사용될 수 있지만, 구성요소는 이러한 용어에 의해 한정되지는 않는다. 이들 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 스토리지 장치를 간단하게 나타낸 도면이다.
본 발명의 일 실시예에 따른 스토리지 장치(10)는 M.2 표준에 따른 폼팩터를 가질 수 있으며, PCI 익스프레스(PCI express(PCIe)) 인터페이스 프로토콜에 따라 외부의 호스트, 예를 들어 중앙 처리 장치, 시스템-온-칩, 애플리케이션 프로세서 등과 통신할 수 있다. PCIe 인터페이스 프로토콜은 PCI SIG가 책정한 직렬 전송 형태의 인터페이스로서 동시에 데이터를 전송 및 수신할 수 있는 양방향 커넥션(bidirectional connection)을 제공한다. 양방향 커넥션은 심플렉스 전송 경로(simplex transmit path)와 심플렉스 수신 경로(simplex receive path)를 포함하며, 이와 같은 구조를 강조하기 위해 PCIe 인터페이스 프로토콜이 채용하는 양방향 커넥션 모델을 이중-심플렉스 커넥션(dual-simplex connection) 모델이라고도 한다.
스토리지 장치(10)는 PCIe 인터페이스 프로토콜을 이용하여 데이터를 주고 받을 수 있다. 이때, 데이터가 이동하는 전송 경로 및 수신 경로는 링크(link)로 정의되고, 링크는 전송 경로 및 수신 경로의 쌍을 하나 이상 포함할 수 있다. 또한, 하나의 쌍을 이루는 전송 경로와 수신 경로는 레인(lane)으로 정의되고, 하나의 링크를 이루는 레인의 개수를 링크 폭(link width)이라고 정의할 수 있다. 스토리지 장치(10)는 데이터를 주고 받기 PCIe 인터페이스 프로토콜의 물리적 계층(Physical Layer)에서 링크를 설정할 수 있다.
스토리지 장치(10)는 전원 회로(11), 컨트롤러(12), 메모리 장치들(13), DRAM(14) 및 시스템 기판(15) 등을 포함할 수 있다. 전원 회로(11)와 컨트롤러(12) 및 메모리 장치들(13)은 시스템 기판(15)에 형성되는 배선 패턴들에 의해 서로 전기적으로 연결될 수 있다. 시스템 기판(15)에는 적어도 하나의 집적 회로들(17)이 더 실장될 수 있다.
시스템 기판(15)은 외부 호스트와 결합되는 복수의 포트들을 포함하는 커넥터(16)를 포함할 수 있다. 커넥터(16)에 포함되는 복수의 포트들은, 전원 회로(11) 및 컨트롤러(12) 등과 연결될 수 있다. 일례로, 전원 회로(11)는 복수의 포트들 중에서 전원 핀들과 연결되어 외부 장치로부터 전원을 공급받으며, 컨트롤러(12), 메모리 장치들(13) 및 DRAM(14) 등의 동작에 필요한 내부 전원 전압들을 생성할 수 있다. 전원 회로(11)는 PMIC(Power Management Integrated Circuit)를 포함하며, 실시예에 따라 PMIC가 출력하는 내부 전원 전압들을 컨트롤러(12), 메모리 장치들(13) 및 DRAM(14) 등에 공급하는 분배 회로를 포함할 수도 있다.
컨트롤러(12)는 메모리 장치들(13)에 데이터를 기록하거나, 메모리 장치들(13)로부터 데이터를 읽어올 수 있으며, 외부 장치, 예를 들어 호스트와 데이터를 주고 받을 수 있다. 메모리 장치들(13)은 서로 분리된 제1 메모리 장치(13_1) 및 제2 메모리 장치(13_2)를 포함할 수 있으며, 제1 메모리 장치(13_1) 및 제2 메모리 장치(13_2) 각각은 하나 이상의 메모리 칩들을 포함할 수 있다. 실시예에 따라, 메모리 장치들(13)을 구성하는 메모리 장치의 수는 상이할 수 있다. 메모리 칩들은 NAND 메모리 칩일 수 있으며, 컨트롤러(12)는 NAND 메모리 칩들을 제어하기 위한 NAND 컨트롤러 및 메모리 인터페이스 등을 포함할 수 있다.
DRAM(14)은 데이터 저장 공간인 메모리 장치들(13)과 외부 장치인 호스트의 속도 차이를 완화하기 위한 버퍼 메모리로 동작할 수 있다. 스토리지 장치(10)에 포함되는 DRAM(14)은 일종의 캐시 메모리로도 동작할 수 있으며, 메모리 장치들(13)에 대한 제어 동작에서 임시로 데이터를 저장하기 위한 공간을 제공할 수도 있다. 컨트롤러(12)는 DRAM(14)을 제어하기 위한 DRAM 컨트롤러를 더 포함할 수 있다.
일 실시예에 따른 컨트롤러(12)는, 외부 호스트와 PCIe 인터페이스에 따른 링크를 설정하는 PCIe 컨트롤러(PCTR; 18)를 포함할 수 있다. PCIe 컨트롤러(18)는 커넥터(16)에 포함되는 복수의 포트들에, 실제로 데이터를 주고 받기 위한 데이터 레인들, 클럭 신호를 수신하기 위한 클럭 레인들, 및 전원 전압을 입력 받기 위한 전원 레인들을 설정할 수 있다.
또한 PCIe 컨트롤러(18)는, 물리 계층에서 설정 가능한 PHY 파라미터들의 값을 결정함으로써, 외부 호스트와 스토리지 장치(10) 사이의 링크를 설정하는 링크 업 프로세스를 진행할 수 있다. 일례로, PCIe 컨트롤러(18)는 링크의 다양한 상태들을 표현하는 LTSSM(Link Training and Status State Machine)을 포함하며, LTSSM에 따라 링크 폭, 데이터 레이트, 레인 번호, 레인의 극성, 연속된 비트들 사이의 경계 등이 결정될 수 있다.
일 실시예에서, 링크 업에 성공한 LTSSM이 상태들을 실행한 순서가, 기준 순서로서 PCIe 컨트롤러(18) 내부의 메모리에 저장될 수 있다. PCIe 컨트롤러(18)는, PHY 파라미터들을 조정하는 캘리브레이션 동작이 실행되면, PHY 파라미터들 중 적어도 하나를 변경한 후, 링크 업을 완료하기 위해 LTSSM이 실행하는 상태들의 순서를 기준 순서와 비교할 수 있다. PCIe 컨트롤러(18)는, 링크 업을 완료하기 위해 LTSSM이 실행하는 상태들의 순서가 기준 순서와 일치할 때까지, PHY 파라미터들을 조정할 수 있다. 따라서, 최적의 조건에서 데이터를 주고 받을 수 있도록 PHY 파라미터들이 조정될 수 있다.
일 실시예에서, LTSSM은 링크 업 프로세스 동안 상태들 중 복구(Recovery) 상태를 실행할 수 있다. 예를 들어, LTSSM은 설정(Configuration) 상태, L0 상태, L0s 상태에서 오류가 발생하거나, 또는 L1 상태에서 L0 상태로 복귀하는 등의 경우에서 복구 상태에 진입할 수 있다. 링크 업에 성공한 LTSSM이 복구 상태에서 설정한 프리셋(preset) 값과 프리셋 히스토리가 각각 기준값과 기준 히스토리로서 PCIe 컨트롤러(18) 내부의 메모리에 저장될 수 있다. PCIe 컨트롤러(18)는 복구 상태에서 설정하는 프리셋 값과 프리셋 히스토리를 기준값과 기준 히스토리와 비교할 수 있다. PCIe 컨트롤러(18)는 LTSSM이 실행하는 상태들의 순서가 기준 순서와 일치하면 비교를 수행할 수 있다. PCIe 컨트롤러(18)는 복구 정책에 기초하여 비교를 수행할 수 있다. 복구 정책은 정밀도, 히스토리 크기, 허용 오차 범위, 차이 정도, 및 수행 속도 중 적어도 하나에 대한 정책을 포함할 수 있다. PCIe 컨트롤러(18)는, 복구 상태를 완료하기 위해 LTSSM이 설정하는 프리셋 값과 프리셋 히스토리가 기준값과 기준 히스토리와 일치할 때까지, PHY 파라미터들을 조정할 수 있다. 따라서, 최적의 조건에서 데이터를 주고 받을 수 있도록 PHY 파라미터들이 조정될 수 있다.
도 2는 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 시스템을 간단하게 나타낸 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 시스템(20)은 호스트(30)와 스토리지 장치(40), 및 그래픽 처리 장치(50) 등을 포함할 수 있다. 호스트(30)는 스토리지 장치(40)를 제어하여 스토리지 장치(40)에 데이터를 저장하거나, 스토리지 장치(40)에 저장된 데이터를 읽어올 수 있다. 또한 호스트(30)는 그래픽 처리 장치(50)와 그래픽 데이터를 주고 받을 수 있다. 호스트(30)는 중앙 처리 장치(CPU), 애플리케이션 프로세서(AP), 시스템-온-칩(SoC) 등의 장치들 중 하나일 수 있다. 실시예에 따라 호스트(30)는 PCIe 인터페이스를 사용하는 다른 장치와 더 연결될 수 있다.
호스트(30)는 스토리지 장치(40)와 연결되는 제1 인터페이스(interface(IF); 31A), 그래픽 처리 장치(50)와 연결되는 제2 인터페이스(IF; 31B), 연산을 실행하는 코어(core; 32), 메모리(memory(MEM); 33), 및 가속기(accelerator(ACC); 34) 등을 포함할 수 있다. 실시예에 따라 호스트(30)는 코어(32)를 두 개 이상 포함할 수 있으며, 메모리(33)는 호스트(30) 내부의 캐시 메모리 등일 수 있다. 가속기(34)는 AI 데이터 연산 등을 실행할 수 있다.
스토리지 장치(40)는 인터페이스(IF; 41), SSD 컨트롤러(SSD controller(SCTR); 42), 전원 회로(power circuit(PWRC); 43) 및 메모리(MEM; 44) 등을 포함할 수 있다. 인터페이스(41)를 통해 호스트(30)로부터 제어 커맨드를 수신하여 동작하며, 데이터를 수신하여 메모리(44)에 저장하거나, 메모리(44)에 저장된 데이터를 인출하여 호스트(30)로 데이터를 출력할 수 있다. 제어 커맨드는 주소 정보를 포함할 수 있으며, 컨트롤러(42)는 주소 정보를 참조하여 메모리(44)에 포함된 복수의 메모리 칩들 중 적어도 하나에 데이터를 저장하거나, 복수의 메모리 칩들 중 적어도 하나로부터 데이터를 읽어올 수 있다.
그래픽 처리 장치(50)는 인터페이스(IF; 51), GPU(52), 메모리(MEM; 53) 등을 포함할 수 있다. GPU(52)는 호스트(30)로부터 수신한 그래픽 데이터를 처리하며, 메모리(53)는 GPU(52)가 처리하는 그래픽 데이터를 저장할 수 있다. 일례로 메모리(53)는 읽기/쓰기 속도가 빠른 DRAM, PRAM, RRAM, MRAM 등을 포함할 수 있다.
일 실시예에서, 호스트(30)의 제1 인터페이스(31A)와 스토리지 장치(40)의 인터페이스(41), 및 호스트(30)의 제2 인터페이스(31B)와 그래픽 처리 장치(50)의 인터페이스(51)는, PCIe 인터페이스에 의해 서로 데이터를 주고 받을 수 있다. 서로 데이터를 주고 받기 위해, 시스템(20)의 전원이 턴-온되고 호스트(30), 스토리지 장치(40), 및 그래픽 처리 장치(50)에 전원이 공급되면, 인터페이스들(31A, 31B, 41, 51) 사이의 링크를 구성하는 링크 업 프로세스가 실행될 수 있다. 링크 업 프로세스에서는 데이터 레이트, 데이터를 전송하는 신호의 전압 레벨과 슬루율, 데이터 레인들의 개수와 극성, 레인 번호 등이 결정될 수 있다.
일반적으로 링크 업 프로세스는 미리 결정된 값을 갖는 PHY 파라미터들에 기초하여 실행될 수 있다. 다만, PCIe 인터페이스를 이용하는 장치들의 종류, 외부 온도, 시스템(20)에 공급되는 전원의 크기 등에 따라, 데이터를 주고 받는 최적의 환경을 구현하기 위한 PHY 파라미터들 중 적어도 하나의 값이 다를 수 있다. 일반적으로는 PCIe 인터페이스를 이용하는 장치가 출하되기 전에 PHY 파라미터들 각각의 값이 고정된다. 따라서, PCIe 인터페이스에 연결되는 장치가 변경되거나, 외부 온도 및 전원 등이 변하는 경우, 시스템(20)의 성능이 저하될 수 있다.
본 발명의 일 실시예에서는, PHY 파라미터들을 변경하는 캘리브레이션 동작을, PCIe 컨트롤러에서 자체적으로 실행하는 BISC(Built-In Self Calibration) 기능이 장치들(30-50) 중 적어도 하나에 탑재될 수 있다. 따라서, PCIe 인터페이스에 연결되는 장치가 변경되거나, 외부 온도 및 전원 등이 변하는 경우, 필요에 따라 PHY 파라미터들을 변경하고 링크 업 프로세스를 다시 실행함으로써, PCIe 인터페이스를 최적의 조건으로 제어할 수 있으며, 시스템(20)의 성능을 개선할 수 있다.
일례로 캘리브레이션 동작 및 그에 뒤따르는 링크 업 프로세스는 호스트(30), 스토리지 장치(40), 그래픽 처리 장치(50) 중 적어도 하나의 PCIe 컨트롤러에서 자체적으로 실행될 수 있다. 코어(32), SSD 컨트롤러(42), GPU(52) 각각은 PCIe 컨트롤러를 포함할 수 있다. 일 실시예에서, 스토리지 장치(40)에 포함되는 PCIe 컨트롤러가 캘리브레이션 동작을 실행하여 PHY 파라미터들 중 적어도 하나를 변경하는 제1 시점은, 그래픽 처리 장치(50)의 PCIe 컨트롤러가 캘리브레이션 동작을 실행하는 제2 시점과 다를 수 있다. 반도체 장치의 종류에 따라, 캘리브레이션 동작을 실행하기 위한 조건, 캘리브레이션 동작을 실행하는 시간 간격 등이 서로 다를 수 있다.
또한, 제1 시점에 스토리지 장치(40)의 PCIe 컨트롤러가 변경하는 PHY 파라미터들은, 제2 시점에 그래픽 처리 장치(50)의 PCIe 컨트롤러가 변경하는 PHY 파라미터들과 다를 수 있다. 이는, 시스템(20)의 구성, 및 스토리지 장치(40)와 그래픽 처리 장치(50) 각각의 사용량 등에 따라 스토리지 장치(40)와 그래픽 처리 장치(50)의 동작 환경이 다르기 때문일 수 있다. 일례로, 시스템(20)이 턴-온된 후 그래픽 처리 장치(50)를 더 많이 사용하는 경우, 스토리지 장치(40)의 내부 온도가 그래픽 처리 장치(50)의 내부 온도보다 낮을 수 있다. 따라서, PCIe 인터페이스를 최적화하기 위한 캘리브레이션 동작에서 조정되는 PHY 파라미터들이, 스토리지 장치(40)와 그래픽 처리 장치(50)에서 서로 다르게 나타날 수 있다.
스토리지 장치(40)와 그래픽 처리 장치(50) 각각은, PCIe 컨트롤러 내부의 메모리 등에, 기준 순서를 저장할 수 있다. 기준 순서는 앞서 설명한 바와 같이, PCIe 컨트롤러가 LTSSM을 이용하여 링크 구성에 성공할 때까지, LTSSM에서 실행한 상태들의 순서를 포함할 수 있다. 일례로, 스토리지 장치(40)의 기준 순서는, 그래픽 처리 장치(50)의 기준 순서와 다를 수 있다.
PHY 파라미터들 중 적어도 하나가 조정되면, 스토리지 장치(40)와 그래픽 처리 장치(50) 각각이 PCIe 컨트롤러는, LTSSM을 이용하여 링크를 재구성할 수 있다. PCIe 컨트롤러는, LTSSM이 링크를 재구성할 때까지 이동한 상태들의 순서를 기준 순서와 비교할 수 있다. 기준 순서와의 비교 결과가 불일치이면, PCIe 컨트롤러는 기준 순서와의 비교 결과가 일치로 판단될 때까지 PHY 파라미터들을 반복해서 조정할 수 있다. 스토리지 장치(40)와 그래픽 처리 장치(50)에서 기준 순서가 서로 다를 수 있으므로, 스토리지 장치(40)에서 캘리브레이션 동작을 실행하고 PCIe 인터페이스의 링크를 재구성하는 데에 걸리는 시간이, 그래픽 처리 장치(50)에서 캘리브레이션 동작을 실행하고 PCIe 인터페이스의 링크를 재구성하는 데에 걸리는 시간과 다를 수 있다.
기준 순서와의 비교 결과가 일치이면, PCIe 컨트롤러는 LTSSM에서 실행한 상태들 중 복구 상태에서 설정한 프리셋이 유효한지 여부를 판정할 수 있다. 예를 들어, PCIe 명세는 송신 등화기(equalizer)에서 사용되는 복수의 프리셋 값을 정의하고, 각각의 프리셋 값은 송신 등화기가 프리슈트(preshoot) 및 디앰퍼시스(de-emphasis)를 구현하기 위한 상이한 계수 값들, 전압비 값들 등을 포함한다. LTSSM이 복구 상태에서 프리셋을 설정하는 동작은, 송신 등화기에서 사용되는 프리커서(pre-cursor)에 대한 계수, 현재 커서(current cursor)에 대한 계수, 및 포스트커서(post-cursor)에 대한 계수를 설정하는 동작을 포함할 수 있다.
PCIe 컨트롤러는 기준값 및 프리셋 히스토리에 기초하여 복구 상태에서 설정한 프리셋의 유효성을 검증할 수 있다. 예를 들어, PCIe 컨트롤러는 설정된 프리셋이 기준값 및 프리셋 히스토리와 일치하면 유효한 것으로 판정할 수 있다. PCIe 컨트롤러는 설정된 프리셋이 기준값 및 프리셋 히스토리와 일치하지 않으면 유효하지 않은 것으로 판정할 수 있다. 실시예에 따라, 설정된 프리셋이 기준값 및 프리셋 히스토리와 일부 일치하면 복구 정책에 기초하여 유효한 것으로 판정할 수도 있다. PCIe 컨트롤러는 설정된 프리셋이 유효하지 않으면 PHY 파라미터들을 변경할 수 있다. PCIe 컨트롤러는 설정된 프리셋이 유효하면 캘리브레이션 동작을 종료할 수 있다.
도 3은 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 시스템의 동작을 설명하기 위해 제공되는 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 시스템(100)은 제1 반도체 장치(110) 및 제2 반도체 장치(120)를 포함할 수 있다. 제1 반도체 장치(110)와 제2 반도체 장치(120)는 PCIe 인터페이스에 따라 데이터를 주고 받을 수 있다.
도 3에 도시한 바와 같이, PCIe 아키텍처는 논리적으로 구분되는 복수의 계층들(111-114, 121-124)을 포함할 수 있다. 일례로, PCIe 아키텍처는 소프트웨어 계층(111, 121), 트랜잭션 계층(112, 122), 링크 계층(113, 123), 및 물리 계층(114, 124) 등을 포함할 수 있다.
PCIe 아키텍처에 포함되는 계층들 중에서 물리 계층(114, 124)은 최하위 계층일 수 있으며, 링크 계층(113, 123)에서 생성하는 패킷들을 제1 및 제2 반도체 장치들(110, 120) 사이에서 직렬 전송할 수 있다. 도 3을 참조하면, 물리 계층(114, 124)은 제1 및 제2 반도체 장치들(110, 120) 각각의 송신기(TX)와 수신기(RX)를 통해 형성되는 링크(LINK)를 제공하며, 패킷들은 링크(LINK)를 통해 제1 및 제2 반도체 장치들(110, 120) 사이에서 전송될 수 있다.
링크 계층(113, 123)은 물리 계층(114, 124)의 상위 계층에 해당하며, 링크(LINK)를 통한 패킷 전송의 신뢰성을 보장하고, 링크(LINK)를 관리하는 기능들을 제공할 수 있다. 예를 들어, 링크 계층(113, 123)은 트랜잭션 계층(112, 122)에서 생성되는 패킷에 시퀀스 번호(Sequence Number) 정보, LCRC(Link Cyclic Redundancy Check) 정보 등을 부가할 수 있다.
트랜잭션 계층(112, 122)은 소프트웨어 계층(111, 121)으로부터 읽기(read) 또는 쓰기(write) 요청을 수신하고, 요청 패킷(request packet)을 생성하여 링크 계층(113, 123)에 전달할 수 있다. 또한, 트랜잭션 계층(112, 122)은 링크 계층(113, 123)으로부터 응답 패킷(response packet)을 수신하고 소프트웨어 계층(111, 121)으로부터 수신한 요청과 매칭시킬 수 있다. 트랜잭션 계층(112, 122)은 헤더(Header) 정보와 ECRC(End-to-end Cyclic Redundancy Check) 정보를 포함하는 패킷을 링크 계층(113, 123)에 전달할 수 있다.
소프트웨어 계층(111, 121)은 PCIe 명세에 의해 정의되지 않는 최상위 계층으로서, 일례로 소프트웨어 계층(111, 121)에는 PCIe 인터페이스를 포함하는 반도체 장치들(110, 120) 각각을 구동하는 소프트웨어나, 사용자 또는 호스트 애플리케이션으로부터 데이터 읽기 또는 쓰기 요청을 수신하고, 그에 대한 응답을 사용자 또는 호스트 애플리케이션에 제공하는 소프트웨어 등이 포함될 수 있다.
물리 계층(114, 124), 링크 계층(113, 123), 및 트랜잭션 계층(112, 122)에 대한 더 구체적인 내용은 PCIe 명세를 참조하여 이해될 수 있을 것이다.
다시 도 3을 다시 참조하면, 제1 반도체 장치(110)의 물리 계층(114)은 LTSSM(Link Training and Status State Machine, 115)을 포함할 수 있다. 마찬가지로, 제2 반도체 장치(120)의 물리 계층(124) 역시 LTSSM(125)을 포함할 수 있다. 일례로 LTSSM(115, 125)은 반도체 장치들(110, 120) 각각의 PCIe 컨트롤러에 저장될 수 있으며, 다만 반드시 이와 같은 형태로 한정되지는 않는다.
제1 반도체 장치(110)를 예시로 설명하면, LTSSM(115)은 검출(Detect) 상태, 폴링(Polling) 상태, 설정 상태, 복구 상태, L0 상태, L0s 상태, L1 상태, L2 상태, 핫 리셋(Hot Reset) 상태, 루프백(Loopback) 상태 및 디스에이블(Disable) 상태를 포함할 수 있다. LTSSM(115)은 11개 상태들을 트랜지션하며 PCIe 인터페이스에 따라 데이터를 전송하기 위한 여러 프로세스들을 수행할 수 있다. LTSSM(115)에 포함되는 상기 11개의 상태들 각각에 대한 정의 역시, PCIe 명세에 기재되어 있으며, LTSSM(115)은 PCIe 명세에 기재된 LTSSM에 관한 정의를 따르도록 구현될 수 있다. 마찬가지로, LTSSM(115)에 대한 설명이 LTSSM(125)에 동일하게 적용될 수 있다.
일 실시예에서, 제1 반도체 장치(110)의 LTSSM(115) 및 제2 반도체 장치(120)의 LTSSM(125) 중 적어도 하나는, 제1 및 제2 반도체 장치들(110, 120)이 서로 데이터를 주고 받기 위한 링크(LINK)를 설정하는 링크 업 프로세스를 실행할 수 있다. 앞서 언급한 바와 같이, 제1 및 제2 반도체 장치들(110, 120) 사이에서 데이터가 전송되는 경로들이 링크(LINK)로 정의될 수 있다. 링크(LINK)는 송신 경로 및 수신 경로의 쌍(pair)을 하나 이상 포함하며, 여기서 하나의 쌍을 이루는 송신 경로와 수신 경로는 "레인(lane)"으로 정의될 수 있다. 또한 하나의 링크(LINK)를 구성하는 레인(lane)의 개수는 "링크 폭"으로 정의될 수 있다.
제1 반도체 장치(110)의 LTSSM(115) 및 제2 반도체 장치(120)의 LTSSM(125) 중 적어도 하나는, 제1 및 제2 반도체 장치들(110, 120) 사이에서 링크(LINK)를 설정하기 위해, 링크 번호 협상(Link number negotiation)과 레인 번호 협상(Lane number negotiation)을 수행하여, 레인들이 정상적으로 동작하는지 여부를 판단할 수 있으며, 데이터 전송에 이용할 레인들을 선택하여 링크(LINK)를 설정하고, 링크 폭을 결정할 수도 있다.
링크 업이 완료되면, 제1 및 제2 반도체 장치들(110, 120)은 서로 데이터를 주고 받을 수 있다. 앞서 설명한 바와 같이, 물리 계층들(114, 124) 사이에서 주고 받는 데이터 패킷은 실제 전송하고자 하는 데이터 외에, 헤더 정보, ECRC 정보, 시퀀스 번호 정보, LCRC 정보 등을 더 포함할 수 있다.
LTSSM(115, 125)이 링크 업을 실행하기에 앞서, 물리 계층들(114, 124) 각각에서 PHY 파라미터들이 조정될 수 있다. PHY 파라미터들은, 송신기(TX)가 출력하거나 수신기(RX)가 수신하는 신호의 레벨, 슬루율(Slew Rate), 주파수 중 적어도 하나에 영향을 주는 파라미터들일 수 있다.
PHY 파라미터들은 PCIe 명세에서 정의될 수 있으며, 일반적으로 PHY 파라미터들은 제1 및 제2 반도체 장치들(110, 120)과 같이 PCIe 인터페이스를 지원하는 장치가 출하되기 이전에 미리 설정될 수 있다. 다만, PCIe 인터페이스에 연결되는 장치의 종류나, 장치의 동작 환경, 예를 들어 온도 등에 의해 최적의 퍼포먼스로 PCIe 인터페이스를 제어하는 데에 필요한 PHY 파라미터들이 달라질 수 있다. PHY 파라미터들이 미리 설정되는 경우에는, 상기와 같은 다양한 조건에 대응하기 어려울 수 있다.
본 발명의 일 실시예에서는, PHY 파라미터들을 변경할 수 있는 캘리브레이션 기능이 PCIe 인터페이스를 지원하는 장치에 탑재될 수 있다. 일례로, PCIe 컨트롤러는, 캘리브레이션 기능을 실행하여 PHY 파라미터들 중 적어도 하나를 변경하는 한편, 변경된 PHY 파라미터들을 이용하여 링크(LINK)를 설정하는 링크 업 프로세스를 다시 실행할 수 있다.
일 실시예에서, PCIe 컨트롤러는, 링크 업 프로세스를 다시 실행하는 과정에서, 메모리 등에 미리 저장된 기준 순서를 참조할 수 있다. 기준 순서는, 링크가 정상적으로 설정되고 링크 업이 종료될 때까지, LTSSM(115, 125)이 실행한 상태들을 순서대로 포함할 수 있다. 링크 업이 종료된 경우라도, 링크 업이 종료될 때까지 LTSSM(115, 125)이 실행한 상태들이 순서가 기준 순서와 다르면, PCIe 컨트롤러는 PHY 파라미터들 중 적어도 하나를 조정하고, LTSSM(115, 125)을 이용하여 링크 업을 다시 실행할 수 있다.
일례로 PCIe 컨트롤러는, 복수의 기준 순서들 중 하나를 선택하여 참조할 수 있다. PCIe 컨트롤러와 함께 반도체 장치에 포함되는 메모리에는, PCIe 인터페이스를 통해 연결되는 외부 장치의 종류, 외부 온도, 및 전원의 크기 등과 같은 주변 환경 요소들 중 적어도 하나에 따라 구분되는 복수의 기준 순서들이 저장될 수 있다. PCIe 컨트롤러는, PHY 파라미터들을 조정하는 캘리브레이션의 동작 시점에서의 주변 환경 요소들을 고려하여, 복수의 기준 순서들 중 최적의 기준 순서를 선택하고, 이를 참조하여 링크 업을 실행할 수 있다.
LTSSM(115, 125)이 실행한 상태들이 순서가 기준 순서와 일치하면, PCIe 컨트롤러는 LTSSM(115, 125)이 복구 상태에서 설정한 프리셋이 유효한지 여부를 판정할 수 있다. PCIe 컨트롤러는 설정된 프리셋을 기준값 및 프리셋 히스토리와 비교할 수 있다. PCIe 컨트롤러는 복구 정책에 기초하여 비교를 수행할 수 있다. PCIe 컨트롤러는 설정된 프리셋이 유효하지 않으면 PHY 파라미터들 중 적어도 하나를 조정하고, 설정된 프리셋이 유효하면 캘리브레이션 기능을 종료할 수 있다.
앞서 설명한 바와 같이, PHY 파라미터들이 변경됨으로써, 링크(LINK)를 통해 전송되는 신호의 전압 레벨, 슬루율, 주파수 등이 달라질 수 있다. 따라서, 본 발명의 일 실시예에서는, PCIe 인터페이스를 포함하는 장치가 출하되고, 실제 사용자가 장치를 이용 중인 경우에도, 다양한 동작 환경에 최적화된 설정으로 PHY 파라미터들을 조정할 수 있으며, 최적의 퍼포먼스로 PCIe 인터페이스를 제어할 수 있다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 반도체 장치를 포함하는 시스템의 동작을 설명하기 위해 제공되는 도면들이다.
도 4 및 도 5를 참조하면, 본 발명의 일 실시예에 따른 시스템(200)은 제1 반도체 장치(210)와 제2 반도체 장치(220)를 포함할 수 있다. 제1 반도체 장치(210)는 제1 송신기(TX1)와 제1 수신기(RX1)를 포함하고, 제2 반도체 장치(220)는 제2 송신기(TX2)와 제2 수신기(RX2)를 포함할 수 있다.
제1 송신기(TX1)에 연결된 제1 송신 포트(211)와 제2 수신기(RX2)에 연결된 제2 수신 포트(221) 사이의 제1 전송 경로에서 제1 데이터 신호(DATA0)가 전송될 수 있다. 한편, 제2 송신기(TX2)에 연결된 제2 송신 포트(222)와 제1 수신기(RX1)에 연결된 제1 수신 포트(211) 사이의 제2 전송 경로에서 제2 데이터 신호(DATA1)가 전송될 수 있다. 제1 전송 경로와 제2 전송 경로는 하나의 레인에 포함되며, 도 4 및 도 5에 도시한 바와 같이 한 쌍의 차동 신호를 전송하기 위한 경로를 제공할 수 있다.
제1 및 제2 데이터 신호들(DATA0, DATA1) 각각은 도 4 및 도 5에 도시한 바와 같은 파형을 가질 수 있다. 예를 들어, 제1 및 제2 데이터 신호들(DATA0, DATA1)이 갖는 최대 전압 레벨 및 최소 전압 레벨에 의해 결정되는 진폭(△V1, △V2), 및 제1 및 제2 데이터 신호들(DATA0, DATA1)의 전압 증가/감소 속도를 나타낸 슬루율 등이 도 4에 도시한 일 실시예와 도 5에 도시한 일 실시예에서 서로 다를 수 있다.
이는, 제1 및 제2 반도체 장치들(210, 220) 중 적어도 하나의 LTSSM이 링크 업 프로세스를 완료할 때 설정한 PHY 파라미터들이, 도 4에 도시한 일 실시예와 도 5에 도시한 일 실시예에서 서로 다르기 때문일 수 있다. 제1 및 제2 반도체 장치들(210, 220) 중 적어도 하나는, 사용자로부터의 BISC 요청을 수신하거나, 소정의 시간이 경과하거나, 또는 전원이 차단되고 새로 전원을 공급받은 경우에, PHY 파라미터들 중 적어도 하나를 변경하며 링크 업 프로세스를 다시 실행할 수 있다.
따라서, 시스템(200)을 구성하는 제1 및 제2 반도체 장치들(210, 220)에 변화가 없는 경우에도, 서로 다른 시점들에서 PHY 파라미터들 중 적어도 하나가 서로 다른 값을 가질 수 있다. 또한, PHY 파라미터들 중 적어도 하나가 서로 다른 값으로 설정됨에 따라, 같은 레인을 통해 전송되는 데이터 신호들(DATA0, DATA1) 중 적어도 하나가 도 4 및 도 5에 도시한 바와 같이 서로 다른 파형을 가질 수 있다.
제1 반도체 장치(210)는 링크 업 프로세스에서 제1 송신기(TX1)에 대해 설정한 프리셋을 검증할 수 있다. 제1 반도체 장치(210)는 복구 정책, 기준값, 및 프리셋 히스토리 중 적어도 하나에 기초하여 검증을 수행할 수 있다. 제1 반도체 장치(210)는 검증에 실패하면 PHY 파라미터들 중 적어도 하나를 변경하며 링크 업 프로세스를 다시 실행하고, 검증에 성공하면 링크 업 프로세스를 종료할 수 있다. 마찬가지로, 제2 반도체 장치(220)는 링크 업 프로세스에서 제2 송신기(TX2)에 대해 설정한 프리셋을 검증할 수 있다.
도 6은 본 발명의 일 실시예에 따른 송신 등화기의 동작을 설명하기 위해 제공되는 도면들이다.
도 6을 참조하면, 일 실시예에 따른 송신 등화기는 FIR(Finite Impulse Response) 필터(300)를 포함할 수 있다. FIR 필터(300)는 프리커서, 현재 커서, 및 포스트 커서에 대한 ISI(Inter Symbol Interference)를 완화 또는 제거하기 위한 3탭(3-tap) FIR 필터일 수 있다.
FIR 필터(300)는 신호(DIN)에 등화(equalization)를 수행하여 ISI가 완화 또는 제거된 신호(DEQ)를 출력할 수 있다. FIR 필터(300)의 등화 동작은 채널의 손실 등을 보상하는 사전 왜곡으로 이해될 수 있다. 예를 들어, FIR 필터(300)는 신호(DIN)에 프리슈트(preshoot) 및 디앰퍼시스(de-emphasis) 중 적어도 하나를 수행할 수 있다. 프리슈트는 비트열에서 마지막 비트를 강조하는 동작을 의미하고, 디앰퍼시스는 비트열에서 첫번째 비트를 강조하는 동작을 의미할 수 있다. 수신기는 신호(DEQ)에 응답하여 피드백 신호를 송신기에 전송할 수 있다. 송신기는 피드백 신호에 기초하여 프리셋을 설정할 수 있다. 프리셋은 등화에 영향을 미치는 프리커서에 대한 계수, 현재 커서에 대한 계수, 및 포스트커서에 대한 계수를 포함할 수 있다. FIR 필터(300)는 설정된 계수에 기초하여 신호(DIN)에 등화를 수행할 수 있다.
FIR 필터(300)는 지연 회로들(delay circuit(DLC); 311 및 312), 신호 처리 회로들(321~323), 및 합산기(summer; 331)를 포함할 수 있다. 지연 회로들(311 및 312)은 입력 신호를 1 UI(unit interval) 만큼 지연시킬 수 있다. 1 UI는 커서들 간의 간격에 대응할 수 있다. 즉, 현재 커서와 프리커서 간의 간격은 1 UI이고, 현재 커서와 포스트커서 간의 간격은 1 UI 일 수 있다. 지연 회로(311)는 신호(DIN)를 지연시킨 신호(DL1)를 출력하고, 지연 회로(312)는 신호(DL1)를 지연시킨 신호(DL2)를 출력할 수 있다.
신호 처리 회로들(321~323)은 계수들(c-1, c0, c1)에 기초하여 입력 신호를 처리할 수 있다. 예를 들어, 신호 처리 회로들(321~323)은 곱셈기이고, 입력 신호에 계수들(c-1, c0, c1)을 곱할 수 있다. 계수들(c-1, c0, c1)은 링크 업 프로세스 동안 복구 상태에서 설정되는 프리셋에 기초하여 결정될 수 있다. 프리셋 및 프리셋에 대응하는 계수들(c-1, c0, c1)은 PCIe 명세에 정의되어 있다. 계수(c-1)는 프리커서의 계수이고, 계수(c0)는 현재 커서의 계수이고, 계수(c1)는 포스트커서의 계수일 수 있다. 계수들(c-1, c0, c1)의 합은 동일할 수 있다. 예를 들어, 계수들(c-1, c0, c1)의 합은 1일 수 있다. PCIe 명세는 프리셋 및 프리셋에 대응하는 계수들(c-1 및 c1)의 값을 정의하고, 계수(c0)의 값은 계수들(c-1 및 c1)의 값에 기초하여 결정될 수 있다. 신호 처리 회로들(321~323)은 계수들(c-1, c0, c1)에 기초하여 처리된 신호를 합산기(331)에 출력할 수 있다.
합산기(331)는 신호 처리 회로들(321~323)의 출력 신호를 합산하여 신호(DEQ)를 출력할 수 있다. 신호(DEQ)는 신호(DIN)에 프리슈트 및 디앰퍼시스 중 적어도 하나가 수행된 신호일 수 있다. 수신기는 신호(DEQ)에 응답하여 송신기에 피드백 신호를 전송할 수 있다. 송신기는 피드백 신호에 기초하여 링크 업 프로세스를 수행할 수 있다. 마찬가지로, 수신기를 포함하는 반도체 장치는 도 6의 동작을 동일하게 수행하는 송신기를 더 포함할 수 있다.
도 7은 본 발명의 일 실시예에 따른 반도체 장치에 포함되는 LTSSM(Link Training and Status State Machine)을 간단하게 나타낸 도면이다.
LTSSM은, 앞서 설명한 바와 같이 링크를 구성하고 초기화하는 제어 프로세스인 링크 업 프로세스를 제공할 수 있다. LTSSM은 PCIe 인터페이스에서 링크 구성과 초기화 외에도, 패킷 전송 지원, 링크 오류 복구, 저전력 상태에서 PCIe 인터페이스의 재시작 기능 등을 수행할 수 있다.
일례로, LTSSM은 11개의 상태들(400-410)을 이동하며, 상기 언급한 기능을 수행할 수 있다. LTSSM은 물리 계층의 회로가 초기화되거나, 링크 계층으로부터 수신하는 명령에 응답하여 PCIe 인터페이스에 연결된 다른 외부 장치의 존재를 검출하는 검출 상태(Detect, 400)로 진입할 수 있다. 검출 상태(400)에서 LTSSM은 송신기와 연결된 수신기를 감지하고, 비트 락, 심볼 락, 및 레인 극성 등을 설정하는 폴링 상태(Polling, 401)로 이동할 수 있다. 일례로, LTSSM이 검출 상태(400)에서 폴링 상태(401)로 천이될 때, 수신기가 감지되지 않은 레인은 전기적 아이들(idle) 상태로 진입할 수 있다.
LTSSM이 구성 상태(Configuration, 402)로 이동하면, 데이터 레이트, 레인 번호, 링크 폭 등이 설정될 수 있다. 구성 상태(Configuration, 402)에서의 동작이 완료되면 LTSSM은 설정된 링크를 통해 데이터를 주고 받는 정상 동작 상태인 L0 상태(403)로 진입할 수 있다. LTSSM은 PCIe 인터페이스의 동작 상황에 따라, 전기적 아이들(idle)/대기 상태인 L0s 상태(404), 저전력 대기/슬립 상태인 L1 상태(405), 또는 오프 상태인 L2 상태(406) 등으로 이동할 수 있다.
또한, L0 상태(403)에서 동작하는 중에 오류가 발생하면, LTSSM은 복구 상태(Recovery, 407)로 진입할 수 있다. 또한 L1 상태(405)에서 L0 상태(403)로 복귀하기 위해서도, LTSSM이 복구 상태(407)로 이동할 수 있다. 복구 상태(407)에서 LTSSM은 송신기와 수신기가 주고 받는 트레이닝 시퀀스(training sequence)와 같은 데이터에 기초하여 비트 락, 심볼 락, 레인 간 스큐 제거 등의 기능을 실행하거나, 링크 속도를 바꿀 수 있다. 예를 들어, 복구 상태(407)에서 LTSSM은 Recovery.RcvrLock, Recovery.Equalization, Recovery.Speed, Recovery.RcvrCfg, Recovery.Idle 등의 서브 상태(substate)를 가지며, 서브 상태에서의 결과에 따라 검출 상태(400), 구성 상태(402), L0 상태(403), 루프백 상태(Loopback, 408), 핫 리셋 상태(Hot Reset, 409), 또는 비활성화 상태(Disabled, 410)에 진입할 수 있다. 복구 상태(407)의 서브 상태에 대해서는 도 8을 참조하여 후술한다. LTSSM은 Recovery.Equalization의 서브 상태에서 수신기와 트레이닝 시퀀스를 교환하여 등화를 최적화할 수 있다. LTSSM은 Recovery.Equalization에서 페이즈(phase)를 phase0에서 phase3까지 차례로 변경시키면서 프리셋을 설정하고 등화를 완료할 수 있다. phase0에서 phase3까지 각각의 페이즈는 등화 프로세스를 나타낼 수 있다.
루프백 상태(408)는 테스트를 위한 상태로, PCIe 인터페이스에 연결된 장치들이 주고 받는, 미리 정해진 순서로 정렬된 심볼 세트에서 루프백 비트의 값에 따라 LTSSM이 루프백 상태(408)로 진입할 수 있다. 루프백 상태(408)에서 수신기는 받은 패킷을 모두 동일하게 재전송할 수 있다.
핫 리셋 상태(409)에서 LTSSM은 링크를 리셋하는 기능을 수행할 수 있다. 비활성화 상태(410)에서는, LTSSM에 의해 수신기가 로우 임피던스 상태일 때 송신기가 전기적 아이들 상태로 전환될 수 있다.
링크를 구성하는 링크 업 프로세스에서, LTSSM은 11개의 상태들(400-410)을 소정의 순서대로 이동하며 앞서 설명한 기능들을 수행할 수 있다. 링크 업에 성공하면, 링크 업에 성공할 때까지 LTSSM이 상태들(400-410) 중에서 실제로 실행한 상태들과 그 실행 순서가, 기준 순서로 PCIe 컨트롤러의 내부 메모리 등에 저장될 수 있다.
본 발명의 일 실시예에서는, PCIe 컨트롤러가, 자체적으로 물리 계층의 PHY 파라미터들을 조정하는 캘리브레이션 동작을 실행할 수 있다. 캘리브레이션 동작이 실행되면, PCIe 컨트롤러는 조정한 PHY 파라미터들에 따라 링크를 구성하는 링크 업 프로세스를 다시 실행할 수 있다. PCIe 컨트롤러는, 조정한 PHY 파라미터들을 이용하여 링크 업에 성공하면, 링크 업이 완료될 때까지 LTSSM에서 실행한 상태들의 순서를 기준 순서와 비교할 수 있다.
링크 업이 완료될 때까지 LTSSM에서 실행한 상태들의 순서가 기준 순서와 일치하지 않으면, PCIe 컨트롤러는 PHY 파라미터들 중 적어도 하나를 다시 변경하고, 링크 업 프로세스를 다시 실행할 수 있다. 링크 업을 완료하기 위해 LTSSM이 실행한 상태들의 순서가 기준 순서와 일치할 때까지, PCIe 컨트롤러는 PHY 파라미터들 중 적어도 하나를 변경하며 링크 업을 반복 실행할 수 있다. 따라서, 현재 시점의 동작 환경 등에 최적화된 PHY 파라미터들로 링크를 구성할 수 있으며, PCIe 인터페이스의 성능을 향상시킬 수 있다.
링크 업이 완료될 때까지 LTSSM에서 실행한 상태들의 순서가 기준 순서와 일치하면, PCIe 컨트롤러는 복구 상태(407)의 Recovery.Equalization에서 설정한 프리셋을 검증할 수 있다. PCIe 컨트롤러는 복구 정책, 기준값, 및 프리셋 히스토리 중 적어도 하나에 기초하여 검증을 수행할 수 있다. PCIe 컨트롤러는 검증에 실패하면 PHY 파라미터들 중 적어도 하나를 다시 변경하고 링크 업 프로세스를 다시 실행할 수 있다. PCIe 컨트롤러는 검증에 성공하면 링크 업 프로세스를 종료할 수 있다.
도 8은 본 발명의 일 실시예에 따른 LTSSM의 복구 상태의 서브 상태를 설명하기 위해 제공되는 도면이다.
도 8을 참조하면, 일 실시예에 따른 LTSSM은 구성 상태, L0 상태, L0s 상태, L1 상태 등으로부터 복구 상태에 진입할 수 있다. LTSSM은 복구 상태에서, 복구 상태를 구성하는 서브 상태(501-505)들을 이동하며 복구 동작을 수행할 수 있다. LTSSM은 복구 동작을 완료하면 복구 결과에 따라 검출 상태, L0 상태, 루프백 상태, 핫 리셋 상태, 또는 비활성화 상태에 진입할 수 있다.
일 실시예에 따른 LTSSM은 복구 상태에 진입하면 Recovery.RcvrLock(501)에 진입할 수 있다. Recovery.RcvrLock(501)에서 LTSSM은 트레이닝 시퀀스를 수신하고 블록 정렬(block alignment)을 획득할 수 있다. LTSSM은 블록 정렬을 통해 연속된 비트들의 경계를 확인할 수 있다. Recovery.RcvrLock(501)에 진입하기 전의 상태(예를 들어, L0 상태, L1 상태, L0s 상태, 또는 Recovery.Speed(503))에 따라 블록 정렬의 시점은 상이할 수 있다.
LTSSM은 Recovery.Equalization(502)에서 페이즈를 phase0에서 phase3까지 차례로 변경시키면서 프리셋을 설정할 수 있다. PCIe 명세는 11개의 프리셋을 정의하고 있으며, 프리셋은 송신 등화기에서 사용되는, 프리슈트 및 디앰퍼시스에 영향을 미치는 계수들을 포함한다. 실시예에 따라 추가적인 프리셋이 정의되고 사용될 수 있다. LTSSM은 Recovery.Equalization(502)에서 설정되는 프리셋을 저장할 수 있다. 예를 들어, LTSSM은 복구 상태 동안 제1 프리셋, 제2 프리셋, 및 제3 프리셋의 순서로 프리셋을 설정하고, LTSSM은 최종 설정된 프리셋(예를 들어, 제3 프리셋)과 프리셋 히스토리를 저장할 수 있다. 프리셋 히스토리는 LTSSM의 프리셋 탐색 과정에서의 프리셋 변경 이력을 의미할 수 있다.
도 9 내지 도 11은 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면들이다.
도 9는, 본 발명의 일 실시예에 따른 반도체 장치 내부의 메모리에 저장된 기준 순서를 간단하게 나타낸 도면일 수 있다. 앞서 설명한 바와 같이 기준 순서는, 링크 업에 성공한 LTSSM이 상태들을 실행한 순서일 수 있으며, 반도체 장치 내부의 메모리, 예를 들어 LTSSM과 함께 PCIe 컨트롤러 내에 저장될 수 있다.
도 9를 참조하면, 메모리에 저장된 기준 순서는 검출 상태(S0), 폴링 상태(S1), 구성 상태(S2), L0 상태(S3), 복구 상태(S4), L0 상태(S5)를 순서대로 포함할 수 있다. 다시 말해, 도 9에 도시한 일 실시예에서, LTSSM은 루프백 상태, 핫 리셋 상태, 비활성화 상태 등으로의 진입 없이, 검출 상태(S0), 폴링 상태(S1), 구성 상태(S2), L0 상태(S3), 복구 상태(S4), L0 상태(S5)만을 순차적으로 실행하여 링크 업에 성공할 수 있다.
앞서 설명한 바와 같이, 반도체 장치의 PCIe 컨트롤러는 특정 조건이 충족되는 경우, PCIe 인터페이스의 PHY 파라미터들을 조정하는 캘리브레이션 동작을 시작할 수 있다. 일례로 PCIe 컨트롤러는, 사용자로부터 캘리브레이션 동작에 대한 요청을 수신하거나, 외부 장치와의 링크 업에 성공한 후 소정의 기준 시간이 경과하는 경우 등에 캘리브레이션 동작을 실행할 수 있다. 또한 PCIe 컨트롤러는, 전원이 새로 공급될 때마다 캘리브레이션 동작을 실행할 수도 있다.
도 10을 참조하면, 상기 조건들 중 하나가 달성되어 캘리브레이션 동작이 시작됨으로써, PCIe 컨트롤러가 PHY 파라미터들 중 적어도 하나를 변경할 수 있다. 또한 PCIe 컨트롤러는 변경된 PHY 파라미터들에 기초하여 링크 업 프로세스를 다시 실행할 수 있다. 도 10에 도시한 일 실시예에서, 링크 업 프로세스가 진행되는 동안, PCIe 컨트롤러의 LTSSM은 검출 상태(S10), 폴링 상태(S11), 구성 상태(S12), 복구 상태(S13), 구성 상태(S14), 및 L0 상태(15)를 순차적으로 실행할 수 있다.
일례로, LTSSM은 첫 번째로 진입한 구성 상태(S12)에서 레인 번호 할당, 레인들 간 스큐 제거 등의 작업 중 하나에 실패할 수 있다. 따라서, 복구 상태(S13)로 진입하여 비트 락, 심볼 락 등을 재설정하거나, 링크 속도를 바꿀 수 있다. 이후 두 번째로 진입한 구성 상태(S14)에서 레인 및 링크에 대한 구성이 완료될 수 있으며, L0 상태(15)로 천이할 수 있다.
다만, 도 10에 도시한 바와 같은 단계들을 거쳐 링크 업에 성공한 경우라 해도, PCIe 컨트롤러는 LTSSM을 이용하여 링크 업 프로세스를 다시 실행할 수 있다. 이는, 도 10에 도시한 일 실시예에서 LTSSM이 상태들을 실행한 순서가, 도 9에 도시한 기준 순서와 다르기 때문일 수 있다. 따라서, PCIe 컨트롤러는 PHY 파라미터들 중 적어도 하나를 조정하고, 링크 업 프로세스를 다시 실행할 수 있다.
PHY 파라미터들을 조정하고 링크 업 프로세스를 다시 실행한 결과, 도 11에 도시한 바와 같이, 검출 상태(S20), 폴링 상태(S21), 구성 상태(S22), L0 상태(S23), 복구 상태(S24), 및 L0 상태(S25)를 순서대로 실행하여 링크 업에 성공하면, PCIe 컨트롤러는 복구 상태(S24)에서 최종 설정된 프리셋과 프리셋 히스토리를 검증할 수 있다. PCIe 컨트롤러의 검증 동작은 도 12를 참조하여 후술한다. PCIe 컨트롤러는 검증 동작에 실패하면 PHY 파라미터들 중 적어도 하나를 조정하고, 링크 업 프로세스를 다시 실행할 수 있다. PCIe 컨트롤러는 검증 동작에 성공하면 캘리브레이션 동작을 종료할 수 있다.
도 9에서는 메모리에 저장된 기준 순서가 검출 상태(S0), 폴링 상태(S1), 구성 상태(S2), L0 상태(S3)를 순서대로 포함하는 것으로 도시하였으나, 실시예가 반드시 이에 한정되는 것은 아니고, 메모리에 저장된 기준 순서는 LTSSM의 상태들을 조합한 다양한 실시예가 가능할 수 있다.
도 12는 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 12를 참조하면, 본 발명의 일 실시예에 따른 송신 측 반도체 장치는 수신 측 반도체 장치와 트레이닝 시퀀스를 주고 받으면서 링크 업 프로세스를 수행할 수 있다. 송신 측 반도체 장치는 링크 업 프로세스 동안 사용되는 복수의 상태들 중 복구 상태에서 송신 등화기의 프리셋을 설정할 수 있다. 프리셋은 프리슈트 및 디앰퍼시스 중 적어도 하나에 영향을 미치는 계수들을 포함할 수 있다. 즉, 프리셋을 설정하는 동작은 계수들을 설정하는 동작으로 이해될 수 있다. 계수들은 프리커서에 대한 계수, 현재 커서에 대한 계수, 및 포스트커서에 대한 계수를 포함할 수 있다.
반도체 장치는 복구 상태를 구성하는 복수의 서브상태 중 등화 단계에서 프리셋을 결정할 수 있다(S1010). 반도체 장치는 최종 프리셋 및 프리셋 히스토리를 결정할 수 있다. 반도체 장치는 내부 메모리에 최종 프리셋 및 프리셋 히스토리를 저장할 수 있다. 예를 들어, 반도체 장치는 등화 단계에서 복수의 프리셋 중 제1 프리셋, 제2 프리셋, 및 제3 프리셋을 차례로 설정할 수 있다. 여기서, 반도체 장치는 제3 프리셋을 최종 프리셋으로 결정하고, 프리셋 설정 순서(즉, 제1 프리셋-> 제2 프리셋-> 제3 프리셋)를 프리셋 히스토리로 결정할 수 있다.
반도체 장치는 기준 프리셋(REF_PRESET) 및 기준 히스토리(REF_HISTORY)를 획득할 수 있다(S1020). 기준 프리셋(REF_PRESET) 및 기준 히스토리(REF_HISTORY)는 링크 업에 성공한 반도체 장치가 복구 상태에서 설정한 최종 프리셋 및 프리셋 히스토리로서, 내부 메모리에 저장되어 있을 수 있다.
반도체 장치는 기준 프리셋(REF_PRESET) 및 기준 히스토리(REF_HISTORY) 중 적어도 하나에 기초하여 프리셋을 검증할 수 있다(S1030). 일 실시예에서, 반도체 장치는 최종 프리셋이 기준 프리셋(REF_PRESET)과 일치하면 프리셋이 유효한 것으로 결정할 수 있다. 일 실시예에서, 반도체 장치는 프리셋 히스토리가 기준 히스토리(REF_HISTORY)와 일치하면 프리셋이 유효한 것으로 결정할 수 있다. 일 실시예에서, 반도체 장치는 최종 프리셋이 기준 프리셋(REF_PRESET)과 일치하고, 프리셋 히스토리가 기준 히스토리(REF_HISTORY)와 일치하면 프리셋이 유효한 것으로 결정할 수 있다. 반도체 장치는 프리셋이 유효하면 링크 업 프로세스를 종료할 수 있다.
반도체 장치는 프리셋이 유효하지 않으면 PHY 파라미터를 조정할 수 있다(S1040). 반도체 장치는 PHY 파라미터를 조정하고 링크 업 프로세스를 다시 실행할 수 있다. 반도체 장치는 조정된 PHY 파라미터에 기초하여 링크 업 프로세스의 복구 상태에서 프리셋을 결정할 수 있다(S1010).
도 13은 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 13을 참조하면, 본 발명의 일 실시예에 따른 송신 측 반도체 장치는 수신 측 반도체 장치와 트레이닝 시퀀스를 주고 받으면서 링크 업 프로세스를 수행할 수 있다. 송신 측 반도체 장치는 링크 업 프로세스 동안 사용되는 복수의 상태들 중 복구 상태에서 송신 등화기의 프리셋을 설정할 수 있다. 프리셋은 프리슈트 및 디앰퍼시스 중 적어도 하나에 영향을 미치는 계수들을 포함할 수 있다. 즉, 프리셋을 설정하는 동작은 계수들을 설정하는 동작으로 이해될 수 있다. 계수들은 프리커서에 대한 계수, 현재 커서에 대한 계수, 및 포스트커서에 대한 계수를 포함할 수 있다.
반도체 장치는 복구 상태에서 설정된 프리셋을 검증하기 위한 복구 정책을 결정할 수 있다(S1110). 일 실시예에서, 반도체 장치는 최초로 링크 업 프로세스를 수행할 때는 엄격한 복구 정책을 선택하고, 중간에 다시 링크 업 프로세스를 수행할 때는 비교적 느슨한 복구 정책을 선택할 수 있다. 반도체 장치는 오류 등의 이유로 다시 링크 업 프로세스를 수행할 수 있다. 일 실시예에서, 호스트와 같은 반도체 장치는 다른 복수의 반도체 장치와 연결되고, 복수의 반도체 장치에 대해 상이한 복구 정책을 결정할 수 있다. 예를 들어, 가속기에 대해서는 엄격한 복구 정책을 선택하고, 스토리지 장치에 대해서는 비교적 느슨한 복구 정책을 선택할 수 있다. 일 실시예에서, 반도체 장치는 사용자로부터의 복구 정책에 대한 요청에 응답하여 복구 정책을 결정할 수 있다. 사용자는 반도체 장치를 사용하면서 복구 정책에 대한 요청을 반도체 장치에 입력할 수 있다.
복구 정책은 정밀도, 수행 속도, 저장 크기, 오차 범위, 및 차이 정도 중 적어도 하나를 포함할 수 있다. 즉, 반도체 장치는 정밀도, 수행 속도, 저장 크기, 오차 범위, 및 차이 정도 중 적어도 하나에 기초하여 복구 정책을 결정할 수 있다. 정밀도는 복구 상태에서 설정되는 프리셋의 정밀도를 나타내고, 정밀도가 높을수록 엄격한 복구 정책을 의미할 수 있다. 수행 속도는 프리셋 검증을 수행하는 속도를 나타낼 수 있다. 저장 크기는 프리셋을 저장하는 크기를 나타내고, 저장 크기가 클수록 더 많은 프리셋 변경 이력을 저장할 수 있다. 이때, 수행 속도는 저장 크기와 연관될 수 있다. 저장 크기가 크면 검증 대상인 프리셋이 많다는 것이므로 수행 속도는 느릴 수 있다. 오차 범위는 저장된 프리셋 중 기준 프리셋과 일치하지 않는 프리셋의 비율 범위를 나타낼 수 있다. 차이 정도는 저장된 프리셋 히스토리가 기준 히스토리와 일치하지 않더라도 용인할 수 있는 정도를 나타낼 수 있다. 예를 들어, 프리셋 히스토리와 기준 히스토리는 프리셋 경로의 수, 세부 프리셋 경로 등의 차이가 있을 수 있다. 차이 정도는 경로의 수 또는 세부 프리셋 경로 중 용인할 수 있는 차이를 나타낼 수 있다. 예를 들어, 기준 히스토리는 P1->P2->P5->P9일 수 있다. 복구 상태에서 설정된 프리셋 히스토리가 P1->P2->P9인 경우 프리셋 경로의 수가 차이가 있는 것이고, 프리셋 히스토리가 P1->P2->P4->P9인 경우 세부 프리셋 경로가 차이가 있는 것이다. 반도체 장치가 복구 정책을 결정하는 실시예들에 대해서는 도 14 내지 도 17을 참조하여 후술한다.
반도체 장치는 복구 정책에 따라 여러 번의 복구 상태를 수행할 수 있다(S1120). 예를 들어, 반도체 장치는 제1 복구 정책을 선택하고 제1 복구 정책의 제1 저장 크기에 대응하는 복구 상태를 수행할 수 있다. 반도체 장치는 제1 복구 정책보다 느슨한 제2 복구 정책을 선택하고 제2 복구 정책의 제2 저장 크기에 대응하는 복구 상태를 수행할 수 있다. 제2 저장 크기는 제1 저장 크기보다 작을 수 있다. 즉, 반도체 장치는 복구 정책의 저장 크기에 대응하는 횟수만큼 복구 상태를 수행할 수 있다.
반도체 장치는 여러 번의 복구 상태에서 설정된 복수의 프리셋을 획득할 수 있다(S1130). 예를 들어, 반도체 장치는 링크 업에 성공하면 복구 상태에서 설정된 프리셋을 내부 메모리에 저장할 수 있다. 복구 상태가 여러 번 수행되면 내부 메모리에는 복수의 프리셋이 저장되어 있을 수 있다.
반도체 장치는 복구 정책에 기초하여 프리셋을 검증할 수 있다(S11140). 일 실시예에서, 반도체 장치는 복구 정책에 기초하여 최종 프리셋이 기준 프리셋(REF_PRESET)과 일치하면 프리셋이 유효한 것으로 결정할 수 있다. 일 실시예에서, 반도체 장치는 복구 정책에 기초하여 프리셋 히스토리가 기준 히스토리(REF_HISTORY)와 일치하면 프리셋이 유효한 것으로 결정할 수 있다. 일 실시예에서, 반도체 장치는 복구 정책에 기초하여 최종 프리셋이 기준 프리셋(REF_PRESET)과 일치하고, 프리셋 히스토리가 기준 히스토리(REF_HISTORY)와 일치하면 프리셋이 유효한 것으로 결정할 수 있다. 복구 정책은 시점, 반도체 장치와 연결되는 다른 장치의 종류, 사용자 요청 등에 따라 상이할 수 있다. 반도체 장치는 프리셋이 유효하면 링크 업 프로세스를 종료할 수 있다.
반도체 장치는 프리셋이 유효하지 않으면 PHY 파라미터를 조정할 수 있다(S1150). 반도체 장치는 PHY 파라미터를 조정하고 링크 업 프로세스를 다시 실행할 수 있다. 반도체 장치는 조정된 PHY 파라미터에 기초하여, 복구 정책에 따라 여러 번의 복구 상태를 수행할 수 있다(S1120).
도 14 내지 도 17은 일 실시예에 따른 복구 정책을 설명하기 위해 제공되는 도면들이다. 반도체 장치는 도 14 내지 도 17에 도시된 실시예들 중 어느 하나의 실시예에 기초하여 복구 정책을 결정할 수 있다.
도 14를 참조하면, 복수의 복구 정책은 제1 및 제2 복구 정책(POLICY1, POLICY2)을 포함할 수 있다. 제1 복구 정책(POLICY1)은 정밀도가 비교적 낮고, 제2 복구 정책(POLICY2)은 정밀도가 비교적 높을 수 있다. 제1 및 제2 복구 정책(POLICY1, POLICY2)은 동일한 저장 크기(SIZE1)를 갖고, 각각 오차 범위(RANGE1, RANGE2)를 가질 수 있다. 여기서, 오차 범위(RANGE1)는 오차 범위(RANGE2)보다 클 수 있다. 반도체 장치는 제1 복구 정책(POLICY1)을 선택하여 저장 크기(SIZE1)에 대응하는 프리셋들을 저장하고, 저장된 프리셋들이 유효한지 여부를 판정할 수 있다. 예를 들어, 반도체 장치는 최종 프리셋과 기준 프리셋을 비교하고, 프리셋 히스토리와 기준 히스토리를 비교할 수 있다. 반도체 장치는 비교 결과의 오차가 오차 범위(RANGE1) 내에 있으면 저장된 프리셋들이 유효한 것으로 결정할 수 있다. 마찬가지로, 반도체 장치는 제2 복구 정책(POLICY2)을 선택하고 오차 범위(RANGE2)에 기초하여, 프리셋들이 유효한지 여부를 판정할 수 있다. 오차 범위(RANGE1)는 오차 범위(RANGE2)보다 크므로, 제1 복구 정책(POLICY1)의 정밀도가 제2 복구 정책(POLICY2)의 정밀도보다 낮을 수 있다.
도 15를 참조하면, 복수의 복구 정책은 제1 및 제2 복구 정책(POLICY1, POLICY2)을 포함할 수 있다. 제1 복구 정책(POLICY1)은 정밀도가 비교적 낮고 수행 속도는 비교적 빠를 수 있다. 제2 복구 정책(POLICY2)은 정밀도가 비교적 높고 수행 속도는 비교적 느릴 수 있다. 제1 및 제2 복구 정책(POLICY1, POLICY2)은 각각 저장 크기(SIZE2, SIZE3)를 갖고, 동일한 오차 범위(RANGE3)를 가질 수 있다. 여기서, 저장 크기(SIZE2)는 저장 크기(SIZE3)보다 작을 수 있다.
반도체 장치는 제1 복구 정책(POLICY1)을 선택하여 저장 크기(SIZE2)에 대응하는 프리셋들을 저장하고, 저장된 프리셋들이 유효한지 여부를 판정할 수 있다. 예를 들어, 반도체 장치는 최종 프리셋과 기준 프리셋을 비교하고, 프리셋 히스토리와 기준 히스토리를 비교할 수 있다. 반도체 장치는 비교 결과의 오차가 오차 범위(RANGE3) 내에 있으면 저장된 프리셋들이 유효한 것으로 결정할 수 있다. 마찬가지로, 반도체 장치는 제2 복구 정책(POLICY2)을 선택하고 저장 크기(SIZE3)에 기초하여 프리셋들을 저장할 수 있다. 반도체 장치는 오차 범위(RANGE3)에 기초하여 프리셋들이 유효한지 여부를 판정할 수 있다.
저장 크기(SIZE2)는 저장 크기(SIZE3)보다 작으므로 오차 범위(RANGE3)가 동일하더라도, 제1 복구 정책(POLICY1)의 수행 속도는 제2 복구 정책(POLICY2)의 수행 속도보다 빠를 수 있다. 또한, 제1 복구 정책(POLICY1)의 검증 대상 프리셋의 수가 제2 복구 정책(POLICY2)의 검증 대상 프리셋의 수보다 작으므로, 제1 복구 정책(POLICY1)의 정밀도는 제2 복구 정책(POLICY2)의 정밀도보다 낮을 수 있다.
도 16을 참조하면, 복수의 복구 정책은 제1 내지 제3 복구 정책(POLICY1~POLICY3)을 포함할 수 있다. 제1 복구 정책(POLICY1)은 정밀도가 비교적 낮고 수행 속도는 비교적 빠를 수 있다. 제3 복구 정책(POLICY3)은 정밀도가 비교적 높고 수행 속도는 비교적 느리며, 제2 복구 정책(POLICY2)은 제1 복구 정책(POLICY1)과 제3 복구 정책(POLICY3) 사이의 정밀도와 수행 속도를 가질 수 있다. 제1 내지 제3 복구 정책(POLICY1~POLICY3)은 각각 저장 크기(SIZE1~SIZE3) 및 오차 범위(RANGE1~RANGE3)를 가질 수 있다. 여기서, 저장 크기(SIZE4)는 저장 크기(SIZE5)보다 작고, 저장 크기(SIZE5)는 저장 크기(SIZE6)보다 작을 수 있다. 오차 범위(RANGE4)는 오차 범위(RANGE5)보다 크고, 오차 범위(RANGE5)는 오차 범위(RANGE6)보다 클 수 있다.
반도체 장치는 제1 복구 정책(POLICY1)을 선택하여 저장 크기(SIZE4)에 대응하는 프리셋들을 저장하고, 저장된 프리셋들이 유효한지 여부를 판정할 수 있다. 예를 들어, 반도체 장치는 최종 프리셋과 기준 프리셋을 비교하고, 프리셋 히스토리와 기준 히스토리를 비교할 수 있다. 반도체 장치는 비교 결과의 오차가 오차 범위(RANGE4) 내에 있으면 저장된 프리셋들이 유효한 것으로 결정할 수 있다. 마찬가지로, 반도체 장치가 제2 복구 정책(POLICY2) 또는 제3 복구 정책(POLICY3)을 선택하는 경우에도 유사한 설명이 적용될 수 있다.
저장 크기(SIZE4)는 저장 크기(SIZE5)보다 작고 오차 범위(RANGE4)는 오차 범위(RANGE5)보다 크므로, 제1 복구 정책(POLICY1)의 수행 속도는 제2 복구 정책(POLICY2)의 수행 속도보다 빠르고 제1 복구 정책(POLICY1)의 정밀도는 제2 복구 정책(POLICY2)의 정밀도보다 낮을 수 있다. 마찬가지로, 제2 복구 정책(POLICY2)의 수행 속도는 제3 복구 정책(POLICY3)의 수행 속도보다 빠르고 제2 복구 정책(POLICY2)의 정밀도는 제3 복구 정책(POLICY3)의 정밀도보다 낮을 수 있다.
도 17을 참조하면, 복수의 복구 정책은 제1 내지 제3 복구 정책(POLICY1~POLICY3)을 포함할 수 있다. 제1 복구 정책(POLICY1)은 정밀도가 비교적 낮고 수행 속도는 비교적 빠를 수 있다. 제3 복구 정책(POLICY3)은 정밀도가 비교적 높고 수행 속도는 비교적 느리며, 제2 복구 정책(POLICY2)은 제1 복구 정책(POLICY1)과 제3 복구 정책(POLICY3) 사이의 정밀도와 수행 속도를 가질 수 있다. 제1 내지 제3 복구 정책(POLICY1~POLICY3)은 각각 저장 크기(SIZE7~SIZE9), 오차 범위(RANGE7~RANGE9), 및 차이 정도(DIFF1~DIFF3)를 가질 수 있다. 여기서, 저장 크기(SIZE7)는 저장 크기(SIZE8)보다 작고, 저장 크기(SIZE8)는 저장 크기(SIZE9)보다 작을 수 있다. 오차 범위(RANGE7)는 오차 범위(RANGE8)보다 크고, 오차 범위(RANGE8)는 오차 범위(RANGE9)보다 클 수 있다. 차이 정도(DIFF1)는 차이 정도(DIFF2)보다 크고, 차이 정도(DIFF2)는 차이 정도(DIFF3)보다 클 수 있다. 예를 들어, 차이 정도(DIFF1)는 프리셋 히스토리와 기준 히스토리 사이의 차이를 용인할 수 있다. 차이 정도(DIFF2)는 프리셋 히스토리와 기준 히스토리 사이의 차이 중 프리셋 경로의 수의 차이 또는 세부 프리셋 경로의 차이를 용인할 수 있다. 차이 정도(DIFF3)는 어떠한 차이도 용인하지 않을 수 있다. 즉, 차이 정도(DIFF1)는 최종 프리셋과 기준 프리셋의 일치를 요구하고, 차이 정도(DIFF3)는 최종 프리셋과 기준 프리셋의 일치 및 프리셋 히스토리와 기준 히스토리의 일치를 요구할 수 있다.
반도체 장치는 제1 복구 정책(POLICY1)을 선택하여 저장 크기(SIZE7)에 대응하는 프리셋들을 저장하고, 저장된 프리셋들이 유효한지 여부를 판정할 수 있다. 예를 들어, 반도체 장치는 차이 정도(DIFF1)에 기초하여 최종 프리셋과 기준 프리셋을 비교할 수 있다. 반도체 장치는 비교 결과의 오차가 오차 범위(RANGE7) 내에 있으면 저장된 프리셋들이 유효한 것으로 결정할 수 있다.
반도체 장치는 제2 복구 정책(POLICY2)을 선택하여 저장 크기(SIZE8)에 대응하는 프리셋들을 저장하고, 저장된 프리셋들이 유효한지 여부를 판정할 수 있다. 예를 들어, 반도체 장치는 차이 정도(DIFF2)에 기초하여 최종 프리셋과 기준 프리셋을 비교하고, 프리셋 히스토리와 기준 히스토리를 비교할 수 있다. 반도체 장치는 비교 결과의 오차가 오차 범위(RANGE8) 내에 있으면 저장된 프리셋들이 유효한 것으로 결정할 수 있다. 마찬가지로, 반도체 장치가 제3 복구 정책(POLICY3)을 선택하는 경우에도 유사한 설명이 적용될 수 있다.
저장 크기(SIZE7)는 저장 크기(SIZE8)보다 작고 오차 범위(RANGE7)는 오차 범위(RANGE8)보다 크고 차이 정도(DIFF1)는 차이 정도(DIFF2)보다 크므로, 제1 복구 정책(POLICY1)의 수행 속도는 제2 복구 정책(POLICY2)의 수행 속도보다 빠르고 제1 복구 정책(POLICY1)의 정밀도는 제2 복구 정책(POLICY2)의 정밀도보다 낮을 수 있다. 마찬가지로, 제2 복구 정책(POLICY2)의 수행 속도는 제3 복구 정책(POLICY3)의 수행 속도보다 빠르고 제2 복구 정책(POLICY2)의 정밀도는 제3 복구 정책(POLICY3)의 정밀도보다 낮을 수 있다.
도 14 내지 도 17에서는 복수의 복구 정책이 두 개 또는 세 개의 복구 정책을 포함하는 것으로 도시하였으나, 실시예가 반드시 이에 한정되는 것은 아니고, 복수의 복구 정책은 상이한 정밀도, 수행 속도, 저장 크기, 오차 범위, 또는 차이 정도를 갖는 네 개 이상의 복구 정책을 포함하는 것으로 구현될 수 있다.
도 18은 본 발명의 일 실시예에 따른 반도체 장치의 동작을 설명하기 위해 제공되는 도면이다.
도 18을 참조하면, 본 발명의 일 실시예에 따른 송신 측 반도체 장치는 수신 측 반도체 장치와 트레이닝 시퀀스를 주고 받으면서 링크 업 프로세스를 수행할 수 있다. 송신 측 반도체 장치는 링크 업 프로세스 동안 사용되는 복수의 상태들 중 복구 상태에서 송신 등화기의 프리셋을 설정할 수 있다. 프리셋은 프리슈트 및 디앰퍼시스 중 적어도 하나에 영향을 미치는 계수들을 포함할 수 있다. 즉, 프리셋을 설정하는 동작은 계수들을 설정하는 동작으로 이해될 수 있다. 계수들은 프리커서에 대한 계수, 현재 커서에 대한 계수, 및 포스트커서에 대한 계수를 포함할 수 있다.
반도체 장치는 PHY 파라미터를 설정할 수 있다(S1210). PHY 파라미터는 송신기와 수신기가 연결되었을 때 전기적인 안정 상태를 유지하기 위해 반도체 장치의 물리 계층에서 설정되는 파라미터일 수 있다. 예를 들어, 반도체 장치는 초기에 전원이 공급되거나 또는 리셋(reset)되면 미리 결정된 값으로 PHY 파라미터를 설정할 수 있다.
반도체 장치는 설정된 PHY 파라미터에 기초하여 링크 업 프로세스를 개시할 수 있다(S1220). 예를 들어, 반도체 장치의 LTSSM은 복수의 포트에 복수의 레인을 설정하는 링크 업 프로세스를 실행할 수 있다. LTSSM은 링크 업 프로세스에서 상태들을 변경하고, 변경된 상태들을 저장할 수 있다.
반도체 장치는 LTSSM이 저장한 상태들이 기준 순서(REF_ORDER)와 일치하는지 여부를 판정할 수 있다(S1230). 링크 업에 성공한 LTSSM은 상태들을 실행한 순서를 기준 순서(REF_ORDER)로서 내부 메모리(예를 들어, 레지스터)에 저장하고 있을 수 있다. 반도체 장치는 내부 메모리로부터 기준 순서(REF_ORDER)를 리드하고 현재 링크 업 프로세스에서 저장된 상태들과 기준 순서(REF_ORDER)를 비교할 수 있다.
실시예에 따라, 기준 순서(REF_ORDER)는 각각의 상태들을 구성하는 서브 상태들의 실행 순서를 더 포함할 수 있다. 검출 상태, 폴링 상태, 구성 상태, 복구 상태 각각은 적어도 두 개의 서브 상태를 포함하고, 기준 순서(REF_ORDER)는 서브 상태들에 대한 기준 순서를 포함할 수 있다. 예를 들어, 기준 순서(REF_ORDER)는 복구 상태에서 Recovery.RcvrLock-> Recovery.Equalization-> Recovery.Speed-> Recovery.RcvrLock-> Recovery.RcvrCfg-> Recovery.Idle-> L0 상태를 기준 순서로서 포함할 수 있다. 반도체 장치는 LTSSM이 실행한 상태들의 순서 및 서브 상태들의 순서가 모두 기준 순서(REF_ORDER)와 일치하는 경우 단계(S1240)로 진행할 수 있다. 반도체 장치는 LTSSM이 저장한 상태들이 기준 순서(REF_ORDER)와 일치하지 않으면 PHY 파라미터를 다시 설정할 수 있다(S1210).
반도체 장치는 LTSSM이 저장한 상태들이 기준 순서(REF_ORDER)와 일치하면, 복구 상태 동안 설정되는 프리셋을 획득할 수 있다(S1240). LTSSM은 상태들 중 복구 상태의 등화 단계에서 송신 등화기에 프리셋을 설정할 수 있다. 반도체 장치는 LTSSM이 설정한 최종 프리셋 및 프리셋 히스토리를 획득할 수 있다. 예를 들어, LTSSM은 등화 단계에서 P2->P4->P10->P5->P7로 프리셋을 설정하고, LTSSM이 저장한 상태들이 기준 순서(REF_ORDER)와 일치하면 반도체 장치는 최종 프리셋인 P7과 프리셋 히스토리 P2->P4->P10->P5->P7을 획득할 수 있다.
반도체 장치는 프리셋이 유효한지 여부를 판정할 수 있다(S1250). 링크 업에 성공한 LTSSM은 복구 상태에서 설정한 프리셋 값과 프리셋 히스토리를 각각 기준값과 기준 히스토리로서 내부 메모리에 저장하고 있을 수 있다. 예를 들어, 기준값은 P7이고, 기준 히스토리는 P2->P4->P9->P5->P7일 수 있다. 반도체 장치는 내부 메모리로부터 프리셋 값과 기준 히스토리를 리드하고 현재 링크 업 프로세스에서 저장된 최종 프리셋 및 프리셋 히스토리를 프리셋 값 및 기준 히스토리와 비교할 수 있다.
일 실시예에서, 반도체 장치는 복구 정책에 따라 프리셋의 유효성을 판정할 수 있다. 복구 정책은 정밀도, 히스토리 크기, 허용 오차 범위, 차이 정도, 및 수행 속도 중 적어도 하나에 대한 정책을 포함할 수 있다. 반도체 장치는 사용자 요청에 응답하여 복구 정책을 선택하거나, 연결되는 다른 반도체 장치의 종류에 따라 상이한 복구 정책을 선택하거나, 또는 시점에 따라 상이한 복구 정책을 선택할 수 있다. 일 실시예에서, 반도체 장치는 최초로 링크 업 프로세스를 수행할 때는 엄격한 복구 정책을 선택하고, 중간에 다시 링크 업 프로세스를 수행할 때는 비교적 느슨한 복구 정책을 선택할 수 있다. 반도체 장치는 오류 등의 이유로 다시 링크 업 프로세스를 수행할 수 있다. 일 실시예에서, 호스트와 같은 반도체 장치는 다른 복수의 반도체 장치와 연결되고, 복수의 반도체 장치에 대해 상이한 복구 정책을 결정할 수 있다. 예를 들어, 가속기에 대해서는 엄격한 복구 정책을 선택하고, 스토리지 장치에 대해서는 비교적 느슨한 복구 정책을 선택할 수 있다.
반도체 장치는 복구 정책에 기초하여 비교 결과가 완전하게 일치하는 경우에만 프리셋이 유효한 것으로 판정하거나, 또는 복구 정책에 기초하여 비교 결과가 완전하게 일치하지는 않지만 유사한 경우까지 프리셋이 유효한 것으로 판정할 수 있다. 즉, 반도체 장치는 엄격한 복구 정책에 기초하여 최종 프리셋(P7)과 기준값(P7)은 일치하지만 프리셋 히스토리(P2->P4->P10->P5->P7)와 기준 히스토리(P2->P4->P9->P5->P7)는 일치하지 않으므로 프리셋이 유효하지 않은 것으로 판정할 수 있다. 반면에, 반도체 장치는 비교적 느슨한 복구 정책에 기초하여 최종 프리셋(P7)과 기준값(P7)이 일치하고 프리셋 히스토리(P2->P4->P10->P5->P7)와 기준 히스토리(P2->P4->P9->P5->P7)가 차이 정도가 용인할 수 있는 정도이므로 프리셋이 유효한 것으로 판정할 수 있다.
반도체 장치는 프리셋이 유효하지 않은 것으로 판정하면 PHY 파라미터를 다시 설정할 수 있다(S1210). 즉, 반도체 장치는 PHY 파라미터를 다시 설정하고 링크 업 프로세스를 다시 실행할 수 있다. 반도체 장치는 프리셋이 유효한 것으로 판정하면 링크 업 프로세스를 종료할 수 있다.
도 19는 일 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 19는 양방향 통신을 수행하는 시스템을 나타낸다. 도 19를 참조하면, 전자 시스템(1000)은 전자 장치들(1100 및 1200)을 포함할 수 있다. 실시예들에 따라서, 전자 장치들(1100 및 1200) 각각은 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 웨어러블(wearable) 장치, 비디오 게임기(video game console), 가전기기, 의료기기 등과 같은 다양한 전자 장치 중 하나로 구현될 수 있다.
그러나, 본 발명의 실시예들은 여기에 한정되지 않고, 다른 실시예들에서 전자 시스템(1000)이 단일의 전자 장치로 구현될 수 있다. 이러한 실시예들에서, 전자 장치들(1100 및 1200) 각각은 단일의 전자 장치에 포함되는 구성요소 또는 IP(Intellectual Property)일 수 있고, 회로, 모듈, 칩, 및/또는 패키지 수준의 개체로 구현될 수 있다. 시스템 및 장치라는 용어들은 더 나은 이해를 가능하게 하기 위해 제공되고, 본 발명의 실시예들을 한정하는 것은 아니다.
전자 장치들(1100 및 1200)은 서로 통신하며 통신 채널들(1310 및 1320)을 통해 데이터/신호들을 교환할 수 있다. 통신 채널들(1310 및 1320) 각각은 데이터/신호들을 전달하기 위해 도전성 물질을 포함할 수 있다. 예로서, 통신 채널들(1310 및 1320) 각각은 PCB(Printed Circuit Board) 상의 트레이스 패턴(Trace Pattern), 케이블(Cable)의 도선, 커넥터(Connector)의 금속 핀/패드 등으로 구현될 수 있다. 도 19에는 2개의 단방향 통신 채널들(1310 및 1320)이 도시되어 있으나, 실시예들에 따라서, 2개의 단방향 통신 채널들(1310 및 1320)은 1개의 양방향 통신 채널로 통합될 수 있다.
전자 장치(1100)는 자신의 고유 기능을 수행하는 내부 회로(INT1), 직병렬화기(Serializer/Deserializer)(SEDES1), 송신 회로(TX1) 및 수신 회로(RX1)를 포함할 수 있다. 전자 장치(1200)는 자신의 고유 기능을 수행하는 내부 회로(INT2), 직병렬화기(SEDES2), 송신 회로(TX2) 및 수신 회로(RX2)를 포함할 수 있다.
내부 회로들(INT1 및 INT2)은 각각 전자 장치들(1100 및 1200)의 고유의 기능들을 제공하기 위해 동작할 수 있다. 예로서, 내부 회로들(INT1 및 INT2)은 프로세서(예컨대, CPU(Central Processing Unit), AP(Application Processor) 등), 메모리, 이미지 센서, 디스플레이 등과 같은 다양한 구성요소 또는 IP를 구성할 수 있다.
전자 장치들(1100 및 1200)은 별개의 구성요소들, IP들, 또는 장치들로 구현될 수 있다. 따라서, 전자 장치(1100)는 전자 장치(1200)에 대한 외부 장치일 수 있고, 전자 장치(1200)는 전자 장치(1100)에 대한 외부 장치일 수 있다.
직병렬화기(SEDES1)는 내부 회로(INT1)의 동작들에 따라 생성되는 데이터를 직렬화(Serialize)하여 송신 회로(TX1)로 제공할 수 있다. 송신 회로(TX1)는 통신 채널(1310)을 통해 직렬화된 신호를 전자 장치(1200)로 송신할 수 있다. 수신 회로(RX2)는 통신 채널(1310)을 통해 수신되는 신호를 등화하고 등화된 신호에 기초하여 클록 및 데이터를 복원할 수 있다. 직병렬화기(SEDES2)는 수신 회로(RX2)로부터 제공되는 신호를 병렬화하여 병렬화된 데이터를 제공할 수 있다.
한편, 직병렬화기(SEDES2)는 내부 회로(INT2)의 동작들에 따라 생성되는 데이터를 직렬화하여 송신 회로(TX2)로 제공할 수 있다. 송신 회로(TX2)는 통신 채널(1320)을 통해 직렬화된 신호를 전자 장치(1100)로 송신할 수 있다. 수신 회로(RX1)는 통신 채널(1320)을 통해 수신되는 신호를 등화하고 등화된 신호에 기초하여 클록 및 데이터를 복원할 수 있다. 직병렬화기(SEDES1)는 수신 회로(RX1)로부터 제공되는 신호를 병렬화하여 병렬화된 데이터를 제공할 수 있다.
이러한 방식으로, 전자 장치들(1100 및 1200)은 통신 채널들(1310 및 1320)을 통해 서로 데이터/신호들을 교환할 수 있다. 전자 장치들(1100 및 1200) 사이의 통신의 속도가 증가하는 경우(예컨대, 통신이 더 높은 주파수 또는 대역폭으로 수행되는 경우), 전자 장치들(1100 및 1200)은 단위 시간 동안 더 많은 양의 데이터를 교환할 수 있다.
그러나, 표면 효과(Skin Effect), 유전 손실(Dielectric Loss) 등과 같은 다양한 요인에 기인하여, 통신 채널들(1310 및 1320) 각각은 저역 통과(Low-pass) 주파수 응답 특성을 보일 수 있다. 따라서, 고속 동작에서, 통신 채널들(1310 및 1320)의 대역폭들이 제한될 수 있고 신호들의 대역폭보다 작아질 수 있다. 이는 통신 채널들(1310 및 1320)을 통해 전달되는 신호들의 고주파수 성분을 약화시킬 수 있고, 시간 도메인 상에서 심볼간 간섭(ISI)을 야기할 수 있다. 결과적으로, 신호들을 전달하기 위한 속도가 빨라질수록, 신호들의 왜곡이 심해질 수 있고, 신호들의 품질이 저하될 수 있다.
신호들의 의도되지 않은 왜곡을 보상하기 위해, 송신 회로들(TX1 및 TX2)에 포함되는 등화기는 프리슈트 및/또는 디앰퍼시스와 같은 프리-이퀄라이제이션(pre-equalization)을 수행할 수 있고, 수신 회로들(RX1 및 RX2)에 포함되는 등화기는 수신된 신호들에 대해 주파수 영역 및/또는 시간 영역의 등화를 수행할 수 있다. 송신 회로들(TX1 및 TX2)에 포함되는 등화기는 송신 등화기로 칭하고, 수신 회로들(RX1 및 RX2)에 포함되는 등화기는 수신 등화기로 칭할 수 있다.
본 발명의 실시예들에 따라서, 송신 회로들(TX1 및 TX2) 중 적어도 하나는 송신하는 신호들의 품질을 향상시키기 위해, 송신 등화기에 프리셋을 설정하고, 설정된 프리셋의 유효성을 검증할 수 있다. 송신 회로들(TX1 및 TX2) 중 적어도 하나는 프리셋이 유효하지 않으면 유효성 검증에 성공할 때까지 PHY 파라미터를 변경하면서 링크 업 프로세스를 수행할 수 있다.
어떤 실시예에서, 도 1 내지 도 19를 참고로 하여 설명한 각 구성요소 또는 둘 이상의 구성요소의 조합은 디지털 회로, 프로그램 가능한 또는 프로그램할 수 없는 로직 장치 또는 어레이, 응용 주문형 집적 회로(application specific integrated circuit, ASIC) 등으로 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (20)

  1. PCI 익스프레스(PCI express(PCIe)) 인터페이스에서 데이터를 주고받는 복수의 포트들; 및
    상기 복수의 포트들에 복수의 레인(lane)을 설정하는 링크 업을 실행하는 LTSSM(Link Training and Status State Machine), 및 상기 LTSSM이 링크 업에 성공한 경우 설정한 제1 프리셋(preset)을 기준값으로 저장하는 메모리를 포함하고, 상기 기준값에 기초하여 상기 LTSSM이 설정하는 제2 프리셋의 유효성을 검증하는 PCIe 컨트롤러
    를 포함하는 반도체 장치.
  2. 제1항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 LTSSM이 링크 업을 실행하기 이전에 물리 계층의 데이터 통신을 위한 PHY 파라미터를 설정하고, 상기 제2 프리셋의 유효성 검증이 실패한 경우 상기 PHY 파라미터를 변경하는,
    반도체 장치.
  3. 제1항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제2 프리셋이 상기 기준값과 일치하면 상기 제2 프리셋이 유효한 것으로 결정하는,
    반도체 장치.
  4. 제1항에 있어서,
    상기 메모리는,
    상기 LTSSM이 링크 업에 성공한 경우 설정한 제1 프리셋 변경 이력을 기준 히스토리로 더 저장하고,
    상기 PCIe 컨트롤러는,
    상기 기준값 및 상기 기준 히스토리에 기초하여 상기 제2 프리셋의 유효성을 검증하는,
    반도체 장치.
  5. 제4항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제2 프리셋이 상기 기준값과 일치하고 상기 LTSSM이 설정하는 제2 프리셋 변경 이력이 상기 기준 히스토리와 일치하면 상기 제2 프리셋이 유효한 것으로 결정하는,
    반도체 장치.
  6. 제4항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제2 프리셋이 상기 기준값과 일치하고 상기 LTSSM이 설정하는 제2 프리셋 변경 이력과 상기 기준 히스토리의 차이가 미리 결정된 차이 정도보다 작으면 상기 제2 프리셋이 유효한 것으로 결정하는,
    반도체 장치.
  7. 제1항에 있어서,
    상기 PCIe 컨트롤러는,
    유효성 검증의 정밀도에 관한 복구 정책에 기초하여 상기 제2 프리셋의 유효성을 검증하는,
    반도체 장치.
  8. 제7항에 있어서,
    상기 PCIe 컨트롤러는,
    비교적 높은 정밀도를 요구하는 환경에서 제1 복구 정책을 선택하고, 비교적 낮은 정밀도를 요구하는 환경에서 제2 복구 정책을 선택하고,
    상기 제1 복구 정책의 저장 크기는 상기 제2 복구 정책의 저장 크기보다 큰,
    반도체 장치.
  9. 제7항에 있어서,
    상기 복구 정책은,
    정밀도, 수행 속도, 저장 크기, 오차 범위, 및 차이 정도 중 적어도 하나를 포함하는,
    반도체 장치.
  10. 제1항에 있어서,
    상기 메모리는,
    상기 LTSSM이 링크 업에 성공한 경우 설정한 상태들의 순서를 제1 기준 순서로 더 저장하고,
    상기 PCIe 컨트롤러는,
    상기 LTSSM이 설정하는 상태들의 제2 순서가 상기 제1 기준 순서와 일치하면 상기 제2 프리셋의 유효성을 검증하는,
    반도체 장치.
  11. 제10항에 있어서,
    상기 메모리는,
    상기 LTSSM이 링크 업에 성공한 경우 설정한 서브 상태들의 순서를 제2 기준 순서로 더 저장하고,
    상기 PCIe 컨트롤러는,
    상기 제2 순서가 상기 제1 기준 순서와 일치하고 상기 LTSSM이 설정하는 서브 상태들의 제3 순서가 상기 제2 기준 순서와 일치하면 상기 제2 프리셋의 유효성을 검증하는,
    반도체 장치.
  12. PCI 익스프레스(PCI express(PCIe)) 인터페이스에서 데이터를 주고받는 복수의 포트들; 및
    상기 복수의 포트들에 복수의 레인(lane)을 설정하는 링크 업 프로세스를 수행하고, 제1 시점에 설정한 제1 프리셋을 제1 복구 정책에 기초하여 검증하고, 상기 제1 시점보다 늦은 제2 시점에 설정한 제2 프리셋을 제2 복구 정책에 기초하여 검증하는 PCIe 컨트롤러
    를 포함하는 반도체 장치.
  13. 제12항에 있어서,
    상기 PCIe 컨트롤러는,
    정밀도, 수행 속도, 저장 크기, 오차 범위, 및 차이 정도 중 적어도 하나에 기초하여 복구 정책을 결정하는,
    반도체 장치.
  14. 제13항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제1 시점에 제1 저장 크기를 갖는 상기 제1 복구 정책을 결정하고,
    상기 제2 시점에 상기 제1 저장 크기보다 작은 제2 저장 크기를 갖는 상기 제2 복구 정책을 결정하는,
    반도체 장치.
  15. 제13항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제1 시점에 제1 오차 범위를 갖는 상기 제1 복구 정책을 결정하고,
    상기 제2 시점에 상기 제1 오차 범위보다 작은 제2 오차 범위를 갖는 상기 제2 복구 정책을 결정하는,
    반도체 장치.
  16. 제13항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제1 시점에 제1 차이 정도를 갖는 상기 제1 복구 정책을 결정하고,
    상기 제2 시점에 상기 제1 차이 정도보다 큰 제2 차이 정도를 갖는 상기 제2 복구 정책을 결정하는,
    반도체 장치.
  17. 제12항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제1 시점 이전에 상기 링크 업 프로세스에서 상태들을 실행한 순서가 기준 순서와 일치하면 상기 제1 프리셋을 검증하는,
    반도체 장치.
  18. 제12항에 있어서,
    상기 PCIe 컨트롤러는,
    상기 제1 복구 정책, 상기 제2 복구 정책, 최종 프리셋을 검증하는데 사용되는 기준값, 프리셋 변경 이력을 검증하는데 사용되는 기준 히스토리 중 적어도 하나에 기초하여 상기 제1 프리셋 또는 상기 제2 프리셋을 검증하는,
    반도체 장치.
  19. LTSSM(Link Training and Status State Machine)의 리커버리 동작에서 설정되는 복수의 프리셋을 획득하는 단계;
    리커버리 정책에 기초하여 상기 복수의 프리셋이 유효한지 여부를 판정하는 단계; 및
    상기 복수의 프리셋 중 적어도 하나가 유효하지 않으면 PHY 파라미터를 조정하는 단계
    를 포함하는 링크 설정 방법.
  20. 제19항에 있어서,
    상기 판정하는 단계는,
    상기 리커버리 정책에 기초하여 상기 복수의 프리셋의 변경 이력이 기준 히스토리와 일치하면 상기 복수의 프리셋이 유효한 것으로 판정하는 단계
    를 포함하는, 링크 설정 방법.


KR1020230073449A 2022-09-29 2023-06-08 반도체 장치 및 링크 설정 방법 KR20240045073A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/373,072 US20240126663A1 (en) 2022-09-29 2023-09-26 Semiconductor device and link configuring method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220124200 2022-09-29
KR20220124200 2022-09-29

Publications (1)

Publication Number Publication Date
KR20240045073A true KR20240045073A (ko) 2024-04-05

Family

ID=90714249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230073449A KR20240045073A (ko) 2022-09-29 2023-06-08 반도체 장치 및 링크 설정 방법

Country Status (1)

Country Link
KR (1) KR20240045073A (ko)

Similar Documents

Publication Publication Date Title
US7783935B2 (en) Bit error rate reduction buffer
US11467909B1 (en) Peripheral component interconnect express interface device and operating method thereof
US10108574B2 (en) Electronic device, communication control circuit, and communication control method
US11347669B2 (en) Equalization time configuration method, chip, and communications system
JP7065255B2 (ja) 高速ハードウェア送信等化
WO2010000621A1 (en) Dynamic segment sparing and repair in a memory system
US11561923B2 (en) Method for training multichannel data receiver timing
US10671300B1 (en) Command sequence response in a memory data buffer
TW202246976A (zh) 快速週邊元件互連裝置以及包括其的計算系統
KR20240045073A (ko) 반도체 장치 및 링크 설정 방법
US20240126663A1 (en) Semiconductor device and link configuring method
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
US10660197B2 (en) Differential pair group equalization system
US11599495B2 (en) Device for performing communication and computing system including the same
US10721105B2 (en) Joint adaptation of high and low frequency gains of a linear equalizer
US20230176989A1 (en) Semiconductor device and system including the same
US9484967B1 (en) Method for duty cycle distortion detection through decision feedback equalizer taps
US10396760B1 (en) Differential pair contact resistance asymmetry compensation system
US20140035633A1 (en) Autonomous initialization method of facing port of semiconductor integrated circuit and semiconductor integrated circuit
US20230315672A1 (en) Interface device and computing system including the same
US10698855B1 (en) Differential pair contact resistance asymmetry compensation system
Xie et al. Design and implementation of Serial ATA pbysical layer on FPGA