CN107918594B - 半导体装置、操作半导体装置的方法和包括该装置的系统 - Google Patents

半导体装置、操作半导体装置的方法和包括该装置的系统 Download PDF

Info

Publication number
CN107918594B
CN107918594B CN201710875026.4A CN201710875026A CN107918594B CN 107918594 B CN107918594 B CN 107918594B CN 201710875026 A CN201710875026 A CN 201710875026A CN 107918594 B CN107918594 B CN 107918594B
Authority
CN
China
Prior art keywords
pcie
semiconductor device
link
ports
lane
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201710875026.4A
Other languages
English (en)
Other versions
CN107918594A (zh
Inventor
郭永淏
崔光熙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107918594A publication Critical patent/CN107918594A/zh
Application granted granted Critical
Publication of CN107918594B publication Critical patent/CN107918594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

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

Abstract

本发明提供了一种能够用于PCIe的半导体装置、PCIe系统以及操作PCIe系统和用于PCIe的半导体装置的方法。所述能够用于PCIe的半导体装置包括:分别被构造为在PCIe环境中发送和接收数据的各个端口;以及PCIe控制器,其被构造为在能够用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间设置链路。所述链路包括在各个端口中的至少一个端口上实施的至少一个通路。PCIe控制器包括链路训练和状况状态机,其被构造为根据各个端口的第一排序执行第一通路号协商并根据与各个端口的第一排序不同的各个端口的第二排序执行第二通路号协商,并且根据第一通路号协商和第二通路号协商的结果确定链路的最佳链路宽度。

Description

半导体装置、操作半导体装置的方法和包括该装置的系统
相关申请的交叉引用
本申请要求于2016年10月5提交的韩国专利申请No.10-2016-0128398的优先权,其该申请的内容以引用方式并入本文中。
技术领域
本发明构思涉及半导体装置、半导体系统及其操作方法。
背景技术
术语外围设备互连(PCI)指与电子装置之间的数据相互通信关联的不断发展的技术规范。快速PCI(PCIe)是PCI的扩展并且提供了广泛用于计算工业中的接口协议,以有助于在半导体装置之间或者在包括在半导体系统中的装置之间高速传输数据。PCIe接口协议被充分记录为一种串行数据传输接口协议。因此,可容易获得诸如由被称作PCI SIG的组织公布的“快速PCI基础规范3.1a版”的特定PCIe技术规范。(参见例如https:// pcisig.com/)。下文中,将本领域技术人员在常规上可接受的所有有关文献(全部或一部分并且包括相关的近期更新)称作“PCIe技术规范”。
如PCIe技术规范中详细描述的,PCIe技术提供了一种可用于同时发送和接收数据的双向连接。在该语境中,术语“同时”意指能够用于PCIe的装置发送数据的时间段与该装置接收数据的时间段至少部分地重叠。双向连接可包括单工发送路径和单工接收路径。为了强调这种结构,通过PCIe接口协议限定的双向连接模型还可被称作双单工连接模型。有鉴于此,可替代性地将装置说成是“PCIe可用的”、“能够用于PCIe的”或者能够“在PCIe环境下操作”,其实质上包并入了PCIe技术规范指明的特征和性能。
能够用于PCIe的装置之间的发送和接收路径被称作“链路”,其中链路包括至少一对发送和接收路径。这里,构成一个这种“对”的发送和接收路径可被称作“通路”。关于这一点,将包括在链路中的通路数量定义为对应的“链路宽度”。
为了使PCIe装置能够发送和接收数据,必须执行用于限定(或“设置”)PCIe接口协议的物理层中的链路的初始化程序。然而,不能确保初始化程序的成功执行,并且一个或多个通路的设置可失效。例如,如果不能建立数据发送路径,则在初始化程序中可不设置通路。在发生“失效通路”的情况下,PCIe装置应该利用一个或多个其它通路建立链路。
发明内容
一方面,本发明构思提供了一种半导体装置,即使作为在PCIe装置之间设置链路的结果存在一个或多个失效通路,该半导体装置也能够使PCIe装置之间的链路宽度最大化。
在另一方面,本发明构思提供了一种类似地能够使PCIe装置之间的链路宽度最大化的半导体系统。
在又一方面,本发明构思提供了一种操作半导体装置或半导体系统的方法,即使作为在PCIe装置之间设置链路的结果存在一个或多个失效通路,所述半导体装置或半导体系统也能够使PCIe装置之间的链路宽度最大化。
然而,本发明构思的实施例不仅限于这些列出的方面,并且本公开中阐述的本发明构思的其它方面将对于本领域普通技术人员变得更清楚。
根据本发明构思的一个实施例,提供了一种能够用于PCIe的半导体装置,包括:分别被构造为在PCIe环境中发送和接收数据的各个端口;以及PCIe控制器,其被构造为在能够用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间设置链路,其中,所述链路包括在各个端口中的至少一个端口上实施的至少一个通路,并且PCIe控制器包括链路训练和状况状态机(LTSSM),其被构造为根据各个端口的第一排序执行第一通路号协商并根据与各个端口的第一排序不同的各个端口的第二排序执行第二通路号协商,并且根据第一通路号协商和第二通路号协商的结果确定链路的最佳链路宽度。
根据本发明构思的另一实施例,提供了一种能够用于PCIe的半导体装置,包括:分别被构造为在PCIe环境中发送和接收数据的N个端口,‘N’是大于二的正整数;以及PCIe控制器,其被构造为在能够用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间设置链路,其中,链路包括利用N个端口之一分别建立的‘M’个通路,‘M’是不大于N的正整数,其中,PCIe控制器包括链路训练和状况状态机(LTSSM),其被构造为:根据各个端口的第一排序执行第一通路号协商以产生第一通路数量,并且将第一通路数量与参考值M/2进行比较,并且如果第一通路数量不小于参考值,则确定链路的最佳链路宽度对应于第一通路数量,否则如果第一通路数量小于参考值,则根据各个端口的第二排序执行第二通路号协商以产生第二通路数量,并且确定链路的最佳链路宽度对应于第二通路数量。
根据本发明构思的另一实施例,提供了一种PCIe系统,其包括能够用于PCIe的第一半导体装置和能够用于PCIe的第二半导体装置,其中,第一半导体装置建立链路,所述链路包括分别被构造为经多个端口中的一个端口发送和接收数据的各个通路,所述多个端口在PCIe环境中连接第一半导体装置和第二半导体装置;并且第一半导体装置被构造为根据各个端口的第一排序执行第一通路号协商并根据与各个端口的第一排序不同的各个端口的第二排序执行第二通路号协商,并且根据第一通路号协商和第二通路号协商的结果确定链路的最佳链路宽度。
根据本发明构思的另一实施例,提供了一种PCIe系统,其包括能够用于PCIe的第一半导体装置和能够用于PCIe的第二半导体装置,其中,第一半导体装置建立包括M个通路的链路,所述M个通路分别被构造为经N个端口中的一个端口发送和接收数据,所述N个端口在PCIe环境中连接第一半导体装置和第二半导体装置,‘N’是大于二的正整数,‘M’是不大于N的正整数,并且第一半导体装置根据各个端口的第一排序执行第一通路号协商以产生第一通路数量,并且将第一通路数量与参考值M/2进行比较,并且如果第一通路数量不小于参考值,则确定链路的最佳链路宽度对应于第一通路数量,否则如果第一通路数量小于参考值,则根据各个端口的第二排序执行第二通路号协商以产生第二通路数量,并且确定链路的最佳链路宽度对应于第二通路数量。
根据本发明构思的另一实施例,提供了一种操作PCIe系统的方法,所述PCIe系统包括能够用于PCIe的第一半导体装置和能够用于PCIe的第二半导体装置。所述方法包括步骤:利用第一半导体装置在第一半导体装置与第二半导体装置之间设置链路,其中,链路包括各个通路,每个通路分别连接第一半导体装置的一个端口和第二半导体装置的对应端口。链路的设置包括:执行第一通路号协商和第二通路号协商中的至少一个,其中根据连接第一半导体装置和第二半导体装置的各个端口的第一排序关于各个端口执行第一通路号协商,根据与连接第一半导体装置和第二半导体装置的各个端口的第一排序不同的各个端口的第二排序关于各个端口执行第二通路号协商;根据第一通路号协商和第二通路号协商的结果确定链路的最佳链路宽度。
根据本发明构思的另一实施例,提供了一种操作能够用于PCIe的半导体装置的方法,其中所述能够用于PCIe的半导体装置包括:分别被构造为在PCIe环境中发送和接收数据的N个端口,‘N’是大于二的正整数;以及被构造为在能够用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间设置链路的PCIe控制器,其中,链路包括利用N个端口之一分别建立的‘M’个通路,‘M’是不大于N的正整数。所述方法包括步骤:根据各个端口的第一排序执行第一通路号协商以产生第一通路数量,并且将第一通路数量与参考值M/2进行比较;以及如果第一通路数量不小于参考值,则确定链路的最佳链路宽度对应于第一通路数量,否则,如果第一通路数量小于参考值,则根据各个端口的第二排序执行第二通路号协商以产生第二通路数量,并且确定链路的最佳链路宽度对应于第二通路数量。
附图说明
图1是描述根据本发明构思的实施例的半导体系统的概念图。
图2至图5分别是示出根据本发明构思的实施例的在PCIe装置之间设置链路的方式的框图。
图6至图9分别是示出根据本发明构思的实施例的在PCIe装置之间设置链路的另一方式的框图。
图10至图14分别是示出根据本发明构思的实施例的在PCIe装置之间设置链路的另一方式的框图。
图15是将根据本发明构思的实施例的操作半导体装置的方法总结为一个示例的流程图。
具体实施方式
下文中,将参照以上附图描述本发明构思的特定实施例。然而,应该注意,本发明构思的范围不仅限于示出的实施例。
图1是描述根据本发明构思的实施例的半导体系统的概念图。
参照图1,半导体系统通常包括第一PCIe装置100和第二PCIe装置200。第一PCIe装置100和第二PCIe装置200被构造为利用PCIe接口协议发送和接收数据。从对有关技术规范的回顾中应该清楚,PCIe架构可被理解为包括多个“层”,其包括物理层(PL)、数据链路层(DL)、事务层(TL)和软件层(SL)。
PL对应于最下面的层,并且在PCIe装置之间连续地发送通过DL产生的数据分组。参照图1,PL在PCIe装置100和200之间提供通过发送(TX)和接收(RX)形成的链路。经限定的链路(LINK)在PCIe装置100和200之间交换具有限定的格式的数据分组。
DL对应于布置在PL上(或者通过PL功能性启用)的层,并且提供确保经链路的分组传输的可靠性的特定功能,以及管理链路的相关功能。例如,DL可用于将序列号、循环冗余检查(CRC)信息等等加至通过TL产生的分组。
TL接收数据和/或发送数据以及根据SL限定的相关请求和/或确认。因此,可使用TL来产生请求分组,并且将请求分组转移至DL。此外,可使用TL从DL接收响应分组,并且将接收到的响应分组与从SL接收的数据读或写请求匹配。
SL对应于未明确通过PCIe技术规范限定的最上面的层,可包括用于驱动PCIe装置的软件,用于从用户或主机应用接收数据读请求或写请求的软件,以及用于将对数据读请求或写请求的响应提供给用户或主机应用的软件。
可通过PCIe技术规范的资源获得更多的关于物理层(PL)、数据链路层DL、事务层(TL)和软件层(SL)的特定信息。
再参照图1,假设第一PCIe装置100的PL包括链路训练和状况状态机(LTSSM)150。虽然图1中未示出,但是第二PCIe装置200也可包括LTSSM。在这点上,本领域普通技术人员应该理解,可从对PCIe技术规范的回顾中理解示例性LTSSM。例如,在本发明构思的特定实施例中,LTSSM 150可构造在通过连接的PCIe装置之一或二者提供的PCIe控制器中(或者利用其资源构造),但是本发明构思的范围不限于此。
在这点上,本发明构思的特定实施例将使用被构造为与根复合体相关地操作的PCIe控制器。再一次说明,在PCIe技术规范中提供了根复合体的更详细的描述。
在下面的示出的实施例的描述中,假设根复合体用于控制第一PCIe装置100的LTSSM 150的操作。因此,第一PCIe装置100的LTSSM 150可包括十一(11)个状态:检查、轮询、构造、恢复、L0、L0s、L1、L2、热复位、环回(loopback)和禁用。并且LTSSM 150可用于根据PCIe接口协议执行与数据的发送关联的各种任务,同时在十一种状态中的任一种状态下操作。在PCIe技术规范中提供了与十一种状态关联的定义,并且通常遵照在PCIe技术规范中描述的LTSSM的定义来实施LTSSM 150。
因此,第一PCIe装置100的LTSSM 150运行(或执行)用于设置PCIe装置100和200之间用于发送和接收数据的链路的初始化程序。如上所述,将PCIe装置之间的发送路径和接收路径定义为链路。链路包括至少一对发送和接收路径。构成一对的发送和接收路径限定了一个通路,并且构成一个链路的通路的数量被称作链路宽度。
第一PCIe装置100的LTSSM 150执行链路号协商和通路号协商,以与第二PCIe装置一起设置链路。在这些协商中,LTSSM 150还确定通路是否正常操作,选择用于数据传输以建立链路的通路,并且确定链路宽度。
为了执行链路号协商和通路号协商,第一PCIe装置100的LTSSM 150将信号发送至第二PCIe装置200,并且利用TS1有序集合从第二PCIe装置200接收信号。在PCIe技术规范中限定了关于TS1有序集合的特定信息。
这里应该注意,与先前的PCI技术不同,PCIe技术采用串行传输接口。因此,PCIe技术规范限定了高速串行输入/输出(I/O)接口。因此,应该理解,可在所谓的“PCIe环境”以及更加通用的“高速串行I/O环境”中实施在PCIe技术规范中描述的各种示例。
下文中,将参照图2至图5描述运行使得PCIe装置100的LTSSM 150能够设置链路的初始化程序的一种方式。
图2至图5分别是示出根据本发明构思的实施例的用于在PCIe装置之间设置链路的一个可能的初始化程序的框图。
参照图2,第一PCIe装置100包括第一PCIe接口连接器110,第二PCIe装置200包括第二PCIe接口连接器220。根据PCIe接口协议,根据在PCIe技术规范中针对数据传输的目的限定的标准来实施这些PCIe接口连接器110和220。
第一PCIe接口连接器110包括多个端口P0至P7,第二PCIe接口连接器220也包括多个端口P0至P7。
在该实施例中,为了便于解释,示出了第一PCIe接口连接器110和第二PCIe接口连接器220中的每一个包括八个端口。然而,明显的是,在连接器中的每一个中包括的端口的数量不限于此。
PCIe接口协议采用包括单工发送路径和单工接收路径的双单工连接模型。这些发送路径和接收路径形成链路。在它们中,一对发送路径和接收路径形成一个通路。
例如,第一PCIe接口连接器110的端口P0与第二PCIe接口连接器220的端口P0之间的发送路径和接收路径可形成通路0,第一PCIe接口连接器110的端口P2与第二PCIe接口连接器220的端口P2之间的发送路径和接收路径可形成通路2,等等。
可根据将在稍后描述的通过第一PCIe装置100的LTSSM 150执行的链路号协商和通路号协商运行通路形成过程。
图3示出了在第一PCIe装置100的LTSSM 150与第二PCIe装置200执行链路号协商的同时,第一PCIe接口连接器110的端口P6与第二PCIe接口连接器220的端口P6之间的预期通路不正常操作的情况。也就是说,在图3中,通路6对应于失效通路。
例如,可能存在这样的情况,在从第一PCIe接口连接器110的端口P6通过其将数据发送至第二PCIe接口连接器220的端口P6的发送路径中发生问题,或者存在这样的情况,在第一PCIe接口连接器110的端口P6通过其从第二PCIe接口连接器220的端口P6接收数据的接收路径中发生问题。
在这种情况下,第一PCIe装置100的LTSSM 150按照(例如)第一PCIe接口连接器110的多个端口P0至P7的端口号依次增大的次序执行通路号协商。换句话说,各个端口的次序可为从最低指定端口(例如,P0)至最高指定端口(例如,P7)的升序。可替换地,各个端口的次序可为从最高指定端口(例如,P7)至最低指定端口(例如,P0)的降序。
根据PCIe技术规范,通常将对应于形成一个链路的通路数量的链路宽度确定为通路1、通路2、通路4、通路8、通路12、通路16和通路32中的任一个。(为了避免在元件的不同序号之间混淆,下面将利用命名法“1”、“2”、“4”等称呼链路宽度)。因此,第一PCIe装置100的LTSSM 150可利用端口号从第一PCIe接口连接器110的端口号P0按次序增大的第一端口号排序来设置宽度为“4”的链路。
在图3所示的当前实施例中,因此,假设相对于给定的一组端口针对链路宽度定义考虑的通路的次序为升序(即,升序端口号排序)。然而,本发明构思的范围不限于此。因此,根据另一方式,可根据降序端口号(即,降序端口号排序)考虑通路。
然而,继续看图3示出的示例,根据PCIe接口协议,第一PCIe装置100和第二PCIe装置200最终被构造为根据链路宽度“4”操作。
图4和图5分别示出了在第一PCIe装置100的LTSSM 150与第二PCIe装置200执行链路号协商的同时,第一PCIe接口连接器110的端口P2与第二PCIe接口连接器220的端口P2之间的通路不正常操作的情况。也就是说,在图4和图5中,通路2对应于失效通路。
例如,可能存在这样的情况,在从第一PCIe接口连接器110的端口P2通过其将数据发送至第二PCIe接口连接器220的端口P2的发送路径中发生问题,或者存在这样的情况,在第一PCIe接口连接器110的端口P2通过其从第二PCIe接口连接器220的端口P2接收数据的接收路径中发生问题。
参照图4,在这种情况下,第一PCIe装置100的LTSSM 150根据第一PCIe接口连接器110的端口P0至P7的端口号的升序执行通路号协商。作为按照升序执行通路号协商的结果,第一PCIe装置100的LTSSM 150设置了宽度为“2”的链路。
然而,形成链路的通路数量仅为“2”,而不形成链路也不对应于失效通路的通路数量为五。即使考虑了可根据PCIe技术规范形成的链路宽度,第一PCIe装置100的LTSSM 150也不使用对应于端口号P4至P7的四个通路,并且仅使用对应于端口号P0和P1的比所述四个通路的带宽更小的两个通路来设置链路。根据以上观点,可考虑浪费了的能够提供更宽的带宽的四个通路。
参照图5,为了更好地解决图4所示的问题,第一PCIe装置100的LTSSM 150可另替换地或可附加地按照相对于第一PCIe接口连接器110的端口P0至P7的降序执行通路号协商。
将示出的示例进行扩展,利用一组升序的端口号关于端口P0至P7实施“第一排序方式”,而利用一组降序的端口号关于相同的端口P0至P7实施“第二排序方式”。因此,可关于端口的特定编号和排序方式实施不同的排序方式(例如,偶数/奇数;升/降;等),以识别出最大的链路宽度,并且在PCIe系统中的连接的PCIe装置之间运行的一个或多个通路号协商期间可完成所有这些。再次参照图4和图5的前述示例,“第一通路号协商”导致链路宽度为“2”,而“第二通路号协商”导致链路宽度为“4”。并且,由于宽度为“2”的链路的鲁棒性明显小于宽度为“4”的链路,因此PCIe装置100与200之间的链路定义应该使用通过第二通路号协商识别的端口P4至P7。因此,第一PCIe装置100的LTSSM 150最终可设置宽度为“4”的链路。
按照这种方式,当关于PCIe装置之间的链路的定义(或者设置)存在失效通路时,可使PCIe装置之间的链路宽度最大化。
这里,应该注意,关于图5所示的实施例,第一PCIe装置100的LTSSM 150形成第一PCIe接口连接器110的端口7与第二PCIe接口连接器220的端口7之间的通路0,并且形成第一PCIe接口连接器110的端口6与第二PCIe接口连接器220的端口6之间的通路1。也就是说,在图5的实施例中,由于第一PCIe装置100的LTSSM 150设置了通路,因此LTSSM 150必须支持PCIe技术规范定义的PCIe通路反转功能。为了运行上述第二通路号协商,LTSSM 150可利用PCIe通路反转功能按照反向次序设置通路号。
在前述实施例中,第一PCIe装置100的LTSSM 150可根据第一次序执行通路号协商,然后根据第二次序执行通路号协商,并且随后根据第一通路号协商结果和第二通路号协商结果确定最佳(或者链路宽度最大化的)链路。
因此,如果第一PCIe装置100的LTSSM 150能够预先预测失效通路,则可仅利用单个通路号协商获得具有最大化的链路宽度的最佳链路。
根据PCIe技术规范,在与第二PCIe装置200执行通路号协商之前,第一PCIe装置的LTSSM 150能够执行内部通路号协商。在该过程中,可确定关于给定的一组端口是否可预期通路失效(以及确定哪个通路失效)。
也就是说,第一PCIe装置100的LTSSM 150可关于端口P0至P7执行内部通路号协商,以检测失效的通路号,并且因此可鉴于先前确定的失效的通路号而仅执行单个外部通路号协商。
例如,将先前结合图4和图5描述的示例进行扩展,在确定检测到的失效通路端口号是否小于预定值之后,第一PCIe装置100的LTSSM 150可关于第二PCIe装置200仅执行第一通路号协商或第二通路号协商。这里,预定值可为通过将通路的总数除以二获得的值(即,对于图4和图5示出的实施例预定值为四)。因此,当失效通路的端口号小于4时,在第一通路号协商之后,第一PCIe装置100的LTSSM 150可执行第二通路号协商,并且当失效通路的端口号等于或大于4时,在第一通路号协商之后,可不执行第二通路号协商。
下文中,将参照图6至图14另外地详细描述执行使得第一PCIe装置100的LTSSM150可设置最佳链路的初始化处理的示例。
图6、图7、图8和图9分别是示出根据本发明构思的实施例的在PCIe装置之间设置链路的初始化处理的各个示例的框图。
为了便于描述,图6、图7、图8和图9的示出的示例假设PCIe装置100和200分别包括四个端口(端口0、1、2和3),其中端口2与失效通路关联(即,通路2是失效通路)。
参照图6,第一PCIe装置100的LTSSM 150执行第一链路号协商,以使得LTSSM 150经端口0、1、2和3之一向第二PCIe装置200传达所得链路号‘N’。例如,可在TS1有序集合中记录链路号并且将其发送至第二PCIe装置200。
参照图7,第二PCIe装置200可随后经端口0、1、2和3中的每一个向第一PCIe装置100传达(或返回)相同的链路号N。再次,可在TS1有序集合中记录返回的链路号并将其发送至第一PCIe装置100。
然而,这里,在示出的示例的工作设想下,通路2是失效通路,因此,第二PCIe装置200将不能将返回的链路号发送至第一PCIe装置100的端口2。根据实施方式,第二PCIe装置200可关于端口2发送对应于分组填充物(packet filler)的PAD符号,但是本发明构思的范围不限于此。
由于第二PCIe装置200的响应,第一PCIe装置100的LTSSM 150可辨识可用于建立链路的通路0和通路1。
接着,参照图8,第一PCIe装置100的LTSSM 150可执行第一通路号协商。
第一PCIe装置100的LTSSM 150经端口0和1中的每一个将通路号发送至第二PCIe装置200。具体地说,将通路号0赋予端口0,并且将通路号1赋予端口1。可将通路号记录在TS1有序集合中并且将其发送至第二PCIe装置200。相反,不将通路号赋予端口2和3。
其原因是第一PCIe装置100的LTSSM 150排除通路2来选择宽度更宽的链路,因为通路2是失效通路。
作为允许第一PCIe装置100的LTSSM 150选择宽度最大的链路的特定方法,可使用前述各种方法。
也就是说,第一PCIe装置100的LTSSM 150在对应于端口0和1的宽度为2的宽度较宽的链路和对应于端口3的宽度为1的链路中进行选择,然后仅通过端口0和1将通路号发送至第二PCIe装置200。
参照图9,第二PCIe装置200通过端口0和1中的每一个将与从第一PCIe装置100接收的通路号相同的通路号0和1发送至第一PCIe装置100。可将通路号记录在TS1有序集合中并且将其发送至第一PCIe装置100。
由于第二PCIe装置200的响应,第一PCIe装置100的LTSSM 150可辨识协商已完成,并且链路已建立,可转变为L0状态,并且可开始数据传输。
图10、图11、图12、图13和图14分别是示出根据本发明构思的实施例的在PCIe装置之间设置链路的示例的框图。
为了便于描述,针对图10至图14所示的各个示出的示例,假设PCIe装置100和200中的每一个包括四个端口(通路0、1、2和3),其中通路1是失效通路。
参照图10,第一PCIe装置100的LTSSM 150执行第一链路号协商。
这里,LTSSM 150经端口0至3中的每一个将任意链路号N发送至第二PCIe装置200。可将链路号记录在TS1有序集合中并且将其发送至第二PCIe装置200。
参照图11,第二PCIe装置200通过端口0至3中的每一个将与从第一PCIe装置100接收的链路号相同的链路号N发送至第一PCIe装置100。可将链路号记录在TS1有序集合中并且将其发送至第一PCIe装置100。
然而,这里,由于通路1是失效通路,因此第二PCIe装置200不能通过端口1将与从第一PCIe装置100接收的链路号相同的链路号N发送至第一PCIe装置100。根据实施方式,第二PCIe装置200可关于端口1发送对应于分组填充物的PAD符号,但是本发明构思的范围不限于此。
由于第二PCIe装置200的响应,第一PCIe装置100的LTSSM 150可辨识可用于建立线路的通路0、通路2和通路3。
接着,参照图12,第一PCIe装置100的LTSSM 150执行第一通路号协商。
也就是说,第一PCIe装置100的LTSSM 150通过端口0将通路号发送至第二PCIe装置200。具体地说,将通路号0赋予端口0。可将通路号记录在TS1有序集合中并且将其发送至第二PCIe装置200。相反,不将通路号赋予端口1、2和3中的每一个。
接着,参照图13,通过经端口2和3中的每一个将通路号发送至第二PCIe装置200,第一PCIe装置100的LTSSM 150执行第二通路号协商。LTSSM 150可针对第二通路号协商的目的利用PCIe通路反转功能按照反向次序设置通路号。
也就是说,第一PCIe装置100的LTSSM 150通过端口2和3中的每一个将通路号发送至第二PCIe装置200。具体地说,将通路号1赋予端口2,并且将通路号0赋予端口3。可将通路号记录在TS1有序集合中并且将其发送至第二PCIe装置200。相反,不将通路号赋予端口0和1中的每一个。
作为第一通路号协商和第二通路号协商的结果,第一PCIe装置100的LTSSM 150可选择宽度更宽的链路。然而,允许第一PCIe装置100的LTSSM 150选择宽度更宽的链路的特定方法不限于此,并且可使用涉及图5的前述各种方法。
也就是说,第一PCIe装置100的LTSSM 150在对应于端口0的宽度为1的链路和对应于端口2和3的宽度为2的链路中选择宽度更宽的链路,并且随后仅通过端口2和3将通路号发送至第二PCIe装置200。
参照图14,第二PCIe装置200通过端口2和3中的每一个将与从第一PCIe装置100接收的通路号相同的通路号0和1发送至第一PCIe装置100。可将通路号记录在TS1有序集合中并且将其发送至第一PCIe装置100。
由于第二PCIe装置200的响应,第一PCIe装置100的LTSSM 150可辨识出协商已完成并且链路已建立,可转变为L0状态,并且可开始数据传输。
图15是根据本发明构思的实施例的在一个示例中总结操作半导体装置的方法的流程图。
参照图15,开始链路设置(S1501),并且第一PCIe装置100将链路号发送至第二PCIe装置200,以执行第一链路号协商(S1503)。
响应于此,第二PCIe装置200将返回的链路号发送至第一PCIe装置100(S1505)。
第一PCIe装置100基于从第二PCIe装置200接收的响应确定是否存在失效通路(S1507)。如果存在失效通路,第一PCIe装置100确定失效通路的通路号是否小于预定值,例如,通过将通路的总数除以二获得的值(S1509)。
如果不存在失效通路或如果虽然存在失效通路但是失效通路的通路号等于或大于预定值,则第一PCIe装置100针对通路号协商的目的提供第一次序的通路号,并且将这些通路号发送至第二PCIe装置200(S1511)。
如果失效通路的通路号小于预定值,则第一PCIe装置100针对执行第二通路号协商的目的提供第二(例如,反向)次序的通路号,并且将这些通路号发送至第二PCIe装置200(S1513)。
响应于此,第二PCIe装置200将通路号发送至第一PCIe装置100(S1515)。
由于第二PCIe装置200的响应,第一PCIe装置100可辨识出已完成协商并且已建立链路,可转变为L0状态,并且可开始数据传输(S1517)。
根据本发明构思的各个实施例,在为了在PCIe装置之间设置链路的初始化处理中,如果存在失效通路,则可确定PCIe装置之间的最佳链路宽度。
虽然已针对示出的目的公开了本发明构思的优选实施例,但是本领域技术人员应该理解,在不脱离权利要求中公开的本发明构思的范围的情况下,各种修改、增加和替换都是可能的。

Claims (18)

1.一种能够用于PCIe的半导体装置,包括:
分别被构造为在PCIe环境中发送和接收数据的各个端口;以及
PCIe控制器,其被构造为在能够用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间设置链路,
其中,所述链路包括在各个端口中的至少一个端口上实施的至少一个通路,每个通路由用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间的一对的发送和接收路径构成,并且
PCIe控制器包括链路训练和状况状态机,其被构造为根据各个端口的端口号依次增大的第一排序执行第一通路号协商并根据与各个端口的第一排序不同的各个端口的端口号依次减小的第二排序执行第二通路号协商,并且根据第一通路号协商和第二通路号协商的结果确定链路的最大的链路宽度;
其中,所述链路宽度是所述链路中的通路的数量。
2.根据权利要求1所述的能够用于PCIe的半导体装置,其中,
各个端口的第一排序是从最低指定端口至最高指定端口的各个端口的升序,并且
各个端口的第二排序是从最高指定端口至最低指定端口的各个端口的降序。
3.根据权利要求2所述的能够用于PCIe的半导体装置,其中,第一通路号协商得到第一链路宽度,第二通路号协商得到小于第一链路宽度的第二链路宽度,并且PCIe控制器确定最大的链路宽度对应于第一链路宽度。
4.根据权利要求2所述的能够用于PCIe的半导体装置,其中,链路训练和状况状态机支持能够进行各个端口的第一排序和第二排序的PCIe通路反转功能。
5.根据权利要求4所述的能够用于PCIe的半导体装置,其中,PCIe控制器包括根复合体。
6.根据权利要求1所述的能够用于PCIe的半导体装置,其中,利用对应的TS1有序集合执行第一通路号协商和第二通路号协商中的每一个。
7.根据权利要求1所述的能够用于PCIe的半导体装置,其中,PCIe控制器还被构造为对各个端口中与失效通路关联的端口进行识别,然后关于等于端口的总数除以2的参考值来确定最大的链路宽度。
8.根据权利要求7所述的PCIe半导体装置,其中,当所识别的端口的端口号小于参考值时,确定最大的链路宽度对应于第二通路号协商的结果。
9.一种能够用于PCIe的半导体装置,包括:
分别被构造为在PCIe环境中发送和接收数据的N个端口,‘N’是大于二的正整数;以及
PCIe控制器,其被构造为在能够用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间设置链路,其中,链路包括利用N个端口之一分别建立的‘M’个通路,‘M’是不大于N的正整数,每个通路由用于PCIe的半导体装置与另一能够用于PCIe的半导体装置之间的一对的发送和接收路径构成,
其中,PCIe控制器包括链路训练和状况状态机,其被构造为:
根据各个端口的端口号依次增大的第一排序执行第一通路号协商以产生第一通路数量,并且将第一通路数量与参考值M/2进行比较,并且
如果第一通路数量不小于参考值,则确定链路的最大的链路宽度对应于第一通路数量,否则
如果第一通路数量小于参考值,则根据各个端口的端口号依次减小的第二排序执行第二通路号协商以产生第二通路数量,并且确定链路的最大的链路宽度对应于第二通路数量;
其中,所述链路宽度是所述链路中的通路的数量。
10.根据权利要求9所述的能够用于PCIe的半导体装置,其中,各个端口的第一排序是从最低指定端口至最高指定端口的各个端口的升序,并且
各个端口的第二排序是从最高指定端口至最低指定端口的各个端口的降序。
11.根据权利要求10所述的能够用于PCIe的半导体装置,其中,链路训练和状况状态机支持能够进行各个端口的第一排序和第二排序的PCIe通路反转功能。
12.根据权利要求11所述的能够用于PCIe的半导体装置,其中,PCIe控制器包括根复合体。
13.根据权利要求9所述的能够用于PCIe的半导体装置,其中,利用对应的TS1有序集合执行第一通路号协商和第二通路号协商中的每一个。
14.根据权利要求9所述的能够用于PCIe的半导体装置,其中,PCIe控制器还被构造为对各个端口中与失效通路关联的端口进行识别。
15.一种操作PCIe系统的方法,所述PCIe系统包括能够用于PCIe的第一半导体装置和能够用于PCIe的第二半导体装置,所述方法包括步骤:
利用第一半导体装置在第一半导体装置与第二半导体装置之间设置链路,其中,链路包括各个通路,每个通路分别连接第一半导体装置的端口和第二半导体装置的对应端口,其中链路的设置包括:
执行第一通路号协商和第二通路号协商中的至少一个,其中根据连接第一半导体装置和第二半导体装置的各个端口的端口号依次增大的第一排序关于各个端口执行第一通路号协商,根据与连接第一半导体装置和第二半导体装置的各个端口的第一排序不同的各个端口的端口号依次减小的第二排序关于各个端口执行第二通路号协商;
根据第一通路号协商和第二通路号协商的结果确定链路的最大的链路宽度;
其中,所述链路宽度是所述链路中的通路的数量。
16.根据权利要求15所述的方法,其中,产生第一通路数量的第一通路号协商和产生第二通路数量的第二通路号协商二者均被执行,
各个端口的第一排序是从最低指定端口至最高指定端口的各个端口的升序,
各个端口的第二排序是从最高指定端口至最低指定端口的各个端口的降序,并且
确定最大的链路宽度的步骤包括以下步骤之一:将第一通路数量与参考值进行比较,将第二通路数量与参考值进行比较,以及将第一通路数量与第二通路数量进行比较。
17.根据权利要求16所述的方法,其中,第一通路号协商和第二通路号协商中的至少一个的执行识别出与各个通路中的失效通路关联的端口的端口号。
18.根据权利要求16所述的方法,其中,当第一通路数量大于参考值时,仅执行第一通路号协商,并且最大的链路宽度对应于第一通路数量。
CN201710875026.4A 2016-10-05 2017-09-25 半导体装置、操作半导体装置的方法和包括该装置的系统 Active CN107918594B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN107918594A CN107918594A (zh) 2018-04-17
CN107918594B true CN107918594B (zh) 2023-09-12

Family

ID=61623329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710875026.4A Active CN107918594B (zh) 2016-10-05 2017-09-25 半导体装置、操作半导体装置的方法和包括该装置的系统

Country Status (4)

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

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统
CN109558282B (zh) * 2018-12-03 2021-10-29 郑州云海信息技术有限公司 一种pcie链路检测方法、系统及电子设备和存储介质
US10698856B1 (en) 2018-12-18 2020-06-30 Ati Technologies Ulc Alternative protocol selection
US11693813B2 (en) 2018-12-18 2023-07-04 Ati Technologies Ulc Alternative protocol over physical layer
US10936530B2 (en) * 2019-07-24 2021-03-02 Ati Technologies Ulc Method and apparatus for determining link bifurcation availability
KR102635457B1 (ko) * 2021-05-24 2024-02-13 에스케이하이닉스 주식회사 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템
US11960367B2 (en) 2021-05-24 2024-04-16 SK Hynix Inc. Peripheral component interconnect express device and operating method thereof
KR102559387B1 (ko) 2021-05-25 2023-07-26 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR102635450B1 (ko) 2021-05-26 2024-02-13 에스케이하이닉스 주식회사 PCIe 장치 및 그 동작 방법
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
US11809344B2 (en) 2021-06-01 2023-11-07 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11940942B2 (en) 2021-06-01 2024-03-26 SK Hynix Inc. Peripheral component interconnect express interface device and operating method thereof
US11847089B2 (en) * 2022-04-27 2023-12-19 Mellanox Technologies Ltd. Electronic device and method for sharing data lanes of a network interface device between two or more computing devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136953B1 (en) * 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7756123B1 (en) * 2006-12-21 2010-07-13 Nvidia Corporation Apparatus, system, and method for swizzling of a PCIe link
CN102486759A (zh) * 2010-12-03 2012-06-06 国际商业机器公司 用于为多道pci高速io互连提供线缆冗余和故障转移的方法和装置
CN103117929A (zh) * 2013-01-31 2013-05-22 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426597B1 (en) * 2003-05-07 2008-09-16 Nvidia Corporation Apparatus, system, and method for bus link width optimization of a graphics system
US8046488B2 (en) * 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
US20060114918A1 (en) 2004-11-09 2006-06-01 Junichi Ikeda Data transfer system, data transfer method, and image apparatus system
US7353443B2 (en) 2005-06-24 2008-04-01 Intel Corporation Providing high availability in a PCI-Express link in the presence of lane faults
CN100382064C (zh) * 2005-12-19 2008-04-16 威盛电子股份有限公司 状态协调方法
US7836352B2 (en) 2006-06-30 2010-11-16 Intel Corporation Method and apparatus for improving high availability in a PCI express link through predictive failure analysis
TWI434803B (zh) * 2010-06-30 2014-04-21 Ind Tech Res Inst 微機電元件與電路晶片之整合裝置及其製造方法
US8677176B2 (en) 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US9292465B2 (en) 2011-12-21 2016-03-22 Intel Corporation Dynamic link width adjustment
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
WO2015149293A1 (zh) * 2014-04-02 2015-10-08 华为技术有限公司 一种PCIe链路故障的处理方法、设备及系统
JP5916954B2 (ja) 2014-04-11 2016-05-11 三菱重工マシナリーテクノロジー株式会社 タイヤ保持装置、タイヤ試験システム
US9582366B2 (en) 2014-11-21 2017-02-28 International Business Machines Corporation Detecting and sparing of optical PCIE cable channel attached IO drawer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136953B1 (en) * 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7756123B1 (en) * 2006-12-21 2010-07-13 Nvidia Corporation Apparatus, system, and method for swizzling of a PCIe link
CN102486759A (zh) * 2010-12-03 2012-06-06 国际商业机器公司 用于为多道pci高速io互连提供线缆冗余和故障转移的方法和装置
CN103117929A (zh) * 2013-01-31 2013-05-22 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107918594B (zh) 半导体装置、操作半导体装置的方法和包括该装置的系统
US8296469B2 (en) Scalable method and apparatus for link with reconfigurable ports
JP4768017B2 (ja) ポイントツーポイント・リンクのネゴシエーション方法および装置
US10552366B2 (en) Method of communication for master device and slave device on synchronous data bus wherein master and slave devices are coupled in parallel
US8553578B2 (en) Automated protocol selection for host adapter card
US8127059B1 (en) Apparatus for interconnecting hosts with storage devices
CN113227991B (zh) 替代协议选择
EP2628087B1 (en) Methods and systems for testing electrical behavior of an interconnect having asymmetrical links
EP3779711B1 (en) Method for configuring balance time, chips and communication system
US8244948B2 (en) Method and system for combining multiple SAS expanders into a SAS switch
US20140095754A1 (en) Back-Off Retry with Priority Routing
KR102033112B1 (ko) Pci 익스프레스 스위치 장치 및 그의 접속 제어 방법
CN109542834B (zh) 一种确定nc芯片连接错误的方法及nc芯片
CN112190276A (zh) 探测系统及其探测方法
TWI233730B (en) Automatic configuration device and method for network media link
CN115215174B (zh) 终端控制装置、电梯控制系统和通信速度设定方法
JP2009130614A (ja) 通信制御装置、通信制御方法および通信制御プログラム
CN115599731A (zh) 一种链路协商系统、方法及设备
KR20230116469A (ko) 통신 노드의 고유 식별 번호 설정 방법, 컴퓨터 판독 가능한 기록 매체, 컴퓨터 프로그램 및 장치
CN116680224A (zh) 不对称PCIe总线设计方法、装置、总线装置及系统
US20170279662A1 (en) Communication device and communication method
JP2004153803A (ja) データ通信装置、データ通信システム、データ通信方法、データ通信プログラム及び情報記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant