CN115114215A - 高速外围组件互连接口装置及其操作方法 - Google Patents

高速外围组件互连接口装置及其操作方法 Download PDF

Info

Publication number
CN115114215A
CN115114215A CN202111206763.8A CN202111206763A CN115114215A CN 115114215 A CN115114215 A CN 115114215A CN 202111206763 A CN202111206763 A CN 202111206763A CN 115114215 A CN115114215 A CN 115114215A
Authority
CN
China
Prior art keywords
transaction layer
buffer
layer packet
layer packets
switch
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
Application number
CN202111206763.8A
Other languages
English (en)
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN115114215A publication Critical patent/CN115114215A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Communication Control (AREA)

Abstract

本公开提供了一种高速外围组件互连(PCIe)接口装置及其操作方法。PCIe接口装置包括第一缓冲器、第二缓冲器和缓冲器控制器。第一缓冲器可以配置为存储从多个功能接收的多个第一事务层包。第二缓冲器可以配置为存储从多个功能接收的多个第二事务层包。缓冲器控制器可以配置为在交换机的第一缓冲器已满时,基于多个第二事务层包的ID来重新排列要从第二缓冲器向交换机输出多个第二事务层包的顺序。

Description

高速外围组件互连接口装置及其操作方法
相关申请的交叉引用
本申请要求于2021年3月23日向韩国知识产权局提交的韩国专利申请号为10-2021-0037512的专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本公开的各种实施例总体涉及一种电子装置,更具体地,涉及一种PCIe接口装置和操作PCIe接口装置的方法。
背景技术
高速外围组件互连(PCIe)是具有用于数据通信的串行结构的接口。基于PCIe的存储装置支持多端口结构和多功能结构。基于PCIe的存储装置可以是虚拟化的或非虚拟化的,并且可以通过一个或多个PCIe功能来实现主机输入/输出(I/O)命令的服务质量(QoS)。
存储装置是在诸如计算机或智能手机的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置和控制存储器装置的存储器控制器。存储器装置分为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅当供电时存储数据并且当供电中断时丢失所存储的数据的存储器装置。易失性存储器装置的示例可以包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置可以是即使在供电中断时也保留所存储的数据的存储器装置。非易失性存储器装置的示例可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各种实施例涉及一种具有改进的缓冲器控制性能的PCIe接口装置和操作PCIe接口装置的方法。
本公开的实施例可以提供一种高速外围组件互连(PCIe)接口装置。PCIe接口装置可以包括第一缓冲器、第二缓冲器和缓冲器控制器。
第一缓冲器可以被配置为存储从多个功能接收的多个第一事务层包。
第二缓冲器可以被配置为存储从多个功能接收的多个第二事务层包。缓冲器控制器可以被配置为在交换机的第一缓冲器已满时,基于多个第二事务层包的各自ID来重新排列要从第二缓冲器向交换机输出多个第二事务层包的顺序。
本公开的实施例可以提供一种操作高速外围组件互连(PCIe)接口装置的方法,该PCIe接口装置包括配置为存储多个第一事务层包的第一缓冲器和配置为存储多个第二事务层包的第二缓冲器。该方法可以包括从交换机接收指示交换机的第一缓冲器是否已满的流控制信号,并且当包括在交换机中的第一缓冲器已满时,基于多个第二事务层包的ID来重新排列要从第二缓冲器向交换机输出多个第二事务层包的顺序。
附图说明
图1示出了根据本公开实施例的主机和PCIe装置之间的通信结构。
图2示出了根据本公开实施例的PCIe装置的配置和操作。
图3示出了根据本公开实施例的PCIe接口装置的配置和操作。
图4描述了基于PCIe装置中的事务层包的ID的对事务层包进行的顺序重新排列。
图5是示出根据本公开实施例的PCIe接口装置的操作的流程图。
图6是示出根据本公开实施例的PCIe接口装置的操作的流程图。
具体实施方式
本说明书或本申请中所介绍的本公开实施例中的具体结构或功能描述是示例性的,以描述根据本公开构思的实施例。根据本公开构思的实施例可以以各种形式实施,并且不应被解释为限于本说明书或本申请中描述的实施例。
图1示出了根据本公开实施例的主机和多个PCIe装置之间的通信结构。
参照图1,主机2000可以包括根复合体2100、交换机2200、中央处理单元(CPU)2300和存储器2400。
根复合体2100可以将CPU 2300和存储器2400联接到输入/输出(I/O)层次结构。根复合体2100可以包括至少一个主机桥和至少一个根端口。根复合体2100可以支持一个或多个高速外围组件互连(PCIe)端口。
根复合体2100可以支持输入/输出(I/O)请求。根复合体2100必须支持生成配置请求。根复合体2100作为完成者必须不支持锁语义(lock semantics)。根复合体2100作为请求者可以请求生成锁定请求。
交换机2200可以将至少两个端口彼此联接以便路由事务层包。交换机2200可以是一组虚拟PCI-to-PCI桥装置。交换机2200可以由两个或更多个逻辑PCI-to-PCI桥组成。交换机2200可以使用PCI桥机制(即,基于地址的多播方式)路由事务。交换机2200必须在所有端口之间路由所有类型的事务层包。交换机2200必须支持锁定请求。交换机2200的每个启用端口必须支持流量控制。当在同一虚拟信道上发生竞争时,交换机2200可以以轮询或加权轮询的方式仲裁竞争。
每个PCIe装置可以用作PCIe事务的请求者或完成者。
在图1中,多个PCIe装置(例如,第一PCIe装置1000_1至第三PCIe装置1000_3)联接到主机2000。第一PCIe装置1000_1可以向根复合体2100发送事务层包并且可以从根复合体2100接收事务层包。第二PCIe装置1000_2和第三PCIe装置1000_3可以向交换机2200发送事务层包并且可以从交换机2200接收事务层包。
交换机2200可以将从第二PCIe装置1000_2和第三PCIe装置1000_3接收的事务层包路由到根复合体2100。交换机2200可以将从根复合体2100接收的事务层包路由到第二PCIe装置1000_2和第三PCIe装置1000_3。
因此,根复合体2100可以直接向第一PCIe装置1000_1发送事务层包以及可以直接从第一PCIe装置1000_1接收事务层包。根复合体2100可以通过交换机2200向第二PCIe装置1000_2和第三PCIe装置1000_3发送事务层包,并且可以通过交换机2200从第二PCIe装置1000_2和第三PCIe装置1000_3接收事务层包。根复合体2100可以将从第一PCIe装置1000_1至第三PCIe装置1000_3接收的事务层包转发到CPU 2300或存储器2400。
图2示出了根据本公开实施例的PCIe装置的配置和操作。
参照图2,PCIe装置1000可以包括PCIe接口(I/F)装置100和至少一个直接存储器访问(DMA)装置。
PCIe接口装置100可以包括缓冲器组110和缓冲器控制器120。
缓冲器组110可以存储在主机2000的交换机2200和DMA装置的功能之间发送和接收的事务层包。缓冲器组110可以存储从在DMA装置上执行的功能接收的第一事务层包。缓冲器组110可以将第一事务层包发送到交换机2200。同时,缓冲器组110可以存储从交换机2200接收的第二事务层包。缓冲器组110可以将第二事务层包发送到DMA装置的功能。
缓冲器控制器120可以控制将存储在缓冲器组110中的多个事务层包输出到交换机2200的顺序。另外,缓冲器控制器120可以重新排列多个事务层包的输出顺序。
在实施例中,DMA装置可以包括高速非易失性存储器(NVMe)模块、以太网卡、声卡、显卡、人工智能中央处理单元(AI CPU)模块、片上人工智能系统(AI SoC)模块等。DMA装置可以进一步包括联接到NVMe模块、以太网卡、声卡、显卡、AI CPU模块、AI SoC模块等的数据通信装置。
在图2中,PCIe装置1000可以包括多个DMA装置,例如第一DMA装置200_1和第二DMA装置200_2。PCIe装置1000中包括的DMA装置的数量不限于本实施例。
对于每个DMA装置,可以执行至少一个功能。例如,参照图2,第一功能(功能1)和第二功能(功能2)可以在第一DMA装置200_1上执行,并且第三功能(功能3)和第四功能(功能4)可以在第二DMA装置200_2上执行。在每个DMA装置上执行的功能的数量不限于本实施例。
例如,PCIe装置1000可以响应于从主机2000接收的虚拟化请求来生成物理功能或虚拟功能。PCIe装置1000可以向每个DMA装置分配一个或多个功能。分配给每个DMA装置并在每个DMA装置上执行的功能数量可以单独设置。因此,可以向一个DMA装置分配多个功能,并且可将每个功能作为独立的操作单元来执行。
图3示出了根据本公开实施例的PCIe接口装置的配置和操作。
参照图3,PCIe装置1000可以包括PCIe接口装置100和多个DMA装置200_1和200_2。
PCIe接口装置100可以包括缓冲器组110、缓冲器控制器120和事务层130。
缓冲器组110可以将通过事务层130从每个DMA装置的功能接收的事务层包发送到上面参照图2描述的主机2000的交换机2200。缓冲器组110可以通过事务层130,将从交换机2200接收的事务层包发送到相应DMA装置的功能。
在图3中,缓冲器组110可以包括读取缓冲器111、写入缓冲器112、完成缓冲器113和回放缓冲器114。读取缓冲器111、写入缓冲器112和完成缓冲器113中的每一个可以包括发送缓冲器和接收缓冲器,发送缓冲器将存储的事务层包发送到交换机2200,并且接收缓冲器存储从交换机2200接收的事务层包。在实施例中,缓冲器组110可以直接向主机2000的根复合体2100发送事务层包,并且可以直接从主机2000的根复合体2100接收事务层包。
读取缓冲器111可以存储与读取请求相关的事务层包。写入缓冲器112可以存储与写入请求相关的事务层包。完成缓冲器113可以存储与读取请求或写入请求的完成相关的事务层包。完成可以指示是否已经接收到读取请求或写入请求以及是否已经完成读取请求或写入请求的处理。
可以将分别存储在读取缓冲器111、写入缓冲器112和完成缓冲器113中的事务层包发送到回放缓冲器114。缓冲器控制器120可以改变从读取缓冲器111、写入缓冲器112和完成缓冲器113向回放缓冲器114发送事务层包的顺序。
回放缓冲器114可以按照如下顺序将事务层包输出到交换机2200:从读取缓冲器111、写入缓冲器112和完成缓冲器113向回放缓冲器114发送事务层包。将存储在回放缓冲器114中的事务层包输出到交换机2200的顺序可以是固定的,而在操作期间不改变。
缓冲器控制器120可以基于事务层包的标识(ID)来重新排列存储在读取缓冲器111和写入缓冲器112中的事务层包的输出顺序。
此处,事务层包可以是允许基于ID排序(IDO)的信息包。在允许IDO的每个事务层包的报头中,IDO位可以设置为1。可以根据装置之间的事务来独立地确定允许IDO的事务层包,然后可以在根复合体2100或交换机2200中改变所述允许IDO的事务层包的排序。在另一实施例中,可以由PCIe装置1000改变允许IDO的事务层包的排序。
每个事务层包的ID可以包括与事务层包相对应的总线的标识号、装置的标识号和功能的标识号。
例如,PCIe接口装置100可以通过至少一个总线从至少一个DMA装置接收事务层包。与事务层包对应的总线的标识号可以是由上面参照图1描述的主机2000分配的编号。与事务层包相对应的装置的标识号可以是PCIe装置1000的标识号。与事务层包相对应的功能的标识号可以是在PCIe装置1000中实现的每个功能的唯一编号。
在图3中,总线的标识号可以为n(其中n为自然数),PCIe装置1000的标识号可以为0。第一功能至第四功能的各自标识号分别为0至3。因此,从在第一DMA装置200_1上执行的第一功能接收的事务层包的ID可以是(n:0:0)。从在第一DMA装置200_1上执行的第二功能接收的事务层包的ID可以是(n:0:1)。从在第二DMA装置200_2上执行的第三功能接收的事务层包的ID可以是(n:0:2)。从在第二DMA装置200_2上执行的第四功能接收的事务层包的ID可以是(n:0:3)。
图4描述了基于PCIe装置中的事务层包的ID对事务层包进行的顺序重新排列。
参照图4,交换机2200的读取缓冲器2210和写入缓冲器2220可以各自存储四个事务层包。然而,每个缓冲器中可以存储的事务层包的数量不限于本实施例。
在图4中,交换机2200的写入缓冲器2220存储了四个第一事务层包,因此写入缓冲器2220充满了事务层包。交换机2200的读取缓冲器2210存储了三个第二事务层包,因此读取缓冲器2210能够额外地存储一个新的事务层包。
PCIe装置1000可以包括第一缓冲器和第二缓冲器。
第一缓冲器可以通过事务层130从DMA装置的多个功能(例如,功能1至功能3)接收多个第一事务层包。第二缓冲器可以通过事务层130从DMA装置的多个功能(例如,功能1至功能3)接收多个第二事务层包。
在图4中,第一缓冲器可以是写入缓冲器112,第二缓冲器可以是读取缓冲器111。第一事务层包可以是与写入请求相关的事务层包,第二事务层包可以是与读取请求相关的事务层包。
在另一实施例中,第一缓冲器可以是读取缓冲器111,第二缓冲器可以是写入缓冲器112。第一事务层包可以是与读取请求相关的事务层包,第二事务层包可以是与写入请求相关的事务层包。
在图4中,总线的标识号可以是2,PCIe装置1000的标识号可以是0。第一功能至第三功能(功能1至功能3)的各自标识号可以是0至2。因此,从第一功能(功能1)接收的事务层包的ID可以是(2:0:0)。从第二功能(功能2)接收的事务层包的ID可以是(2:0:1)。从第三功能(功能3)接收的事务层包的ID可以是(2:0:2)。
根复合体2100和交换机2200可以彼此交换流控制信号。交换机2200和PCIe装置1000可以彼此交换流控制信号。
流控制信号可以包括更新FC(流控制)。当事务层包通过第二侧,从第一侧路由到第三侧时,更新FC可以是PCIe协议,其中第二侧通过PCIe协议向第一侧通知第二侧能够重新接收事务层包(TLP)的状态。换言之,当第二侧准备好将从第一侧接收的事务层包发送到第三侧时,第二侧可以向第一侧发送更新FC。
PCIe装置1000可以基于流控制信号来确定交换机2200是否处于以下状态:交换机2200的第一缓冲器已满,从而不能接收新的事务层包。即,交换机2200的第一缓冲器处于背压下。在图4中,交换机2200的第一缓冲器可以是写入缓冲器2220,交换机2200的第二缓冲器可以是读取缓冲器2210。在另一实施例中,交换机2200的第一缓冲器可以是读取缓冲器2210,交换机2200的第二缓冲器可以是写入缓冲器2220。
PCIe装置1000可以按照第二事务层包从多个功能(功能1至功能3)输入到读取缓冲器111的顺序,对多个第二事务层包分配各自的优先级。
当交换机2200的写入缓冲器2220已满时,PCIe装置1000可以基于第二事务层包的各自ID,重新排列要从PCIe装置1000的读取缓冲器111向交换机2200输出多个第二事务层包的顺序。
在第一顺序重新排列(O1)过程中,PCIe装置1000可以将读取缓冲器111中存储的多个第二事务层包之中的目标第二事务层包的优先级设置为高于其余第二事务层包的优先级。
在实施例中,目标第二事务层包可以是ID与交换机2200的写入缓冲器2220中待处理的事务层包的ID不同的事务层包。
例如,交换机2200的写入缓冲器2220中待处理的事务层包的ID可以是(2:0:0)。在读取缓冲器111中存储的第二事务层包的ID之中,与(2:0:0)不同的ID可以是(2:0:1)和(2:0:2)。
因此,在多个第二事务层包之中,可以将ID为(2:0:1)和(2:0:2)的第二事务层包设置为优先级高于ID为(2:0:0)的第二事务层包的优先级的目标第二事务层包。可以在具有较低优先级的第二事务层包之前,将具有较高优先级的第二事务层包输出到读取缓冲器2210,该读取缓冲器2210为交换机2200的第二缓冲器。
在另一实施例中,目标第二事务层包可以是ID与存储在PCIe装置1000的写入缓冲器112中的多个第一事务层包的ID不同的事务层包。
例如,PCIe装置1000的写入缓冲器112中存储的多个第一事务层包的ID可以是(2:0:0)和(2:0:1)。在读取缓冲器111中存储的第二事务层包的ID之中,与(2:0:0)和(2:0:1)不同的ID可以是(2:0:2)。
因此,在多个第二事务层包之中,可以将ID为(2:0:2)的第二事务层包设置为优先级高于ID为(2:0:0)和(2:0:1)的事务层包的优先级的目标第二事务层包。
因此,在PCIe装置1000的读取缓冲器111中存储的多个第二事务层包之中,可以将具有与ID为(2:0:0)以及ID为(2:0:0)和(2:0:1)不同的ID(2:0:2)的第二事务层包的优先级设置为高于ID为(2:0:0)和(2:0:1)的其余第二事务层包的优先级,其中(2:0:0)是交换机2200的写入缓冲器2220中待处理的事务层包的ID,并且(2:0:0)和(2:0:1)是存储在PCIe装置1000的写入缓冲器112中的多个第一事务层包的ID。
ID与交换机2200的写入缓冲器2220中待处理的事务层包的ID不同的目标第二事务层包的优先级可以被重新排列,使得目标第二事务层包在其余第二事务层包之前,从PCIe装置1000的读取缓冲器111输出到交换机2200的读取缓冲器2210。
其原因在于,交换机2200的写入缓冲器2220处于背压下,但读取缓冲器2210能够接收新的事务层包,因此将ID与写入缓冲器2220中待处理的事务层包的ID不同的目标第二事务层包输出到交换机2200的读取缓冲器2210,从而实现每个功能的QoS。换言之,其原因在于,通过根据事务层包的ID而独立地重新排列输出顺序,来优先处理ID与处于背压下的事务层包的ID不同的事务层包。
然而,即使根据事务层包的ID重新排列了输出顺序,也必须保持具有相同ID的第一事务层包和第二事务层包之间的输出顺序。
PCIe装置1000可以基于多个第一事务层包的各自ID来重新排列要从写入缓冲器112输出多个第一事务层包的顺序。
在第二顺序重新排列(O2)过程中,PCIe装置1000可以将存储在第一缓冲器(例如,写入缓冲器112)中的多个第一事务层包之中的目标第一事务层包的优先级设置为高于其余第一事务层包的优先级。
目标第一事务层包可以是ID与交换机2200的写入缓冲器2220中待处理的事务层包的ID不同的事务层包。
例如,交换机2200的写入缓冲器2220中待处理的事务层包的ID可以是(2:0:0)。在写入缓冲器112中存储的第一事务层包的ID之中,与(2:0:0)不同的ID可以是(2:0:1)。
可以重新排列优先级,使得在其余第一事务层包之前,将具有与交换机2200的写入缓冲器2220中待处理的事务层包的ID(2:0:0)不同的ID(2:0:1)的第一事务层包从PCIe装置1000的写入缓冲器112输出到交换机2200的写入缓冲器2220。
其原因在于重新调整优先级,使得ID与交换机2200的写入缓冲器2220中待处理的事务层包的ID不同的第一事务层包首先输出到写入缓冲器2220,从而防止具有ID(2:0:0)的事务层包被连续处理。
即,首先处理ID与处于背压下的事务层包的ID不同的事务层包,从而防止具有特定ID的事务层包的占用率过度增加,并且实现每个功能的QoS。
类似于第一顺序重新排列(O1)过程,交换机2200可以在第三顺序重新排列(O3)过程中重新排列存储在读取缓冲器2210中的事务层包的优先级。
根据本公开的实施例,PCIe装置1000可以根据事务层包的ID来独立地改变事务层包的输出顺序。即,不仅根复合体2100和交换机2200,而且PCIe装置1000也可以改变允许IDO的事务层包的输出顺序,从而更有效地实现每个功能的QoS。
图5是示出根据本公开的实施例的PCIe接口装置的操作的流程图。
参照图5,在S501,PCIe接口装置可以将从DMA装置的多个功能接收的第一事务层包存储在第一缓冲器中,并且可以将从DMA装置的多个功能接收的第二事务层包存储在第二缓冲器中。
在实施例中,第一缓冲器可以是写入缓冲器,第二缓冲器可以是读取缓冲器,第一事务层包可以是与写入请求相关的信息包,第二事务层包可以是与读取请求相关的信息包。
在另一实施例中,第一缓冲器可以是读取缓冲器,第二缓冲器可以是写入缓冲器,第一事务层包可以是与读取请求相关的信息包,第二事务层包可以是与写入请求相关的信息包。
在S503,PCIe接口装置可以从交换机接收指示交换机的第一缓冲器是否已满的流控制信号。交换机的第一缓冲器可以是写入缓冲器。在实施例中,PCIe接口装置可以从交换机接收指示交换机的第一缓冲器是否能够接收新的事务层包的流控制信号。PCIe接口装置可以基于流控制信号来确定交换机的第一缓冲器已满或还能够接收新的事务层包。
在S505,当交换机的第一缓冲器已满时,PCIe接口装置可以基于第二事务层包的各自ID来重新排列要将存储在PCIe接口装置的第二缓冲器中的第二事务层包输出到交换机的顺序。
在S507,当交换机的第一缓冲器已满时,PCIe接口装置可以基于第一事务层包的各自ID来重新排列要将存储在PCIe接口装置的第一缓冲器中的第一事务层包输出到交换机的顺序。
图6是示出根据本公开实施例的PCIe接口装置的操作的流程图。
参照图6,在S601,PCIe接口装置可以根据从多个功能向PCIe接口装置的第二缓冲器输入第二事务层包的顺序,来分配第二事务层包的优先级。
在S603,PCIe接口装置可以将存储在第二缓冲器中的第二事务层包之中的、ID与交换机的第一缓冲器中待处理的事务层包的ID不同的第二事务层包的优先级设置为高于其余第二事务层包的优先级。
在S605,PCIe接口装置可以将其余第二事务层包的优先级设置为与它们先前的优先级相同的值。
根据本公开,提供了一种具有改进的缓冲器控制性能的PCIe接口装置以及一种操作PCIe接口装置的方法。
虽然已经参考本公开的某些示例性实施例示出和描述了本公开,但是本领域技术人员将理解,在不脱离本公开的由所附权利要求书及其等同方案定义的精神和范围的情况下,可以在其中进行形式和细节的各种改变。因此,本公开的范围不应限于上述示例性实施例,而应不仅由所附权利要求而且由其等同方案来确定。

Claims (20)

1.一种高速外围组件互连接口装置,即PCIe接口装置,包括:
第一缓冲器,所述第一缓冲器存储从多个功能接收的多个第一事务层包;
第二缓冲器,所述第二缓冲器存储从所述多个功能接收的多个第二事务层包;以及
缓冲器控制器,所述缓冲器控制器被配置为在交换机的第三缓冲器已满时,基于所述多个第二事务层包的ID,来重新排列要从所述第二缓冲器向所述交换机输出所述多个第二事务层包的顺序。
2.根据权利要求1所述的PCIe接口装置,其中:
所述第一缓冲器是写入缓冲器,并且
所述第二缓冲器是读取缓冲器。
3.根据权利要求1所述的PCIe接口装置,其中,所述缓冲器控制器根据所述多个第二事务层包被输入到所述第二缓冲器的顺序,来分配所述多个第二事务层包的各自优先级。
4.根据权利要求3所述的PCIe接口装置,其中,所述缓冲器控制器:
将所述多个第二事务层包之中的目标第二事务层包的优先级设置为高于除了所述目标第二事务层包之外的其余第二事务层包的优先级,
其中所述目标第二事务层包是ID与所述交换机的所述第三缓冲器中待处理的事务层包的ID不同的第二事务层包。
5.根据权利要求4所述的PCIe接口装置,其中,所述缓冲器控制器将所述其余第二事务层包的优先级保持为与它们先前的优先级相同的值。
6.根据权利要求4所述的PCIe接口装置,其中,所述目标第二事务层包是ID与所述多个第一事务层包的ID不同的第二事务层包。
7.根据权利要求1所述的PCIe接口装置,其中,所述缓冲器控制器进一步基于所述多个第一事务层包的ID,重新排列从所述PCIe接口装置的所述第一缓冲器向所述交换机输出所述多个第一事务层包的顺序。
8.根据权利要求7所述的PCIe接口装置,其中,所述缓冲器控制器:将所述多个第一事务层包之中的目标第一事务层包的优先级设置为高于除了所述目标第一事务层包之外的其余第一事务层包的优先级,
其中所述目标第一事务层包是ID与所述交换机的所述第三缓冲器中待处理的事务层包的ID不同的第一事务层包。
9.根据权利要求1所述的PCIe接口装置,其中,所述PCIe接口装置的所述第一缓冲器和所述第二缓冲器通过至少一个总线,从在至少一个直接存储器访问装置即DMA装置上执行的多个功能,接收所述多个第一事务层包和所述多个第二事务层包。
10.根据权利要求9所述的PCIe接口装置,其中,每个事务层包的ID包括:与所述事务层包相对应的总线的标识号、与所述事务层包相对应的PCIe装置的标识号以及与所述事务层包相对应的功能的标识号。
11.根据权利要求9所述的PCIe接口装置,其中,所述至少一个DMA装置包括以下中的至少一个:高速非易失性存储器模块即NVMe模块、人工智能中央处理单元模块即AICPU模块、人工智能片上系统模块即AISoC模块、以太网卡、声卡和显卡。
12.一种操作高速外围组件互连接口装置即PCIe接口装置的方法,所述PCIe接口装置包括第一缓冲器和第二缓冲器,所述第一缓冲器存储多个第一事务层包,所述第二缓冲器存储多个第二事务层包,所述方法包括:
从交换机接收指示所述交换机的第三缓冲器是否已满的流量控制信号;并且
当所述交换机的所述第三缓冲器已满时,基于所述多个第二事务层包的ID,来重新排列从所述第二缓冲器向所述交换机输出所述多个第二事务层包的顺序。
13.根据权利要求12所述的方法,其中:
所述第一缓冲器是写入缓冲器,并且
所述第二缓冲器是读取缓冲器。
14.根据权利要求12所述的方法,进一步包括:
根据从多个功能向所述第二缓冲器输入所述多个第二事务层包的顺序,分配所述多个第二事务层包的各自优先级。
15.根据权利要求14所述的方法,其中,重新排列所述多个第二事务层包要被输出的顺序包括:
将所述多个第二事务层包之中的目标第二事务层包的优先级设置为高于除了所述目标第二事务层包之外的其余第二事务层包的优先级,
其中所述目标第二事务层包是ID与所述交换机的所述第三缓冲器中待处理的事务层包的ID不同的第二事务层包。
16.根据权利要求15所述的方法,其中,所述目标第二事务层包是ID与所述多个第一事务层包的ID不同的第二事务层包。
17.根据权利要求12所述的方法,进一步包括:
基于所述多个第一事务层包的ID,重新排列要从所述PCIe接口装置的所述第一缓冲器向所述交换机输出所述多个第一事务层包的顺序。
18.根据权利要求17所述的方法,其中,重新排列所述多个第一事务层包要被输出的顺序包括:
将所述多个第一事务层包之中的目标第一事务层包的优先级设置为高于除了所述目标第一事务层包之外的其余第一事务层包的优先级,
其中所述目标第一事务层包是ID与所述交换机的所述第三缓冲器中待处理的事务层包的ID不同的第一事务层包。
19.根据权利要求14所述的方法,进一步包括:
通过至少一个总线,从在至少一个直接存储器访问装置即DMA装置上执行的多个功能接收所述多个第一事务层包和所述多个第二事务层包。
20.根据权利要求19所述的方法,其中,每个事务层包的ID包括:与所述事务层包相对应的总线的标识号、与所述事务层包相对应的PCIe装置的标识号、以及与所述事务层包相对应的功能的标识号。
CN202111206763.8A 2021-03-23 2021-10-18 高速外围组件互连接口装置及其操作方法 Pending CN115114215A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210037512A KR102496994B1 (ko) 2021-03-23 2021-03-23 PCIe 인터페이스 장치 및 그 동작 방법
KR10-2021-0037512 2021-03-23

Publications (1)

Publication Number Publication Date
CN115114215A true CN115114215A (zh) 2022-09-27

Family

ID=83324842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111206763.8A Pending CN115114215A (zh) 2021-03-23 2021-10-18 高速外围组件互连接口装置及其操作方法

Country Status (4)

Country Link
US (1) US11841819B2 (zh)
KR (1) KR102496994B1 (zh)
CN (1) CN115114215A (zh)
TW (1) TW202239183A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5673399A (en) * 1995-11-02 1997-09-30 International Business Machines, Corporation System and method for enhancement of system bus to mezzanine bus transactions
US7852757B1 (en) * 2009-03-10 2010-12-14 Xilinx, Inc. Status based data flow control for chip systems
US20120072679A1 (en) * 2010-09-16 2012-03-22 Sukalpa Biswas Reordering in the Memory Controller
US20150302903A1 (en) * 2014-04-21 2015-10-22 Qualcomm Incorporated System and method for deep coalescing memory management in a portable computing device
US20160267011A1 (en) * 2015-03-09 2016-09-15 Samsung Electronics Co., Ltd. Tail response time reduction method for ssd
US20180295206A1 (en) * 2017-04-11 2018-10-11 Microsoft Technology Licensing, Llc Parallel prefetching log/meta stream sub-portions to recreate partition states in a distributed computing system
US20190163394A1 (en) * 2017-11-28 2019-05-30 Advanced Micro Devices, Inc. Expandable buffer for memory transactions

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003019393A1 (en) 2001-08-24 2003-03-06 Intel Corporation A general intput/output architecture, protocol and related methods to implement flow control
US7500029B2 (en) * 2004-10-29 2009-03-03 Intel Corporation Maximal length packets
US7574536B2 (en) * 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7287114B2 (en) 2005-05-10 2007-10-23 Intel Corporation Simulating multiple virtual channels in switched fabric networks
JP4777723B2 (ja) 2005-08-30 2011-09-21 株式会社リコー 情報処理システム、プログラムおよびデータ転送方法
JP4878185B2 (ja) 2006-03-17 2012-02-15 株式会社リコー データ通信回路および調停方法
US7908531B2 (en) 2006-09-29 2011-03-15 Teradyne, Inc. Networked test system
JP4920638B2 (ja) 2007-06-01 2012-04-18 インベンチュア株式会社 Lsiシステムの設計方法及びlsiシステムの設計支援装置
US7877558B2 (en) * 2007-08-13 2011-01-25 Advanced Micro Devices, Inc. Memory controller prioritization scheme
US8130649B2 (en) * 2007-10-18 2012-03-06 Alcatel Lucent Ingress traffic flow control in a data communications system
US8732339B2 (en) * 2009-03-24 2014-05-20 Hewlett-Packard Development Company, L.P. NPIV at storage devices
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
US8677030B2 (en) 2009-12-09 2014-03-18 Oracle America, Inc. Apparatus and method for managing packet classification tables
US8606975B2 (en) 2010-05-21 2013-12-10 Oracle International Corporation Managing interrupts in a virtualized input/output device supporting multiple hosts and functions
US8510403B2 (en) 2010-06-30 2013-08-13 Juniper Networks, Inc. Self clocking interrupt generation in a network interface card
WO2013062109A1 (ja) 2011-10-28 2013-05-02 日本電気株式会社 I/oデバイス制御システムおよびi/oデバイス制御方法
US20140237156A1 (en) 2012-10-25 2014-08-21 Plx Technology, Inc. Multi-path id routing in a pcie express fabric environment
CN103098428B (zh) 2012-10-27 2016-03-09 华为技术有限公司 一种实现pcie交换网络的报文传输方法、设备和系统
US20140281099A1 (en) 2013-03-14 2014-09-18 Broadcom Corporation METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS
KR102387932B1 (ko) 2014-07-31 2022-04-15 삼성전자주식회사 멀티 포트, 멀티 펑션 PCIe 장치의 호스트 명령어의 QoS 유지 방법 및 그 시스템
US9996484B1 (en) 2014-09-17 2018-06-12 Amazon Technologies, Inc. Hardware acceleration for software emulation of PCI express compliant devices
KR102238652B1 (ko) 2014-11-12 2021-04-09 삼성전자주식회사 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템의 작동 방법
US9792245B2 (en) 2014-12-09 2017-10-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Peripheral component interconnect express (PCIe) devices with efficient memory mapping by remapping a plurality of base address registers (BARs)
US9740646B2 (en) * 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US10089275B2 (en) * 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
US10176126B1 (en) 2015-06-29 2019-01-08 Cadence Design Systems, Inc. Methods, systems, and computer program product for a PCI implementation handling multiple packets
US10606510B2 (en) * 2015-10-29 2020-03-31 Netflix, Inc. Memory input/output management
US10157153B2 (en) 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems
WO2018003629A1 (ja) 2016-06-28 2018-01-04 日本電気株式会社 パケット処理装置、及び、パケット処理方法
KR20180114972A (ko) * 2017-04-11 2018-10-22 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
WO2019036217A1 (en) 2017-08-18 2019-02-21 Missing Link Electronics, Inc. HETEROGENEOUS TRANSPORT BASED ON PACKETS
KR102450514B1 (ko) 2017-09-19 2022-10-05 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 그것을 포함하는 저장 장치의 동작 방법
CN109656854A (zh) 2017-10-12 2019-04-19 光宝科技股份有限公司 固态储存装置的重置电路及其重置方法
US10564857B2 (en) 2017-11-13 2020-02-18 Western Digital Technologies, Inc. System and method for QoS over NVMe virtualization platform using adaptive command fetching
US10838636B2 (en) 2018-05-18 2020-11-17 Western Digital Technologies, Inc. Hierarchical clock scaling in a data storage controller
US11372580B2 (en) 2018-08-07 2022-06-28 Marvell Asia Pte, Ltd. Enabling virtual functions on storage media
US10678478B2 (en) * 2018-08-24 2020-06-09 Apple Inc. Ordering memory requests based on access efficiency
KR102669517B1 (ko) 2018-12-14 2024-05-29 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11971861B2 (en) 2019-03-15 2024-04-30 Microsoft Technology Licensing, Llc Providing scalable and concurrent file systems
US10848440B2 (en) 2019-03-20 2020-11-24 Alibaba Group Holding Limited Systems and methods for allocating bandwidth across a cluster of accelerators
CN112306624A (zh) 2019-07-31 2021-02-02 华为技术有限公司 一种信息处理方法、物理机和pcie设备
US11431653B2 (en) * 2020-10-20 2022-08-30 Micron Technology, Inc. Packet arbitration for buffered packets in a network device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5673399A (en) * 1995-11-02 1997-09-30 International Business Machines, Corporation System and method for enhancement of system bus to mezzanine bus transactions
US7852757B1 (en) * 2009-03-10 2010-12-14 Xilinx, Inc. Status based data flow control for chip systems
US20120072679A1 (en) * 2010-09-16 2012-03-22 Sukalpa Biswas Reordering in the Memory Controller
US20150302903A1 (en) * 2014-04-21 2015-10-22 Qualcomm Incorporated System and method for deep coalescing memory management in a portable computing device
US20160267011A1 (en) * 2015-03-09 2016-09-15 Samsung Electronics Co., Ltd. Tail response time reduction method for ssd
US20180295206A1 (en) * 2017-04-11 2018-10-11 Microsoft Technology Licensing, Llc Parallel prefetching log/meta stream sub-portions to recreate partition states in a distributed computing system
US20190163394A1 (en) * 2017-11-28 2019-05-30 Advanced Micro Devices, Inc. Expandable buffer for memory transactions

Also Published As

Publication number Publication date
TW202239183A (zh) 2022-10-01
US20220309021A1 (en) 2022-09-29
KR20220132333A (ko) 2022-09-30
US11841819B2 (en) 2023-12-12
KR102496994B1 (ko) 2023-02-09

Similar Documents

Publication Publication Date Title
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
JP5036120B2 (ja) 非ブロック化共有インターフェイスを持つ通信システム及び方法
US6725313B1 (en) Communications system and method with multilevel connection identification
US8886861B2 (en) Memory interleaving device to re-order messages from slave IPS and a method of using a reorder buffer to re-order messages from slave IPS
US8589643B2 (en) Arbitration system and method for memory responses in a hub-based memory system
JP6082752B2 (ja) メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法
US9529751B2 (en) Requests and data handling in a bus architecture
US6628662B1 (en) Method and system for multilevel arbitration in a non-blocking crossbar switch
US7613850B1 (en) System and method utilizing programmable ordering relation for direct memory access
JP2008541276A (ja) 同時読み出し応答確認拡張ダイレクト・メモリ・アクセス・ユニット
US10402348B2 (en) Method and system for using feedback information for selecting a routing bus for a memory transaction
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
JP4104939B2 (ja) マルチプロセッサシステム
CN115114215A (zh) 高速外围组件互连接口装置及其操作方法
CN106325377B (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
WO2006071942A2 (en) Method and apparatus for implementing heterogeneous interconnects
US12007918B2 (en) Peripheral component interconnect express interface device and method of operating the same
JP4983133B2 (ja) 入出力制御装置およびその制御方法、並びにプログラム
US20030093594A1 (en) Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller
JP2013097718A (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