CN117370232A - 具有多个端口的接口装置及其操作方法 - Google Patents
具有多个端口的接口装置及其操作方法 Download PDFInfo
- Publication number
- CN117370232A CN117370232A CN202310056949.2A CN202310056949A CN117370232A CN 117370232 A CN117370232 A CN 117370232A CN 202310056949 A CN202310056949 A CN 202310056949A CN 117370232 A CN117370232 A CN 117370232A
- Authority
- CN
- China
- Prior art keywords
- port
- controller
- buffer
- pcie
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 239000000872 buffer Substances 0.000 claims abstract description 138
- 230000009977 dual effect Effects 0.000 claims description 19
- 238000012546 transfer Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 36
- 238000011144 upstream manufacturing Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 10
- 238000012549 training Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101710178035 Chorismate synthase 2 Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101710152694 Cysteine synthase 2 Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本文中提供了一种具有多个端口的接口装置及其操作方法。接口装置可以包括第一端口、第二端口和控制器。第一端口可以包括第一端口缓冲器。第二端口可以包括第二端口缓冲器。控制器可以被配置为与第一端口和第二端口交换数据。在单端口模式下,第一端口缓冲器和第二端口缓冲器中的至少一个可以被设置为控制器的缓冲存储器。
Description
相关申请的交叉引用
本申请要求于2022年7月8日提交的申请号为10-2022-0084371的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本公开的多种实施例总体上涉及一种电子装置,并且更具体地,涉及一种具有多个端口的接口装置以及操作接口装置的方法。
背景技术
外围组件互连(PCI)定义了一种用于将输入/输出装置联接到主机装置的总线协议。高速PCI具有PCI标准中定义的编程构思,并将物理通信层定义为高速串行接口。
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置和控制存储器装置的存储器控制器。存储器装置可以分为易失性存储器装置和非易失性存储器装置。
易失性存储器装置可以是仅在电力供应时存储数据并且在电力供应中断时丢失所存储数据的存储器装置。易失性存储器装置的示例可以包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置可以是即使当电力供应中断时也仍保留所存储数据的存储器装置。非易失性存储器装置的示例可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的多种实施例涉及一种能够有效地使用多个端口中包括的缓冲器的接口装置以及操作接口装置的方法。
本公开的实施例可以提供一种接口装置。接口装置可以包括第一端口、第二端口和控制器。第一端口可以包括第一端口缓冲器。第二端口可以包括第二端口缓冲器。控制器可以被配置为与第一端口和第二端口交换数据。在单端口模式下,第一端口缓冲器和第二端口缓冲器中的至少一个可以被设置为控制器的缓冲存储器。
本公开的实施例可以提供一种操作接口装置的方法。操作接口装置的方法可以包括:检查包括多个端口和控制器的接口装置的端口模式,并且当端口模式被检查为单端口模式时,将多个端口中的未使用端口中包括的端口缓冲器设置为控制器的缓冲器。
本公开的实施例可以提供一种接口装置。接口装置可以包括第一端口和第二端口以及控制器。第一端口和第二端口均被配置为被启用以传送数据,并且第二端口具有端口缓冲器。控制器被配置为启用第一端口以在外部装置和控制器之间传送数据,同时保持第二端口停用,并且利用端口缓冲器作为控制器的缓冲器。
附图说明
图1是用于描述根据本公开的实施例的计算系统的示例的示图。
图2是用于描述根据本公开的实施例的PCIe装置的示图。
图3是用于描述根据本公开的实施例的PCIe接口的示图。
图4是用于描述根据本公开的实施例的发送器、接收器和线路(lane)的示图。
图5是示出根据本公开的实施例的端口的示图。
图6是用于描述根据本公开的实施例的PCIe装置的链路状态的示图。
图7是示出根据本公开的实施例的PCIe装置的示图。
图8A、图8B和图8C是示出根据本公开的实施例的各自具有多个端口的PCIe装置之间的连接关系的框图。
图9是示出根据本公开的实施例的通过单端口结构连接的PCIe装置的框图。
图10是示出根据本公开的实施例的通过双端口结构连接的PCIe装置的框图。
图11是示出根据本公开的实施例的PCIe装置的组件的示例的框图。
图12A和图12B是用于描述根据本公开的实施例的在数据接收和数据发送期间端口的操作的框图。
图13A是用于描述由PCIe装置在双端口模式下接收数据的示例的框图,并且图13B是用于描述由PCIe装置在单端口模式下接收数据的示例的框图。
图14A是描述根据本公开的实施例的PCIe装置在双端口模式下接收数据的框图,图14B是描述根据本公开的实施例的PCIe装置接收数据的框图。
图15是示出根据本公开的实施例的操作PCIe装置的方法的流程图。
图16是用于解释根据本公开的实施例的PCIe装置中的缓冲器访问路径的示图。
图17A和图17B是用于描述根据本公开的实施例的用于访问控制器缓冲器和端口缓冲器的地址结构的示图。
具体实施方式
作为示例,提供本说明书中所介绍的本公开的实施例中的具体结构或功能描述来描述根据本公开的构思的实施例。根据本公开的概念的实施例可以以各种形式来实践,并且不应被解释为受限于说明书中描述的实施例。
图1是用于描述根据本公开的实施例的计算系统的示例的示图。
参照图1,计算系统100可以包括中央处理单元(CPU)110、根联合体(rootcomplex)120、存储器130、交换机140、PCIe端点150-1至150-3、传统端点160-1和160-2、以及PCIe桥170。
计算系统100可以是支持使用PCIe接口的通信的电子装置。计算系统100可以包括PC、膝上型计算机或移动计算装置,并且可以包括扩展卡、扩展板、适配卡、插件卡或配件卡。而且,计算系统100可包括印刷电路板(PCB),印刷电路板可以插入到计算系统100的主板的电连接器或扩展槽中,以通过扩展总线向计算系统100提供附加功能。进一步地,计算系统100可以包括诸如固态驱动器(SSD)的存储装置,并且可以包括图形卡、网卡或通用串行总线(USB)卡。
CPU 110可以电连接到计算系统100的各个组件,并且可以控制计算系统100的各个操作。详细地,CPU 110可以通过运行操作系统或应用程序来控制连接到CPU 110的硬件或软件的组件,并且可以执行各种类型的数据处理和操作。进一步地,CPU 110可以运行用于控制计算系统100的操作的软件或应用程序。
根联合体120可以是高速外围组件互连(PCIe)互连架构中的根集线器、控制器集线器或根控制器。例如,根联合体120可以包括芯片组、存储器控制器集线器(MCH)、北桥(north bridge)、互连控制器集线器(ICH)、南桥(south bridge)和根控制器/集线器。进一步地,根联合体120可以将CPU 110和存储器130联接到输入/输出(I/O)层级。根联合体120可以支持点对点(P2P)路由。根联合体120可以包括至少一个主桥和一个根端口。根联合体120可以支持一个或多个高速外围组件互连(PCIe)端口。
存储器130可以存储计算系统100的操作所需的数据、命令或程序代码。在实施例中,存储器130可以存储可操作以运行一个或多个操作系统(OS)与虚拟机(VM)的程序代码以及运行用于管理虚拟机(VM)的虚拟化中介(VI)的程序代码。此外,存储器130可以被实施为诸如DRAM或SRAM的易失性存储器装置。
交换机140可以按照向上游或向下游的方式路由数据包或消息。详细地,交换机140可以将数据包或消息从相应PCIe端点(例如,150-1)路由到朝根联合体120的层的上部。可选地,交换机140可以将数据包或消息从根联合体120路由到朝相应PCIe端点(例如,150-2)的层的下部。
交换机140可以被称为多个虚拟PCI至PCI装置(即,虚拟PCI至PCI桥接装置)之间的桥装置的逻辑组件。可连接到交换机140的装置可以包括联接到电子系统的任意内部或外部装置或者组件,诸如I/O装置、网络接口控制器(NIC)、插件卡、音频处理器、网络处理器、硬盘驱动器、存储装置、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、可移动存储装置、火线装置、通用串行总线(USB)装置、扫描仪或附加输入/输出装置。虽然附图中未示出,但是该装置还可以包括支持传统版本或其他版本的PCIe装置的PCIe至PCI/PCI-X桥。
在实施例中,根联合体120可以联接到端点。术语“端点”是指可以是PCIe事务的请求器或完成器的功能类型。这些端点可以被分类为传统端点或PCIe端点。
PCIe端点150-1至150-3以及传统端点160-1和160-2中的每一个可以用作PCIe事务的请求器或完成器。由PCIe端点150-1至150-3和传统端点160-1和160-2发送/接收的事务层数据包(TLP)可以提供配置空间报头(header)。进一步地,PCIe端点150-1至150-3以及传统端点160-1和160-2中的每一个作为完成器可以提供配置请求。在特定条件下,由PCIe端点150-1至150-3和传统端点160-1和160-2发送/接收的事务层数据包(TLP)必须提供配置空间报头。此外,PCIe端点150-1至150-3以及传统端点160-1和160-2中的每一个作为完成器必须提供配置请求。
PCIe端点150-1至150-3以及传统端点160-1和160-2可以根据存储器事务的大小来分类。例如,当超过4GB大小的存储器事务可用时,端点可以是PCIe端点150-1至150-3,而当超过4GB大小的存储器事务不可用时,端点可以是传统端点160-1和160-2。虽然PCIe端点150-1至150-3不应该生成输入/输出请求,但是传统端点160-1和160-2可以提供或生成输入/输出请求。而且,PCIe端点150-3可以向根联合体120发送TLP/从根联合体120接收TLP。此外,PCI/PCI-X可以通过PCIe桥170向根联合体120发送TLP/从根联合体120接收TLP。PCIe端点150-1和150-2或者传统端点160-1和160-2可以向交换机140发送TLP/从交换机140接收TLP。
PCIe端点150-1至150-3中的每一个可以是具有类型00h的配置空间报头的功能。PCIe端点150-1至150-3中的每一个作为完成器可以支持配置请求。可以创建PCIe兼容软件驱动程序和应用程序,使得在访问PCIe端点150-1至150-3时不使用锁定语义(locksemantic)。用作存储器事务的请求器的PCIe端点150-1至150-3中的每一个可以生成超过4GB的地址。当请求中断资源时,可能需要PCIe端点150-1至150-3来支持消息信号中断(MSI)与MSI-X中的一个或两者。当实施MSI时,PCIe端点150-1至150-3可以支持MSI功能结构的64位消息地址版本。由基地址寄存器请求的最小存储器地址范围可以是128字节。PCIe端点150-1至150-3可以被包括在起源于根联合体120的层级域中的一个中。
传统端点160-1和160-2中的每一个可以是具有类型00h的配置空间报头的功能。传统端点160-1和160-2中的每一个作为完成器可以支持配置请求。传统端点160-1和160-2中的每一个作为完成器可以支持I/O请求。传统端点160-1和160-2可以接收针对80h和84h位置中的一个或两者的I/O请求,而不管相应端点的I/O解码配置。传统端点160-1和160-2中的每一个可以生成I/O请求。传统端点160-1和160-2中的每一个都可以实施扩展配置空间性能。用作存储器事务的请求器的传统端点160-1和160-2中的每一个可以不生成超过4GB的地址。当请求中断资源时,需要传统端点160-1和160-2来支持MSI与MSI-X中的一个或两者。当实施MSI时,传统端点160-1和160-2可以支持MSI功能结构的32位或64位消息地址版本。传统端点160-1和160-2可以支持针对请求存储器资源的基地址寄存器的32位寻址。传统端点160-1和160-2可以被包括在起源于根联合体120的层级域中的一个中。
图2是用于描述根据本公开的实施例的PCIe装置的示图。
参照图2,PCIe装置可以包括PCIe接口,并且可以是支持使用PCIe接口来发送/接收的电子装置。例如,第一PCIe装置200-1或第二PCIe装置200-2可以是图1的根联合体120、交换机140、PCIe端点150-1至150-3、传统端点160-1和160-2以及PCIe桥170中的一个。
而且,第一PCIe装置200-1或第二PCIe装置200-2可以使用第一PCIe接口210-1或第二PCIe接口210-2执行通信。详细地,第一PCIe装置200-1可以使用第一PCIe接口210-1将待从第二PCIe装置200-2发送的数据转换为适合通信的协议。而且,第一PCIe装置200-1和第二PCIe装置200-2可以形成链路,并且可以通过所形成的链路彼此通信。例如,第一PCIe装置200-1或第二PCIe装置200-2可以通过链路发送/接收数据包。
图3是用于描述根据本公开的实施例的PCIe接口的示图。
参照图3,示出了第一PCIe接口210-1和第二PCIe接口210-2。因为第一PCIe接口210-1和第二PCIe接口210-2可以以相同的结构形成,所以下面基于第一PCIe接口210-1进行说明。
第一PCIe接口210-1中包括的PCIe层可以包括三个离散的逻辑层。例如,第一PCIe接口210-1可以包括事务层、数据链路层和物理层。层中的每一个可以包括两个区段。区段中的一个可以处理出站(outbound)信息(或待发送的信息),而另一区段可以处理入站(inbound)信息(或接收到的信息)。而且,第一PCIe接口210-1可以使用数据包在其他PCIe接口之间进行信息通信。
在PCIe接口的结构中,上层可以是事务层。事务层可以汇集(assemble)或分解(disassemble)事务层数据包(TLP)。进一步地,事务层可以实施拆分事务,即,在目标系统收集响应所需的数据的同时,允许附加流量通过链路传送的事务。例如,事务层可以实施请求和响应暂时分开的事务。在实施例中,四个事务地址空间可以包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务可以包括读取请求和写入请求中的至少一个,读取请求用于从存储器映射位置传递数据,写入请求用于向存储器映射位置传递数据。在实施例中,存储器空间事务可以使用两种不同的地址格式,例如,诸如32位地址的短地址格式或诸如64位地址的长地址格式。配置空间事务可以被用于访问PCIe装置的配置空间。针对配置空间的事务可以包括读取请求和写入请求。可以定义消息空间事务(或消息)以支持PCIe装置之间的带内通信。
事务层可以存储链路配置信息等。进一步地,事务层可以生成TLP,或者可以将接收到的TLP转换为有效载荷或状态信息。
在PCIe接口的结构中,中间层可以是数据链路层,并且数据链路层可以用作事务层和物理层之间的中间级(intermediate stage)。数据链路层的主要功能可以是链路管理和数据完整性,包括错误检测和错误校正。具体地,数据链路层的发送侧可以接收由事务层汇集的TLP,分配数据保护码,或者计算TLP序列号。此外,数据链路层的发送侧可以通过链路将数据保护码和TLP序列号发送到物理层以发送相应的数据。数据链路层的接收侧可以检查从物理层接收的TLP的数据完整性,并且将TLP发送到事务层以执行附加处理。
物理层可以包括用于接口操作的所有电路。此处,所有电路可以包括驱动器、输入缓冲器、串并转换电路、并串转换电路、锁相环(PLL)和阻抗匹配电路。
进一步地,物理层可以包括用于将数据包物理地发送到外部PCIe装置的逻辑子块和电力子块。此处,逻辑子块可以执行物理层的“数字”功能所必需的角色。对此,逻辑子块可以包括:发送区段,通过物理子块准备待发送的发出信息;以及接收区段,在将所接收的信息传递到数据链路层之前识别和准备所接收的信息。物理层可以包括发送器和接收器。可以通过逻辑子块向发送器供应符号,该符号由发送器序列化并发送到外部装置。进一步地,可以从外部装置向接收器供应序列化符号,并且接收器可以将接收到的信号转换为位流。位流可以被反序列化并被供应到逻辑子块。也就是说,物理层可以将从数据链路层接收到的TLP转换为序列化格式,并且将从外部装置接收到的数据包转换为反序列化格式。此外,物理层可以包括与接口初始化和维护相关的逻辑功能。
虽然图3通过示例的方式示出了第一PCIe接口210-1和第二PCIe接口210-2的结构,但是PCIe接口可以包括诸如以下的任意形式:快速路径互连结构、下一代高性能计算互连结构或其他分层结构。
图4是用于描述根据本公开的实施例的发送器、接收器和线路的示图。
参照图4,示出了第一发送器TX1、第二发送器TX2、第一接收器RX1和第二接收器RX2。线路可以包括路径对,路径对包括差分驱动信号对,例如被配置成用于发送的发送路径对以及被配置成用于接收的接收路径对。每个PCIe装置可以包括向附加PCIe装置发送数据的发送逻辑以及从附加PCIe装置接收数据的接收逻辑。例如,PCIe装置可以包括联接到第一发送器TX1的两个发送路径和联接到第一接收器RX1的两个接收路径。
此处,术语“发送路径”可以指用于发送数据的任意路径,诸如发送线、铜线、光线、无线通信信道、红外通信链路或附加通信路径。进一步地,术语“接收路径”可以指以与发送路径相同的方式实施但用于接收的路径。
两个PCIe装置(例如,图2的第一PCIe装置200-1和第二PCIe装置200-2)之间的连接可以被称为链路。这种链路可以支持一个或多个线路。例如,链路可以包括多个线路。另外,每个线路可以指示一组差分信号对(一对用于发送,并且另一对用于接收)。差分信号可以指具有相同频率和幅度但具有相反相位的两个信号。例如,当第一信号指示电压电平从0切换到V+的上升沿时,第二信号可以进行至电压电平从0切换到V-的下降沿。例如,PCIe装置可以基于差分信号使用信号完整性(例如,诸如交叉联接、电压过冲/下冲、振铃的电气特性),并且可以将发送频率调整到更高的频率。另外,PCIe装置可以包括多个线路来调节带宽。例如,两个PCIe装置可以形成包括诸如1、2、4、8、12、16或64个线路的链路。
图5是用于描述根据本公开的实施例的端口的示图。
参照图5,示出了分别包括在第一PCIe装置200-1和第二PCIe装置200-2中的下游端口215-1和上游端口215-2。
在实施例中,第一PCIe装置200-1可以是比第二PCIe装置200-2更高的层,并且数据移动和发送到更高层可以被指定为“上游传送”。相反,数据移动和发送到更低层可以被指定为“下游传送”。例如,参照图1,交换机140可以支持下游路由和上游路由。详细地,上游路由可以是数据包或消息从PCIe端点(例如,150-1)路由到朝根联合体120的层的上部,下游路由可以指示数据包或消息从根联合体120路由到朝PCIe端点(例如,150-2)的层的下部。
在实施例中,包括下游端口215-1的第一PCIe装置200-1可以被称为“上游组件”。此处,上游组件可以指示图1的根联合体120或交换机140。进一步地,包括上游端口215-2的第二PCIe装置200-2可以被称为“下游组件”。此处,下游组件可以指示图1的交换机140、PCIe端点150-1和150-2、传统端点160-1和160-2以及PCIe桥170中的一个。
下游端口215-1和上游端口215-2中的每一个可以包括发送器Tx、接收器RX和锁相环(PLL)电路。PLL电路可以使用由时钟信号生成器CLK GEN提供的时钟信号来生成待提供给发送器Tx或接收器Rx的时钟信号。PLL电路可以通过乘以从时钟信号生成器CLK GEN接收的信号来生成生具有改变频率的时钟信号。例如,PLL电路可以乘以具有100MHz频率的参考时钟信号REFCLK以输出具有2.5GHz频率的时钟信号。发送器Tx可以使用PLL电路的输出信号将并行数据信号转换成串行数据信号,并且可以将串行数据信号发送到外部装置,例如,外部PCIe装置。接收器Rx可以接收从外部装置发送的串行数据信号,并且可以生成用于重构接收到的串行数据信号的时钟信号以及用于使用PLL电路的输出信号将重构的串行数据信号转换成并行数据信号的时钟信号。时钟信号生成器CLK GEN可以生成用于PCIe接口的操作的参考时钟信号REFCLK。此处,PCIe接口的操作可以与外部PCIe装置通信。
图6是用于描述根据本公开的实施例的PCIe装置的链路状态的示图。
参照图6,描绘了PCIe装置的链路状态,诸如检测状态、轮询状态、配置状态、热重置状态、禁用状态和L0状态。
检测状态可以指在通电操作或重置操作之后的初始状态,并且可以是从以下状态进入的状态。例如,检测状态可以是从配置状态、热重置状态、禁用状态、L2状态、回环状态和恢复状态进入的状态。检测状态可以用于重置所有逻辑、端口和寄存器,并且可以是检测联接到PCIe接口的链路的步骤。也就是说,检测状态可以指示发现物理连接的线路的步骤。
轮询状态可以指示识别检测到的线路之中能够进行数据通信的线路的状态。轮询状态可以指示PCIe接口两端的时钟彼此同步,检查线路的极性是D+还是D-,检查线路可用的数据传送速率的步骤。也就是说,轮询状态可以指示检查极性反转的状态。进一步地,处于轮询状态的链路可以进入检测状态或配置状态。
配置状态可以是检查线路的联接状态的状态。详细地,配置状态可以是启用数据通信的线路宽度固定的状态。进一步地,配置状态可以指示检查线路反向的步骤。配置状态可以从轮询状态进入。可选地,当在进入L0状态之后,发生线路减少并且线路宽度增加(线路宽度上升)时,链路状态可以进入配置状态。
恢复状态可以是用于重新配置链路带宽的状态。恢复状态可以用于改变已建立链路的链路带宽,并且可以重置位锁定、符号锁定和线路间对齐(lane-to-lane deskew)。当在L0状态下发生错误时可以进入恢复状态,并且可以在恢复状态下恢复错误之后改变为L0状态。进一步地,根据本公开的实施例,在恢复状态下可以执行链路均衡操作。
L0状态可以是可以通过链路发送和接收数据以及数据包的正常操作状态。详细地,L0状态可以是可以发送和接收数据和控制数据包的物理总线接口的操作状态。L0状态可以是完全启用状态。
L0s状态可以是使物理总线接口能够快速从节电状态进入并在不经恢复状态的情况下从节电状态中恢复的状态。L0s状态可以是省电状态。L0s状态可以是接口中的一些功能处于空闲状态或待机状态的状态。
L1状态可以为省电状态。L1状态可以是在L0s状态基础上增加省电的状态。L1状态可以是低功率待机状态。
L2状态可以是启用省电状态。大多数发送器和接收器可能会关闭。可能无法保证主电源和时钟,但可以提供辅助电源。L2状态可以是不向大多数功能供应电力的低功率睡眠状态。回环状态可以是在测试和故障中单独使用所需的状态。回环状态仅基于线路进行操作,其中必须选择和配置回环接收线路。
禁用状态可以是禁用所建立的链路直到发出指示的状态。热重置状态仅可以由下游端口触发。下游端口可以使用训练序列(例如,TS1或TS2)来传播热重置。此处,训练序列(TS)可以是用于初始化位对齐、执行符号对齐并且交换物理层参数的对齐集。在本说明书中,“训练序列”可以被称为“训练序列有序集”。
图7是示出根据本公开的实施例的PCIe装置的示图。
参照图7,PCIe装置300可以包括多个端口P1至Pn和链路控制器301。
多个端口P1至Pn可以形成多个线路。例如,如图4中所示,一个端口可以与附加PCIe装置中包括的端口一起形成一个线路。在实施例中,多个端口P1至Pn中的每一个可以是下游端口或上游端口。例如,当多个端口P1至Pn是下游端口时,PCIe装置300可以是上游组件。进一步地,当多个端口P1至Pn是上游端口时,PCIe装置300可以是下游组件。多个端口P1至Pn中的每一个都可以包括接收器和发送器。
链路控制器301可以建立链路。此处,链路可以包括多个端口P1至Pn。此处,链路可以由多个端口P1至Pn形成。例如,链路控制器301可以执行建立链路的链路建立操作。此处,链路建立操作可以表示初始化和配置链路以使链路正常操作的过程。链路建立操作可以指示基于PCIe规范的链路初始化和训练操作。
在实施例中,链路控制器301可以包括链路训练和状态状态机(LinklingTraining and Status State Machine,LTSSM)。LTSSM可以是用于执行链路建立操作的组件。
链路控制器301可以执行链路宽度和线路编号协商。此处,链路宽度可以指示形成链路的线路数量。例如,链路控制器710可以在建立链路的过程期间确定链路宽度。线路编号可以指示分配给链路中包括的每个线路的编号。例如,在建立链路的过程期间,链路控制器710可以协商待分配给每个线路的编号,并根据协商的结果确定每个线路的线路编号。此处,所确定的线路编号可以发送到附加PCIe装置,然后附加PCIe装置可以接收相应的线路编号。
在实施例中,链路控制器710可以在建立链路的过程期间检测多个线路之中的故障线路。此处,故障线路可以是具有无法与其他线路一起形成链路的状态的线路。其余线路可以是除了故障线路之外的线路,并且可以包括多条线路之中除了故障线路之外的所有线路。例如,当线路中包括的发送路径或接收路径出现问题时,相应线路可能是故障线路。在这种情况下,故障线路在发送数据时可能无法正常操作。例如,当链路的状态指示检测状态时,链路控制器301可以通过与检测状态相对应的链路建立操作来检测故障线路。与检测状态相对应的链路建立操作可以是被执行为在检测状态下建立链路的操作,并且可以包括在链路两端共同检测链路的操作。例如,两端可以是通过链路彼此连接的不同PCIe装置中包括的端口。此后,链路控制器301可以对多条线路之中除了故障线路之外的线路执行与检测状态相对应的链路建立操作。此外,当链路的状态指示轮询状态时,链路控制器301可以通过与轮询状态相对应的链路建立操作来检测故障线路。此处,与轮询状态相对应的链路建立操作可以是被执行为在轮询状态下建立链路的操作,并且可以包括发送/接收训练序列有序集的操作。例如,与轮询状态相对应的链路建立操作可以包括通过链路联接的端口之间发送/接收训练序列有序集的操作。此后,链路控制器301可以对其余线路执行与轮询状态相对应的链路建立操作。
在实施例中,链路控制器301可以建立链路,使得该链路具有包括其余线路的链路宽度。例如,当链路的状态指示配置状态时,链路控制器301可以对其余线路执行与配置状态相对应的链路建立操作。此处,与配置状态相对应的链路建立操作可以是被执行为在配置状态下建立链路的操作。例如,与配置状态相对应的链路建立操作可以包括设置链路宽度的操作、确定线路编号的操作、线路间对齐操作等。
例如,链路控制器301可以在配置状态下确定每个链路的链路编号,并且可以确定其余线路的各个线路编号。此处,链路控制器301可以通过线路编号协商操作确定其余线路的线路编号。在实施例中,链路控制器301可以确定其余线路的各个线路编号,使得其余线路的线路编号依次增加或减少。
在实施例中,链路控制器301可以将通过多个端口P1至Pn确定的链路编号以及各自确定的其余线路的线路编号提供给与多个端口P1至Pn一起形成多个线路的其他端口。此处,其他端口可以是除了PCIe装置300之外的附加PCIe装置中包括的端口。例如,链路控制器301可以使用训练序列有序集将所确定的链路编号和所确定的其余线路的线路编号提供给其他端口。在这种情况下,附加的PCIe装置可以接受链路编号和其余线路的各个线路编号。
图8A、图8B和图8C是示出根据本公开的实施例的各自具有多个端口的PCIe装置之间的连接关系的框图。
参照图8A,示出了包括两个下游端口310和320的第一PCIe装置300、包括上游端口215-2的第二PCIe装置200-2以及包括上游端口215-3的第三PCIe装置200-3。如图8A中所示,包括两个下游端口310和320的第一PCIe装置300可以连接到两个不同的PCIe装置。
参照图8B,示出了包括下游端口215-1的第一PCIe装置200-1、包括下游端口215-2的第二PCIe装置200-2以及包括两个上游端口410和420的第三PCIe装置400。如图8B中所示,包括两个上游端口410和420的第三PCIe装置400可以连接到两个不同的PCIe装置。
参照图8C,示出了包括两个下游端口310和320的第一PCIe装置300以及包括两个上游端口410和420的第二PCIe装置400。如图8C所示,第一PCIe装置300和第二PCIe装置400可以通过两个下游端口310和320以及两个上游端口410和420相互连接。
图9是示出根据本公开的实施例的通过单端口结构连接的PCIe装置的框图。
参照图9,示出了包括两个下游端口310和320的第一PCIe装置300、包括上游端口215-2的第二PCIe装置200-2以及包括上游端口215-3的第三PCIe装置200-3。也就是说,图9所示的PCIe装置之间的连接关系可以与图8A所示的PCIe装置之间的连接关系基本相同。
在实施例中,第二PCIe装置200-2和第三PCIe装置200-3可以通过各个x2链路连接到第一PCIe装置300。也就是说,第一PCIe装置300的第一下游端口310和第二PCIe装置200-2的上游端口215-2可以被配置为x2链路。进一步地,第一PCIe装置300的第二下游端口320和第三PCIe装置200-3的上游端口215-3可以被配置为x2链路。
第二PCIe装置200-2和第三PCIe装置200-3中的每一个可以通过一个上游端口连接到第一PCIe装置300。也就是说,第二PCIe装置200-2和第三PCIe装置200-3中的每一个可以通过单端口结构连接到第一PCIe装置300。在这种情况下,第二PCIe装置200-2和第一PCIe装置300之间的链路宽度可以基本上是一个端口的带宽。进一步地,第三PCIe装置200-3与第一PCIe装置300之间的链路宽度也可以是一个端口的带宽。
图10是示出根据本公开的实施例的通过双端口结构连接的PCIe装置的框图。
参照图10,示出了包括两个下游端口310和320的第一PCIe装置300和包括两个上游端口410和420的第二PCIe装置400。也就是说,图10所示的PCIe装置之间的连接关系可以与图8C所示的PCIe装置之间的连接关系基本相同。
在图10所示的连接关系中,第一PCIe装置300和第二PCIe装置400通过双端口结构相互连接。因此,第一PCIe装置300和第二PCIe装置400之间的链路宽度可以基本上是两个端口的带宽。
例如,第一PCIe装置300的第一下游端口310和第二PCIe装置400的第一上游端口410可以被配置为x2链路。进一步地,第一PCIe装置300的第二下游端口320和第二PCIe装置400的第二上游端口420可以被配置为x2链路。在这种情况下,第一PCIe装置300和第二PCIe装置400可以基本上通过x4链路相互连接。
图11是示出根据本公开的实施例的PCIe装置的组件的示例的框图。
参照图11,PCIe装置400可以包括第一端口410、第二端口420、PCIe控制器430和存储介质440。图11所示的PCIe装置400例如可以是存储装置。例如,PCIe装置400可以是固态驱动器(SSD)。在这种情况下,存储装置可以包括多个非易失性存储器装置。在示例中,存储装置可以包括多个NAND闪速存储器装置。当SSD装置支持双端口结构时,它可以以更高的速度与主机装置交换数据。
PCIe控制器430可以控制PCIe装置400的全部操作。当PCIe装置400为SSD时,PCIe控制器430可以控制将数据存储到存储介质440中以及从存储介质400读取数据的操作。在示例中,PCIe控制器430可以用作控制存储介质440的操作的存储器控制器。在这种情况下,PCIe控制器430可以包括用于运行内部固件的CPU。进一步地,PCIe控制器430可以包括缓冲存储器、错误校正电路等。
图12A和图12B是用于描述在数据接收和数据发送期间端口的操作的框图。
参照图12A,示出了图11的PCIe装置400中包括的第一端口410的详细配置。第一端口410可以包括外部输入/输出电路411、端口缓冲器413、端口控制器415和内部输入/输出电路417。在数据接收期间,数据可以沿着图12A中指示的箭头的指向方向移动。例如,从外部装置接收的数据可以通过外部输入/输出电路411存储在端口缓冲器413中,然后可以通过内部输入/输出电路417传送到PCIe控制器430。在示例中,接收到的数据可以是写入数据,并且PCIe控制器430可以控制存储介质440编程接收到的写入数据。
端口缓冲器413可以被实施为临时存储通过外部输入/输出电路411接收的数据的存储器装置。在示例中,端口缓冲器413可以包括静态RAM(SRAM)。此外,端口控制器415可以响应于控制信号CS而控制端口缓冲器413的数据输入/输出操作。
在数据输出期间,数据可以沿着图12B所示的箭头指向的方向移动。例如,当从外部装置接收到数据读取请求时,存储介质440可以在PCIe控制器430的控制下执行数据读取操作。读取数据可以通过PCIe控制器430传送到第一端口410。详细地,从PCIe控制器430接收的数据可以通过内部输入/输出电路417存储在端口缓冲器413中,然后可以通过外部输入/输出电路411输出到外部装置。
图13A是用于描述根据本公开的实施例的PCIe装置在双端口模式下接收数据的示例的框图,并且图13B是用于描述根据本公开的实施例的PCIe装置在单端口模式下接收数据的示例的框图。
参照图13A,示出了用于使用第一端口410和第二端口420二者接收数据的PCIe装置。如上所述,在数据接收期间,数据可以沿着图13A中指示的箭头的指向方向移动。例如,从外部装置接收的数据可以通过外部输入/输出电路411和421存储在端口缓冲器413和423中,然后可以通过内部输入/输出电路417和427传送到PCIe控制器430。尽管在图13A中未示出,但是可以看出的是,在数据输出期间,数据以与图13A中指示的箭头相反的方向移动。
如上所述,包括两个端口的PCIe装置400可以在双端口模式下更快地传送数据。但是,如果需要,可以仅使用两个端口中的一个。例如,当连接到PCIe装置400的附加装置仅支持单端口结构时,PCIe装置400也可以使用单端口结构。在示例中,当在链路建立的过程期间或在使用链路时与PCIe装置400中包括的两个端口中的一个的连接出现异常时,可以仅使用另一端口。
在这种情况下,如图13B所示,PCIe装置400可以仅使用第一端口410以单端口模式操作。也就是说,可以仅通过第一端口410执行数据发送/接收。在这种情况下,不使用第二端口420。此处,不使用第二端口420中包括的端口缓冲器423是低效的。
根据根据本公开的实施例的PCIe装置,当包括多个端口的PCIe装置在单端口模式下操作时,可以设置PCIe装置使得PCIe控制器可以访问未使用端口中包括的端口缓冲器。在这种情况下,PCIe控制器可以使用未使用端口缓冲器作为附加的缓冲存储器。因此,PCIe控制器在单端口模式下所使用的缓冲存储器的大小可能增加。
图14A是描述根据本公开的实施例的PCIe装置在双端口模式下接收数据的框图,图14B是描述根据本公开的实施例的PCIe装置接收数据的框图。
参照图14A,根据本公开的实施例的PCIe装置500可以包括第一端口510、第二端口520、PCIe控制器530和存储介质540。第一端口510和第二端口520中的每一个可以包括外部输入/输出电路511或521、端口缓冲器513或523、端口控制器515或525和内部输入/输出电路517或527。PCIe控制器530包括控制器缓冲器535。控制器缓冲器535可以是PCIe控制器530可访问的缓冲存储器。在实施例中,控制器缓冲器535可以包括静态RAM(SRAM)或动态RAM(DRAM)中的至少一个。
在双端口模式下,第一端口510和第二端口520二者被使用。因此,分别包括在第一端口510和第二端口520中的端口缓冲器513和523可以用于各个端口中的数据移动。因此,在双端口模式下,第一端口510和第二端口520中包括的端口控制器515和525可以控制各自的端口缓冲器513和523,使得端口缓冲器被用于外部输入/输出电路511和521与内部输入/输出电路517和527之间的数据传送。详细地,端口控制器515和525可以响应于第一控制信号CS1而控制端口缓冲器513和523。通过该方式,可以控制端口缓冲器513和523在外部输入/输出电路511和521与内部输入/输出电路517和527之间传送数据。在双端口模式下,PCIe控制器530无法访问端口缓冲器513和523。也就是说,在双端口模式下,PCIe控制器530仅通过第一端口510和第二端口520接收从外部装置接收的数据,或者将待输出到外部装置的数据传送到第一端口510和第二端口520,但不能将任意数据存储到各个端口中包括的端口缓冲器513和523中。
参照图14B,例如,在单端口模式下可以仅使用第一端口510。在这种情况下,第一端口510中包括的端口缓冲器513可以用于第一端口510中的数据移动。因此,第一端口510的端口控制器515可以响应于第一控制信号CS1而控制端口缓冲器513。PCIe控制器530无法访问使用中的第一端口510的端口缓冲器513。
第二端口520中包括的端口缓冲器523可以被设置为由PCIe控制器530可访问。详细地,第二端口520的端口控制器525可以响应于第二控制信号CS2而控制端口缓冲器523。在这种情况下,端口缓冲器523可以被设置为通过内部输入/输出电路527向PCIe控制器530发送数据/从PCIe控制器530接收数据。更具体地,端口缓冲器523可以在PCIe控制器530的控制下存储从PCIe控制器530接收的数据。此外,端口缓冲器523可以在PCIe控制器530的控制下将所存储的数据传送到PCIe控制器530。在单端口模式下,PCIe控制器530可以利用第二端口520的端口缓冲器523作为缓冲存储器,除了现有的控制器缓冲器535之外没有额外使用该端口缓冲器523。
如图14B所示,示出的是,在单端口模式下,PCIe控制器530通过内部输入/输出电路527与端口缓冲器523交换数据。也就是说,在单端口模式和双端口模式下,PCIe控制器530和端口缓冲器523之间的数据移动路径被示为彼此相同。然而,这仅是示例,并且本公开不限于此。
例如,在单端口模式下,PCIe控制器530可以通过绕过(bypass)内部输入/输出电路527的单独路径与端口缓冲器523交换数据。例如,PCIe控制器530可以通过用于调试第二端口520的专用路径与端口缓冲器523交换数据。用于调试的专用路径可以不同于联接到端口缓冲器523以在双端口模式下执行数据输入/输出的路径。
图15是示出根据本公开的实施例的操作PCIe装置的方法的流程图。
参照图15,根据本公开的实施例的操作PCIe装置的方法可以包括:在操作S110,检查接口装置的端口模式;当端口模式为多端口模式时(在操作S130为“是”的情况下),在步骤S150,设置多个端口中包括的端口缓冲器,使得端口缓冲器用作各个端口的专用缓冲器;或者当端口模式为单端口模式时(在操作S130为“否”的情况下),在操作S170,设置端口缓冲器,使得多个端口之中的未使用端口中包括的端口缓冲器用作控制器缓冲器。
在操作S110,可以确定图14A和图14B的PCIe装置500当前是在双端口模式还是单端口模式下使用。PCIe装置的端口模式可以由外部主机装置设置。详细地,当PCIe装置与主机装置相互连接时,可以设置PCIe装置的端口模式。此处,PCIe装置可以确定端口模式是设置为双端口模式还是单端口模式。
当PCIe装置的端口模式为多端口模式时,例如双端口模式(在操作S130为“是”的情况下),在操作S150,可以设置端口缓冲器,使得多个端口中包括的端口缓冲器用于相应端口中的数据移动。在这种情况下,PCIe控制器无法访问单独的端口缓冲器。
当PCIe装置的端口模式是单端口模式时(在操作S130为“否”的情况下),端口缓冲器被设置为使得PCIe控制器可以访问多个端口之中的未使用端口中包括的端口缓冲器。通过该方式,在操作S170,未使用端口中包括的端口缓冲器可以用作PCIe控制器的控制器缓冲器。即使在这种情况下,在使用中的端口中包括的端口缓冲器可以被设置为用于相应端口中的数据移动,并且PCIe控制器无法访问端口缓冲器。
图16是用于描述根据本公开的实施例的PCIe装置中的缓冲器访问路径的示图。
参照图16,除了控制器缓冲器535之外,PCIe装置500的PCIe控制器530还可以包括处理器531。PCIe控制器530的处理器531可以访问控制器缓冲器535和端口缓冲器523。在实施例中,处理器531可以通过第一路径P1访问控制器缓冲器535。而且,处理器531可以通过第二路径P2访问端口缓冲器523。在实施例中,第二路径P2可以是用于调试第二端口的路径。
第一路径P1可以是处理器531内部访问PCIe控制器530中的控制器缓冲器535的路径。在实施例中,控制器缓冲器535可以被实施为静态RAM(SRAM)。当控制器缓冲器535被实施为SRAM时,控制器缓冲器535可以被实施为被划分成具有一定大小的区域的缓冲池。在这种情况下,可以通过第一基地址和由偏移值定义的地址来访问控制器缓冲器535的各个区域。
当端口缓冲器523用作PCIe控制器的缓冲器时,可以使用不同于控制器缓冲器535的第一基地址的附加地址。端口缓冲器523也可以被实施为被划分为具有一定大小的区域的缓冲池,并且可以通过第二基地址和由偏移值定义的地址访问。
由第一基地址和偏移值指定的控制器缓冲器535的数据单位可以不同于由第二基地址和偏移值指定的端口缓冲器523的数据单位。下文中,将参照图17A和图17B进行描述。
图17A和图17B是用于描述根据本公开的实施例的用于访问控制器缓冲器和端口缓冲器的地址结构的示图。
参照图16和图17A,控制器缓冲器535可以被划分成N个区域RG1_1、RG1_2、……、RG1_N。在实施例中,控制器缓冲器535的区域可以存储具有4KB大小的数据。然而,这仅是示例,并且控制器缓冲器535的区域中的每一个可以存储具有除了4KB之外的任意大小的数据。可以通过与区域RG1_1、RG1_2、……、RG1_N相对应的地址AD1_1、AD1_2、……、AD1_N来访问各个区域RG1_1、RG1_2、……、RG1_N。
在实施例中,地址AD1_1可以为第一基地址。第一基地址可以是用于通过第一路径P1访问控制器缓冲器535的地址。地址AD1_2可以是通过将第一基地址加上与4KB相对应的偏移量而获得的地址。地址AD1_3可以是通过将第一基地址加上与8KB相对应的偏移量而获得的地址。地址AD1_4可以是通过将第一基地址加上与12KB相对应的偏移量而获得的地址。以这种方式,地址AD1_N可以是通过将第一基地址加上与(N-1)*4KB相对应的偏移量而获得的地址。
参照图16和图17B,端口缓冲器523可以被划分成M个区域RG2_1、RG2_2、……、RG2_M。在实施例中,端口缓冲器523的区域可以存储具有8KB大小的数据。然而,这仅是示例,并且端口缓冲器523的区域中的每一个可以存储具有除了8KB之外的任意大小的数据。可以通过与区域RG2_1、RG2_2、……、RG2_M相对应的地址AD2_1、AD2_2、……、AD2_M来访问各个区域RG2_1、RG2_2、……、RG2_M。
在实施例中,地址AD2_1可以为第二基地址。第二基地址可以是用于通过第二路径P2访问端口缓冲器523的地址。在实施例中,第二路径P2可以是用于调试第二端口520的专用路径。地址AD2_2可以是通过将第二基地址加上与8KB相对应的偏移量而获得的地址。地址AD2_3可以是通过将第二基地址加上与16KB相对应的偏移量而获得的地址。地址AD2_4可以是通过将第二基地址加上与24KB相对应的偏移量而获得的地址。以这种方式,地址AD2_M可以是通过将第二基地址加上与(M-1)*8KB相对应的偏移量而获得的地址。
如上所述,通过第一路径P1访问控制器缓冲器535的地址结构可以不同于通过第二路径P2访问端口缓冲器523的地址结构。在实施例中,第二路径P2可以是用于调试第二端口520的路径。
根据本公开的实施例,可以提供一种能够有效地使用多个端口中包括的缓冲器的接口装置以及操作该接口装置的方法。
虽然已经针对特定实施例描述了本发明,但是对于本领域的技术人员来说显而易见的是,在不脱离由所附权利要求书限定的本发明的精神和范围的情况下可以进行各种改变和修改。此外,可以组合这些实施例以形成额外的实施例。
Claims (17)
1.一种接口装置,包括:
第一端口,包括第一端口缓冲器;
第二端口,包括第二端口缓冲器;以及
控制器,与所述第一端口和所述第二端口交换数据,
其中,在单端口模式下,所述第一端口缓冲器和所述第二端口缓冲器中的至少一个被设置为所述控制器的缓冲存储器。
2.根据权利要求1所述的接口装置,其中,在双端口模式下,所述第一端口缓冲器和所述第二端口缓冲器中的每一个在外部装置与所述控制器之间传送数据。
3.根据权利要求2所述的接口装置,其中:
所述第一端口进一步包括第一外部输入/输出电路、第一内部输入/输出电路和第一端口控制器,
所述第二端口进一步包括第二外部输入/输出电路、第二内部输入/输出电路和第二端口控制器;以及
在所述双端口模式下,所述第一端口控制器和所述第二端口控制器响应于第一控制信号而分别控制所述第一端口缓冲器和所述第二端口缓冲器在所述第一外部输入/输出电路和所述第二外部输入/输出电路与所述第一内部输入/输出电路和所述第二内部输入/输出电路之间传送数据。
4.根据权利要求3所述的接口装置,
其中,所述第一外部输入/输出电路和所述第二外部输入/输出电路联接到所述外部装置,并且
所述第一内部输入/输出电路和所述第二内部输入/输出电路联接到所述控制器。
5.根据权利要求1所述的接口装置,其中,在所述单端口模式下,所述第一端口缓冲器在外部装置与所述控制器之间传送数据,并且所述第二端口缓冲器被设置为所述控制器的缓冲存储器。
6.根据权利要求5所述的接口装置,
其中,所述第一端口进一步包括第一外部输入/输出电路、第一内部输入/输出电路和第一端口控制器,
所述第二端口进一步包括第二外部输入/输出电路、第二内部输入/输出电路和第二端口控制器,
在所述单端口模式下,所述第一端口控制器响应于第一控制信号控制所述第一端口缓冲器在所述第一外部输入/输出电路与所述第二内部输入/输出电路之间传送数据,并且
在所述单端口模式下,所述第二端口控制器响应于第二控制信号控制所述第二端口缓冲器在其中存储从所述控制器接收的数据。
7.根据权利要求6所述的接口装置,其中,在所述单端口模式下,所述第二端口缓冲器通过所述第二内部输入/输出电路与所述控制器交换数据。
8.根据权利要求6所述的接口装置,其中,在所述单端口模式下,所述第二端口缓冲器通过绕过所述第二内部输入/输出电路的路径与所述控制器交换数据。
9.根据权利要求8所述的接口装置,其中,所述路径用于调试所述第二端口。
10.一种操作接口装置的方法,所述方法包括:
检查包括多个端口和控制器的接口装置的端口模式;并且
当所述端口模式被检查为单端口模式时,将所述多个端口中的未使用端口中包括的端口缓冲器设置为所述控制器的缓冲器。
11.根据权利要求10所述的方法,其中,设置所述未使用端口中包括的端口缓冲器包括:控制所述端口缓冲器在其中存储从所述控制器接收的数据。
12.根据权利要求11所述的方法,其中,所述控制包括通过用于调试所述未使用端口的路径将数据存储在所述端口缓冲器中。
13.根据权利要求10所述的方法,进一步包括:将所述多个端口之中正在使用的端口中包括的端口缓冲器设置为所述正在使用的端口的专用缓冲器。
14.根据权利要求13所述的方法,其中,在所述正在使用的端口中包括的端口缓冲器被设置用于外部装置和所述控制器之间的数据传送。
15.根据权利要求10所述的方法,进一步包括:当所述端口模式被检查为多端口模式时,将所述多个端口中包括的端口缓冲器分别设置为所述多个端口的专用缓冲器。
16.根据权利要求15所述的方法,其中,所述多个端口中包括的端口缓冲器被设置用于外部装置和所述控制器之间的数据传送。
17.一种接口装置,包括:
第一端口和第二端口,每个端口被启用以传送数据,所述第二端口具有端口缓冲器;以及
控制器,启用所述第一端口以在外部装置和控制器之间传送数据,同时保持所述第二端口停用,并且利用所述端口缓冲器作为所述控制器的缓冲器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220084371A KR20240007454A (ko) | 2022-07-08 | 2022-07-08 | 복수의 포트들을 포함하는 인터페이스 장치 및 그 동작 방법 |
KR10-2022-0084371 | 2022-07-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370232A true CN117370232A (zh) | 2024-01-09 |
Family
ID=89404761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310056949.2A Pending CN117370232A (zh) | 2022-07-08 | 2023-01-17 | 具有多个端口的接口装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240012770A1 (zh) |
KR (1) | KR20240007454A (zh) |
CN (1) | CN117370232A (zh) |
-
2022
- 2022-07-08 KR KR1020220084371A patent/KR20240007454A/ko unknown
- 2022-12-05 US US18/074,616 patent/US20240012770A1/en active Pending
-
2023
- 2023-01-17 CN CN202310056949.2A patent/CN117370232A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20240007454A (ko) | 2024-01-16 |
US20240012770A1 (en) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7356636B2 (en) | Virtualized PCI switch | |
US7752376B1 (en) | Flexible configuration space | |
KR20150058600A (ko) | 플렉시블 서버 시스템 | |
JP2022507935A (ja) | 代替プロトコルの選択 | |
CN115391262A (zh) | 高速外围组件互连接口装置及其操作方法 | |
KR102518317B1 (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
KR102635457B1 (ko) | PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 | |
US11815941B2 (en) | Peripheral component interconnect express device and operating method thereof | |
CN117370232A (zh) | 具有多个端口的接口装置及其操作方法 | |
US20230315591A1 (en) | PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME | |
KR102519480B1 (ko) | PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 | |
CN114968860B (zh) | 高速外围组件互连接口装置以及包括该接口装置的系统 | |
US20230315672A1 (en) | Interface device and computing system including the same | |
CN220438930U (zh) | 一种接口扩展装置 | |
CN220475065U (zh) | 一种基于监控网络安全设备的接口转换装置 | |
US11960367B2 (en) | Peripheral component interconnect express device and operating method thereof | |
US20240104035A1 (en) | Peripheral component interconnect express device and operating method thereof |
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 |