CN107436855A - 用于具有可重配置多端口的pcie存储***的qos认知io管理 - Google Patents

用于具有可重配置多端口的pcie存储***的qos认知io管理 Download PDF

Info

Publication number
CN107436855A
CN107436855A CN201710084938.XA CN201710084938A CN107436855A CN 107436855 A CN107436855 A CN 107436855A CN 201710084938 A CN201710084938 A CN 201710084938A CN 107436855 A CN107436855 A CN 107436855A
Authority
CN
China
Prior art keywords
data
access port
transmission mode
data access
ddio
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.)
Granted
Application number
CN201710084938.XA
Other languages
English (en)
Other versions
CN107436855B (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 CN107436855A publication Critical patent/CN107436855A/zh
Application granted granted Critical
Publication of CN107436855B publication Critical patent/CN107436855B/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • 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)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Programmable Controllers (AREA)

Abstract

描述了一种用于具有可重配置多端口的***组件互连高速(PCIe)存储***的服务质量(QoS)认知输入/输出(IO)管理的方法和***。在实施例中,一种方法包括在接收器接口中接收来自软件应用的IO请求,所述IO请求包括用于通过数据访问端口传送数据的信息。该方法还可以包括在传输模式选择器中确定用于通过数据访问端口传送数据的传输模式,传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式。另外,该方法可以包括响应于IO请求并根据数据传输模式,由块分配单元通过数据访问端口传送数据。

Description

用于具有可重配置多端口的PCIE存储***的QOS认知IO管理
相关申请数据
本申请根据35U.S.C.§119(e)要求于2016年5月25日提交的美国专利申请序列号62/341,602以及2016年8月3日提交的美国专利申请序列号15/227,959的优先权,其通过引用并入本文。
技术领域
本公开总体涉及数据处理***,并且更具体地,涉及用于具有可重配置多端口的***组件互连高速(PCIe)存储***的服务质量(QoS)认知((QOS)-aware)输入/输出(IO)管理。
背景技术
诸如计算机***的数据处理***通常包括具有若干核心组件的主机***,包括中央处理单元(CPU)、存储器设备、IO设备以及用于在主机***的组件之间传输信息的设备互连或根联合体(root complex)。互连协议的一个示例是PCIe,其定义了主机***组件之间的数据传输模式。
直接存储器访问(DMA)、直接高速缓存访问(DCA)和数据直接I/O(DDIO)是用于在主机***(存储器或高速缓存)和IO设备之间传输数据的现有技术。DMA在IO设备和主机***存储器之间传输数据。DDIO在IO设备和主机CPU的最末级高速缓存(LLC)之间传输数据。DCA就像DMA一样在IO设备和主机***存储器之间传输数据,但是在数据传输完成后,DCA从存储器将数据预取到CPU高速缓存中。
主机***通常包括多个数据处理端口,每一个数据处理端口可以配置为按照DMA、DCA或DDIO协议之一来传输数据。这样的端口在本文中被称为“多端口”。公共***可以具有被配置用于DMA的一些多端口、被配置用于DDIO的一些多端口以及可能被配置用于DCA的一些多端口。现有***软件使用这些技术(DMA、DCA或DDIO)之一向设备发送IO请求。然而,当前没有用来组合DMA、DCA或DDIO协议的功能方面或者针对多路复用、QoS控制或高速缓存流量控制来在协议之间动态切换的方法。
发明内容
描述了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法和***的实施例。在实施例中,一种方法包括在接收器接口中接收来自软件应用的IO请求,所述IO请求包括用于通过数据访问端口传送数据的信息。该方法还可以包括在传输模式选择器中确定用于通过数据访问端口传送数据的传输模式,传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式。另外,该方法可以包括响应于IO请求并根据数据传输模式,由块分配单元通过数据访问端口传送数据。
***的实施例可以包括数据通信控制器。数据通信控制器可以包括接收器接口,配置为接收来自软件应用的输入/输出(IO)请求,所述IO请求包括用于通过数据访问端口传送数据的信息。另外,数据通信控制器可以包括传输模式选择器,其耦合到接收器接口并且配置为确定用于通过数据访问端口传送数据的传输模式,传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式。数据通信控制器还可以包括块分配单元,配置为响应于IO请求并根据数据传输模式通过数据访问端口传送数据。该***还可以包括耦合到数据通信控制器的数据访问端口,数据访问端口被配置为通过***组件互连总线将数据传送到***设备。
装置的实施例可以包括接收器接口,配置为接收来自软件应用的输入/输出(IO)请求,所述IO请求包括用于通过数据访问端口传送数据的信息。装置还可以包括传输模式选择器,其耦合到接收器接口并且配置为确定用于通过数据访问端口传送数据的传输模式,传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式。另外,装置可以包括块分配单元,配置为响应于IO请求并根据数据传输模式通过数据访问端口传送数据。
附图说明
本发明通过示例来说明,并且不受附图限制,其中类似的附图标记指示相似的元件。附图中的元件是为了简单和清楚而示出的,并且不一定按比例绘制。
图1是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***的实施例的示意性框图。
图2是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***的实施例的示意性框图。
图3是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的实施例的示意性流程图。
图4是示出了专门配置用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***的实施例的逻辑图。
图5是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的实施例的示意性流程图。
图6是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***中的数据多路复用方法的实施例的逻辑图。
图7是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的实施例的示意性流程图。
图8是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***中的数据多路复用的方法的实施例的逻辑图。
图9是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的实施例的示意性流程图。
图10是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的性能的逻辑图。
图11是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的实施例的示意性流程图。
图12是根据本实施例专门配置的计算***的框图。
具体实施方式
描述了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法和***的实施例。所描述的实施例可以提高某些数据处理***的性能。数据处理***可以包括但不限于个人计算设备,诸如计算机工作站、膝上型计算机、平板计算机、个人数据助理、智能电话等。其他实施例可以与企业数据处理***(诸如服务器、存储控制器、云服务器农场和数据农场以及其他企业数据中心***和组件)结合使用。
所描述的实施例为与主机***相关联地操作的应用提供逻辑设备接口。在实施例中,逻辑设备将具有可选数据传输能力和QoS的多个物理端口组合成多个数据路径。可以根据多个数据传输模式之一来配置数据路径,数据传输模式包括“吞吐量增强模式”、“迅速模式”和“平衡模式”。在实施例中,吞吐量增强模式在配置用于DMA数据传输的端口上传输所有数据。在实施例中,迅速模式在配置用于DDIO数据传输的端口上传输所有数据。在实施例中,平衡模式根据所检查的数据特性在DMA端口和DDIO端口之间切换。另外,本实施例描述了在平衡模式中基于QoS要求的数据路径的多路复用,其中取决于QoS要求和数据特性,根据一组DMA或DDIO端口对IO块进行分组和传送。此外,本实施例包括用于在使用DDIO端口时防止CPU高速缓存溢出的流量控制的方法。
普通技术人员将认识到本实施例的各种优点和益处。具体地,与现有***相比,可以认识到QoS益处,包括***等待时间减少。另外,根据一些实施例可以提高***吞吐量。此外,与先前的DDIO或DCA技术相比时,在某些实施例中可以防止高速缓存溢出。尽管参考PCIe具体描述了本实施例,但是普通技术人员将认识到本实施例可以适用于的附加或备选***,只要选择的数据传输协议提供在数据端口、存储器和处理器高速缓存之间的访问即可。
图1是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***100的实施例的示意性框图。在实施例中,***100包括主机***102,以及可选地,包括一个或多个***端点(endpoint)114。主机***102可以是例如数据处理设备,诸如计算机。***端点可以是被配置为通过PCIe或类似数据总线与主机***102通信的***设备。示例可以包括但不限于PCIe扩展设备、数据存储设备、刀片服务器等。
在实施例中,主机***102可以包括根联合体104,所述根联合体104形成用于在CPU 106、存储器108和一个或多个内部端点112或***端点114之间传送数据的数据通信结构,内部端点112和***端点114经由物理接口110耦合到根联合体104。根联合体104可以根据数据通信协议操作,所述数据通信协议诸如是但不限于PCIe。在实施例中,根联合体104和/或物理接口110可以包括如图4所示的多个数据通信端口。各种端点112、114可以经由根联合体104与CPU 106和/或存储器108传送数据。在实施例中,CPU 106可以包括或可以外部耦合到高速缓存116。高速缓存116的一个实施例是LLC。
图2是示出了***200的另一实施例的示意性框图。在一个实施例中,CPU 106可以包括多个CPU核202。***200可类似地包括用于在CPU核202、存储器108和一个或多个端点之间传送数据的根联合体104。术语“端点”可以包括图1中所示的内部端点112和***端点114。端点的示例可以包括图形处理单元204、一个或多个网络接口206、盘控制器208和其他PCIe端点210a。另外,***200可以包括PCI交换机/到PCI/PCI-x的PCIe桥212。在一些备选实施例中,PCI交换机可以与PCIe桥分离。PCI交换机可以向多个PCIe端点210b-c提供交换式通信。PCIe桥可以提供与根据传统PCI或PCI-x协议操作的传统端点214的连接性。
图3是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法300的实施例的示意性流程图。在实施例中,方法300开始于接收来自软件应用的IO请求,其中IO请求包括用于通过数据访问端口传送数据的信息或指令,如框302所示。在框304,方法300包括确定用于通过数据访问端口传送数据的传输模式。传输模式可以从一组传输模式中选择,包括:面向吞吐量的模式、等待时间敏感模式和平衡模式。在框306,方法300包括响应于IO请求并根据数据传输模式,通过数据访问端口传送数据。
图4是示出了专门配置用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***400的实施例的逻辑图。在实施例中,***400的各方面可以被编程为根联合体104的组件或其他PCIe控制组件。***软件或固件模块可以提供由应用使用的逻辑设备402。在实施例中,***400可以包括数据通信控制器401,其可以包括具有传输模式选择器404的接收器接口403。另外,数据通信控制器401可以包括块分配单元405,其具有用于处理DMA请求的TO块分配器414、用于处理DDIO请求的LS块分配器416、以及用于根据数据特性的值在TO块分配器414和LS块分配器416之间切换块的块标识器412。数据通信控制器401还可以包括被配置为操作多个DMA端口420和/或多个DDIO端口422的多端口设备驱动器407。
在实施例中,连接到存储端点(例如多端口存储设备428)的端口可以提供由应用使用的逻辑存储组件。在实施例中,***400包括用于接收来自应用的IO请求的接收器接口403。接收器接口403可以包括传输模式选择器404。传输模式选择器404可以在多个数据传输模式之间进行选择。数据传输模式的示例包括吞吐量增强模式406、迅速模式410和平衡模式408。
在实施例中,吞吐量增强模式406可以允许应用向存储器设备108传输数据。这样的实施例可以提供增强的数据吞吐量。在实施例中,迅速模式410可以通过将数据传送到与一个或多个CPU核202相关联的高速缓存116(例如LLC或其他高速缓存),来向应用提供与CPU 106的快速数据通信。平衡模式408可以基于从应用传送的数据特性,可选择地将数据传送到存储器108或高速缓存116。
在这样的实施例中,在来自应用的IO请求中接收数据块。传输模式选择器404标识要应用的传输模式。在实施例中,传输模式选择器404可以响应于IO请求中的信息(例如数据特性)来选择传输模式。在另一实施例中,传输模式选择器404可以响应于确定是DMA端口可用还是DDIO端口可用来选择传输模式。在又一个实施例中,传输模式选择器404可以响应于预定的QoS协议、规则或负载均衡序列来确定传输模式。普通技术人员可以认识到,传输模式选择器404可以使用多种标准来确定要用于具体IO请求的传输模式。在又一个实施例中,传输模式选择器404可以根据时序或数据包计数规则来确定传输模式。
传输模式选择器404可以将数据块传输给块分配单元405。在实施例中,块分配单元405可以包括面向吞吐量(TO)的块分配器414、等待时间敏感(LS)块分配器416、块标识器412和流量控制器418。
如果选择吞吐量增强模式406,则数据块可以被传递到TO块分配器414。TO块分配器414可以将请求块划分为多个子块,每一个子块被传递到配置为通过DMA协议将数据传输到存储器108的一个或多个DMA端口420。在一些实施例中,可以在***启动时,例如通过多端口设备驱动器或通过***基本输入/输出***(BIOS)来定义一个或多个DMA端口420。类似地,可以在***启动时定义一个或多个DDIO端口422。在备选实施例中,可以在操作期间并且响应于IO请求,将一个或多个DMA端口420动态地重配置为DDIO端口422。类似地,可以响应于IO请求,动态地将一个或多个DDIO端口422重配置为DMA端口420。
在迅速模式410中,数据块可以传送到LS块分配器416,LS块分配器416然后将数据块或子块传递到DDIO端口422。在另一实施例中,流量控制器418可以对数据块或子块到DDIO端口的流量进行计量,以防止与CPU 106相关联的高速缓存116的溢出或污染。下面关于图10-12描述了流量控制方法的实施例。在实施例中,多端口存储设备428可以包括多个DMA端口424和/或多个DDIO端口426,被配置为将数据传递到多端口存储设备428的组件。
在实施例中,平衡模式408可以可选择地将数据块传递到用于通过DMA端口420通信的TO块分配器414或用于通过DDIO端口422通信的LS块分配器416。在这样的实施例中,块标识器412可以检查数据块的数据特性,并且根据数据特性确定是将数据块传递到TO块分配器414还是将数据块传递到LS块分配器416。在实施例中,数据特性可以是由应用设置的紧急标识符。例如,数据特性将数据块表征为紧急或非紧急。在这样的实施例中,紧急数据块可以传递到LS块分配器416,非紧急数据块可以传递到TO块分配器414。
在实施例中,数据特性可以是标签或与数据块相关联的元数据。备选地,数据特性可以是在数据块内设置的比特。在又一个实施例中,数据特性可以是响应于用户或提供数据块的应用或者响应于所提供的数据块的类型而固有地导出的。在另一实施例中,一些用户或应用可以生成紧急数据块,而其他用户或应用可以生成非紧急数据块。在实施例中,用户请求的块可能是紧急的,因为用户可以在块一准备好访问时就立即访问该块,而预取块可能是非紧急的,因为该块可能或可能不会在近期被访问。普通技术人员将认识到附加的或替代的数据特性,其可由块标识器412用来确定是将数据块发送到TO块分配器414还是发送到LS块分配器416。
图5示出了描述由图4的结构执行的方法500的流程图。在这样的实施例中,方法500包括接收来自应用的IO请求,如框502所示。在框504处,传输模式选择器404可以基于数据特性选择传输模式,如框504所示。如果所有端口被设置为DMA端口420,则选择吞吐量增强模式406,并且将所有数据块发送到TO块分配器414。如果所有端口被设置为DDIO端口422,则选择迅速模式410,并且所有数据块被引导到LS块分配器416。如果一部分端口被设置为DMA端口420并且一部分端口被设置为DDIO端口422,则可以在框504处选择平衡模式。在另一实施例中,不需要将所有端口设置为一种类型或另一种类型。吞吐量请求可以仅向作为DMA的端口子集发送请求,而不使用DDIO端口。在这样的实施例中,在框516处,数据块可以被传递到块标识器412以对块进行标识。如框506所示,“正常”或“非紧急”块可被传递到TO块分配器414。紧急块可以被传递到LS块分配器416,如框510所示。在框512处,可以执行流量控制过程,并且可以在框514处发出DDIO请求。备选地,可在框508处发出DMA请求。
图6是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理***中的数据多路复用的过程600的实施例的逻辑图。在实施例中,图6的过程可以由TO块分配器414或DMA传输路径中的关联组件来执行。在实施例中,可以接收和检查所请求的数据块602。数据块602可以划分为多个子块604(例如,八(8)个或更多个子块)。在框606处,可以关于子块大小执行确定。例如,如果数据块602中的子块604的数量小于或等于可用于传送子块604的DMA端口420的数量,则可以维持每一个子块604的当前大小。然而,如果在框606处确定子块604的数量大于可用于传输子块604的DMA端口420的数量,则可以调整每一个子块604的大小,并且可以减少子块604的总数。例如,对应于子块604数量小于或等于DMA端口420数量的情况的第一结果610可以具有与初始请求的数据块602相同的子块配置。第二结果608可以具有更少的子块,对于通过DMA端口420的通信,每一个子块的大小更大。在框612处,按照循环序列向端口420分配子块。
图7是示出了图6所描述过程的实施例的示意性流程图。在图7的实施例中,方法700包括在702处接收数据块。在704处,方法700包括计算在接收的数据块中包括的子块的数量。子块的数量可以被计算为接收的数据块的大小除以最小数据传输单元。该计算的结果可以是对图6所示的初始数据块602中的子块604的标识。
在图7的方法中,在706处,确定子块的数量是否小于或等于可用DMA端口420的数量。如果是,则子块的大小等于接收的数据块的大小除以子块的数量,如在708处所示。如果不是,则在710处调整子块的大小。在这样的实施例中,子块的大小可以增加到所请求的块的大小除以可用DMA端口420的数量。在图6的示例中,可以在710处生成第二结果608。
一旦在708或710处确定了子块的大小,则将DMA请求与子块一起发送到设备驱动器,如框712所示。如果在714处确定已经到达数据块的结尾,则过程结束。如果不是,则子块被递增,如在716处所示,并且在712处发送下一个DMA请求。该循环重复,直到数据块中的所有子块都已经通过DMA端口420发送。
图8是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的***中数据多路复用的过程800的实施例的逻辑图。图8的实施例示出了迅速模式的示例,其中数据块通过DDIO端口422发送。过程800可以至少部分地由LS块分配器416和流量控制器418执行。如同图6的实施例,过程800开始于接收要传送的数据块602。数据块602可以包括若干个子块604。在802处,确定子块604的数量是否小于或等于可用于传送子块604的DDIO端口422的数量。如果是,则第一结果804包括初始大小的子块。如果不是,则第二结果806包括调整大小的子块,其中块大小被修改以适应可用于传送子块的DDIO端口的数量。在808处,附加步骤包括确定子块的大小是否大于DDIO高速缓存大小。如果是,则调整大小以适应DDIO高速缓存大小要求。在512处,执行流量控制操作以防止高速缓存超限或污染。参考图12描述了流量控制过程的示例。在810处,按照循环方式将子块分配到DDIO端口422。
图9是示出了图8中描述的过程的实施例的示意性流程图。在图9的实施例中,方法900包括在902处接收数据块。在904处,方法900包括计算在接收的数据块中包括的子块的数量。子块的数量可以被计算为接收的数据块的大小除以最小数据传输单元。这种计算的结果可以是对初始数据块602中的子块604的标识,如图8所示。
在图9的方法中,在906处,确定子块的数量是否小于或等于可用DDIO端口422的数量。如果是,则子块的大小等于接收的数据块的大小除以子块的数量,如在908处所示。如果不是,则在910处调整子块的大小。在这样的实施例中,子块的大小可以被增加到所请求的块的大小除以可用的DDIO端口422的数量。在图8的示例中,可以在910处生成第二结果806。
在实施例中,在912处,确定在910处调整的子块的大小是否小于LLC中DDIO的预留大小。如果是,则在512处执行流量控制。如果不是,则对子块进行大小调整,调整为小于或等于LLC中的DDIO的预留大小。并且在512处执行流量控制。
一旦确定了子块的大小并执行了流量控制,则如在916处所示,将DDIO请求与子块一起发送到设备驱动器。如果在918处确定已经到达数据块的结尾,则过程结束。如果不是,则子块被递增,如在920处所示,并且执行512处的流量控制,并在916处发送下一个DDIO请求。该循环重复,直到数据块中的所有子块都已经通过DDIO端口422发送。
图10是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的性能的逻辑图。图10示出了与CPU核202相关联的高速缓存116,诸如LLC。在所描述的实施例中,LLC包括多个高速缓存行(CL)。被占用的高速缓存行是包含由CPU核202检索的数据的高速缓存行。剩余的高速缓存行是未被占用的或可用的高速缓存行,其中可以存储新接收的子块。被占用的高速缓存行和剩余的高速缓存行的组合包括LLC的总共预留的高速缓存行。
图10示出了三种高速缓存状态的示例。在第一状态1002中,三个高速缓存行被接收的数据占用。在实施例中,高速缓存行大小为64字节。在一个实施例中,LLC的访问等待时间可以是100ns,并且请求间(inter-request)到达时间可以是200ns。因此,对于每个请求到达,可以通过CPU核202检索高速缓存行来确保两个附加高速缓存行。因此,在第二状态1004中,仅一个高速缓存行被占用。如果接收到具有256字节数据的子块的第二请求,则对于总共五个被占用的高速缓存行,可以占用四个附加高速缓存行,如第三状态1006所示。
图11是示出了用于具有可重配置多端口的PCIe存储***的QoS认知IO管理的方法的实施例的示意性流程图。用于流量控制的方法1100的实施例可以至少部分地由流量控制器418执行。流量控制器418可以检查高速缓存116的状态,并通过触发溢出保护状态来防止高速缓存超限。如本文所使用的,术语“溢出保护状态”是指如下逻辑或操作状态:其中通过节制或计量到高速缓存116的数据流来防止高速缓存超限。在实施例中,在步骤1102处接收数据块。所访问的高速缓存行的数量计算为请求间到达时间除以平均高速缓存行访问等待时间,如在1104处所示。在1106处,通过将所访问的高速缓存行的数量与先前剩余的高速缓存行的数量相加来计算剩余的高速缓存行。在图10的第二状态1004中看到这样的示例。
可以触发高速缓存保护状态以防止高速缓存的超限。不是将整个数据块写入高速缓存,而是基于剩余高速缓存行的数量,将该块可以分解成用于传送至高速缓存的合适大小的子块。如果需要,高速缓存保护状态可以使子块被顺序地写入或者间隔开以防止高速缓存超限。在另一实施例中,高速缓存保护状态可以使数据块被写入存储器108,而不是高速缓存116。因此,在1108处,确定剩余的高速缓存行是否大于总共预留的高速缓存行。如果是,则剩余的高速缓存行等于总共预留的高速缓存行,如1110处所示。如果不是,则在1112处确定高速缓存行中子块的数量是否小于剩余的高速缓存行。如果是,则剩余的高速缓存行被计算为剩余的高速缓存行的初始数量减去高速缓存行中子块的数量,如在1114处所示。如果不是,则循环地执行计算,直到高速缓存行中子块的数量小于剩余的高速缓存行。
图12是包括PCIe数据通信控制器401的计算***1200的框图,PCIe数据通信控制器401包括图4的接收器接口403、块分配单元405和多端口设备驱动器407。计算***1200可以包括时钟1204、诸如随机存取存储器(RAM)之类的存储器108、用户接口1208、诸如基带芯片组之类的调制解调器1210、固态驱动/盘(SSD)1214和/或CPU106,这些组件中任何一个或全部可以电耦合到***总线1202。计算***1200可以包括PCIe数据通信控制器401,包括图4的接收器接口403、块分配单元405和多端口设备驱动器407,其也可以电或逻辑耦合到***总线1202。
本实施例可以包括仲裁或看门狗定时器,以防止等待时间敏感的IO事务(例如视频流)压倒IO队列。因此,性能增强IO请求将有机会向前推进。另外,实施例也可以容纳随机(小随机读/写)IO事务。
以下讨论旨在提供其中可以实现本发明构思的某些方面的合适的一个或多个机器的简要、通用的描述。通常,一个或多个机器包括***总线,附着到其的有处理器、存储器(例如随机存取存储器(RAM))、只读存储器(ROM)或其他状态保存介质、存储设备、视频接口和输入/输出接口端口。一个或多个机器可以至少部分地通过来自常规输入设备(诸如键盘,鼠标等)的输入以及通过从另一机器接收的指示、与虚拟现实(VR)环境的交互、生物测定反馈或其他输入信号来进行控制。如本文所使用的,术语“机器”旨在广义地涵盖单个机器、虚拟机或者通信耦合的机器、虚拟机或一起操作的设备的***。示例性机器包括诸如个人计算机、工作站、服务器、便携式计算机、手持设备、电话、平板电脑等的计算设备,以及诸如私人或公共运输(例如汽车、火车、出租车等)之类的运输设备。
一个或多个机器可以包括嵌入式控制器,诸如可编程或不可编程逻辑器件或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等。一个或多个机器可以利用到一个或多个远程机器的一个或多个连接,例如通过网络接口、调制解调器或其他通信耦合。机器可以通过物理和/或逻辑网络(例如内联网、互联网、局域网、广域网等)的方式进行互连。本领域技术人员将理解,网络通信可以利用各种有线和/或无线短距离或长距离载波和协议,包括射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)545.11、光学、红外、电缆、激光等。
本发明构思的实施例可以通过参考或结合包括功能、过程、数据结构、应用程序等的关联数据来描述,当由机器访问时,其导致机器执行任务或定义抽象数据类型或低级硬件上下文。关联数据可以被存储在例如易失性和/或非易失性存储器(例如RAM、ROM等)中或存储在其他存储设备及其相关联的存储介质中,包括硬盘驱动、软盘、光学存储器件、磁带、闪存、记忆棒、数字视频盘、生物存储器件等。关联数据可以以数据包、串行数据、并行数据,传播信号等的形式通过传输环境(包括物理和/或逻辑网络)传递,并且可以以压缩或加密格式使用。关联数据可以在分布式环境中使用,并且本地和/或远程地存储以用于机器访问。
已经参考所示实施例描述和说明了本发明构思的原理,将认识到,所示实施例可以在布置和细节上修改,而不脱离这些原理,并且可以以任何期望的方式组合。并且尽管前述讨论集中在具体实施例上,但是设想了其他配置。具体地,尽管在本文使用了诸如“根据本发明构思的实施例”等表达,但是这些短语意指一般地参考实施例可能性,并且不旨在将本发明构思限于具体实施例配置。如本文所使用的,这些术语可以提及可组合到其他实施例中的相同或不同的实施例。
本发明构思的实施例可以包括包含可由一个或多个处理器执行的指令的非瞬时机器可读介质,所述指令包括用于执行如本文所述的发明构思的要素的指令。
前述说明性实施例不应被解释为限制其发明构思。尽管描述了一些实施例,然而本领域技术人员应容易理解,在不实质上脱离本公开的新颖教义和优点的前提下,可以对那些实施例进行多种修改。因此,所有这种修改旨在被包括在如在权利要求中限定的本发明构思的范围内。

Claims (21)

1.一种用于具有可重配置多端口的***组件互连高速(PCIe)存储***的服务质量(QoS)认知输入/输出(IO)管理的方法,包括:
在接收器接口中接收来自软件应用的输入/输出IO请求,所述IO请求包括用于通过数据访问端口传送数据的信息;
在传输模式选择器中确定用于通过数据访问端口传送数据的传输模式,所述传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式;以及
响应于IO请求并且根据传输模式,由块分配单元通过数据访问端口传送数据。
2.根据权利要求1所述的方法,其中所述面向吞吐量的模式配置为根据直接存储器访问(DMA)协议,通过数据访问端口与面向吞吐量(TO)的块分配器传送数据。
3.根据权利要求1所述的方法,其中所述等待时间敏感模式配置为根据数据直接I/O(DDIO)协议,通过数据访问端口与等待时间敏感(LS)的块分配器传送数据。
4.根据权利要求1所述的方法,其中所述平衡模式配置为可选择地根据直接存储器访问(DMA)协议或数据直接I/O(DDIO)协议,通过数据访问端口传送数据。
5.根据权利要求4所述的方法,还包括:响应于针对要传送的数据所定义的数据特性,利用块标识器确定是根据DMA协议还是根据DDIO协议通过数据访问端口传送数据。
6.根据权利要求5所述的方法,其中所述数据特性包括与数据相关联的紧急标识符。
7.根据权利要求4所述的方法,还包括:响应于被配置为根据DDIO协议接收数据的高速缓存的状态,确定是根据DMA协议还是根据DDIO协议通过数据访问端口传送数据,其中,响应于确定高速缓存处于溢出保护状态,根据DMA协议传送数据。
8.根据权利要求1所述的方法,还包括:
配置用于根据直接存储器访问(DMA)协议传送数据的第一组数据访问端口;以及
配置用于根据数据直接I/O(DDIO)协议传送数据的第二组数据访问端口。
9.根据权利要求8所述的方法,还包括:根据由IO请求定义的传输模式,通过第一组数据访问端口和第二组数据访问端口中的至少一组对数据的通信进行多路复用。
10.一种用于服务质量(QoS)认知输入/输出(IO)管理的***,包括:
数据通信控制器,包括:
接收器接口,配置为接收来自软件应用的输入/输出IO请求,所述IO请求包括用于通过数据访问端口传送数据的信息;
传输模式选择器,耦合到接收器接口,并配置为确定用于通过数据访问端口传送数据的传输模式,所述传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式;和
块分配单元,配置为响应于IO请求并根据传输模式,通过数据访问端口传送数据;以及
数据访问端口,耦合到数据通信控制器,所述数据访问端口配置为通过***组件互连总线将数据传送到***设备。
11.根据权利要求10所述的***,其中所述面向吞吐量的模式配置为根据直接存储器访问(DMA)协议,通过数据访问端口传送数据。
12.根据权利要求10所述的***,其中所述等待时间敏感模式配置为根据数据直接I/O(DDIO)协议,通过数据访问端口传送数据。
13.根据权利要求10所述的***,其中所述平衡模式配置为可选择地根据直接存储器访问(DMA)协议或数据直接I/O(DDIO)协议,通过数据访问端口传送数据。
14.根据权利要求13所述的***,其中所述数据通信控制器还配置为响应于针对要传送的数据所定义的数据特性,确定是根据DMA协议还是根据DDIO协议通过数据访问端口传送数据。
15.根据权利要求14所述的***,其中所述数据特性包括紧急标识符。
16.根据权利要求13所述的***,其中所述数据通信控制器还配置为响应于被配置为根据DDIO协议接收数据的高速缓存的状态,确定是根据DMA协议还是根据DDIO协议通过数据访问端口传送数据,其中,响应于确定高速缓存处于溢出保护状态,根据DMA协议传送数据。
17.根据权利要求10所述的***,其中所述数据通信控制器还配置为:
配置用于根据直接存储器访问(DMA)协议传送数据的第一组数据访问端口;以及
配置用于根据数据直接I/O(DDIO)协议传送数据的第二组数据访问端口。
18.根据权利要求17所述的***,其中所述数据通信控制器还配置为根据IO请求所定义的传输模式,通过第一组数据访问端口和第二组数据访问端口中的至少一组对数据的通信进行多路复用。
19.一种用于具有可重配置多端口的***组件互连高速(PCIe)存储***的服务质量(QoS)认知输入/输出(IO)管理的装置,包括:
接收器接口,配置为接收来自软件应用的输入/输出IO请求,所述IO请求包括用于通过数据访问端口传送数据的信息;
传输模式选择器,耦合到接收器接口,并配置为确定用于通过数据访问端口传送数据的传输模式,所述传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式;以及
块分配单元,配置为响应于IO请求并根据传输模式,通过数据访问端口传送数据。
20.根据权利要求19所述的装置,其中:
所述面向吞吐量的模式配置为根据直接存储器访问(DMA)协议通过数据访问端口传送数据;
所述等待时间敏感模式配置为根据数据直接I/O(DDIO)协议通过数据访问端口传送数据;以及
所述平衡模式配置为可选择地根据直接存储器访问(DMA)协议或数据直接I/O(DDIO)协议通过数据访问端口传送数据。
21.一种非暂时性机器可读介质,包括指令,当由一个或多个处理器执行时,所述指令使得所述一个或多个处理器执行以下操作:
接收来自软件应用的输入/输出IO请求,所述IO请求包括用于通过数据访问端口传送数据的信息;
确定用于通过数据访问端口传送数据的传输模式,所述传输模式选自面向吞吐量的模式、等待时间敏感模式或平衡模式;以及
响应于IO请求并且根据传输模式,通过数据访问端口传送数据。
CN201710084938.XA 2016-05-25 2017-02-16 用于具有可重配置多端口的pcie存储***的qos认知io管理 Active CN107436855B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662341602P 2016-05-25 2016-05-25
US62/341,602 2016-05-25
US15/227,959 US10713202B2 (en) 2016-05-25 2016-08-03 Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
US15/227,959 2016-08-03

Publications (2)

Publication Number Publication Date
CN107436855A true CN107436855A (zh) 2017-12-05
CN107436855B CN107436855B (zh) 2022-07-01

Family

ID=60417987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710084938.XA Active CN107436855B (zh) 2016-05-25 2017-02-16 用于具有可重配置多端口的pcie存储***的qos认知io管理

Country Status (5)

Country Link
US (1) US10713202B2 (zh)
JP (1) JP7010598B2 (zh)
KR (1) KR102427550B1 (zh)
CN (1) CN107436855B (zh)
TW (1) TWI772279B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109257431A (zh) * 2018-10-12 2019-01-22 微网云(深圳)技术有限公司 分布式服务器***
CN111190843A (zh) * 2020-01-08 2020-05-22 珠海趣印科技有限公司 一种提高打印速度和打印效果的方法
CN111278049A (zh) * 2019-01-11 2020-06-12 维沃移动通信有限公司 支持时间敏感通信服务质量的方法及通信设备
CN113098799A (zh) * 2019-12-23 2021-07-09 希捷科技有限公司 使用存储设备的端口到端口网络路由
CN113419780A (zh) * 2021-05-08 2021-09-21 中国科学院声学研究所 一种基于fpga加速卡的dpdk驱动***
CN114489473A (zh) * 2020-10-26 2022-05-13 迈络思科技有限公司 用于提高输入/输出性能的***

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018206175A (ja) * 2017-06-07 2018-12-27 富士通株式会社 コンパイラ、情報処理装置及びコンパイル方法
US10963035B2 (en) * 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
US10977198B2 (en) 2018-09-12 2021-04-13 Micron Technology, Inc. Hybrid memory system interface
CN113807044B (zh) * 2021-08-06 2023-07-14 苏州浪潮智能科技有限公司 抗串扰pcie端口通道设计方法、***、终端及存储介质
US11734207B1 (en) 2022-02-02 2023-08-22 Western Digital Technologies, Inc. Dynamic port allocation in PCIe bifurcation system

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634076A (en) * 1994-10-04 1997-05-27 Analog Devices, Inc. DMA controller responsive to transition of a request signal between first state and second state and maintaining of second state for controlling data transfer
CN1218227A (zh) * 1997-11-06 1999-06-02 株式会社日立制作所 数据处理***和微型计算机
CN1233022A (zh) * 1998-04-23 1999-10-27 富士通株式会社 信息处理设备和存储媒体
US6412027B1 (en) * 1998-02-11 2002-06-25 Globespanvirata, Inc. Direct memory access controller having on-board arbitration circuitry
CN1666185A (zh) * 2002-07-09 2005-09-07 英特尔公司 支持包处理的可配置的多端口多协议网络接口
CN1729675A (zh) * 2002-12-06 2006-02-01 思科技术公司 用于实现轻量级、可靠的、基于分组的传输协议的装置
US20070156968A1 (en) * 2005-12-30 2007-07-05 Madukkarumukumana Rajesh S Performing direct cache access transactions based on a memory access data structure
EP1835413A1 (en) * 2006-03-17 2007-09-19 Ricoh Company, Ltd. Data communication circuit and arbitration method
US20080063004A1 (en) * 2006-09-13 2008-03-13 International Business Machines Corporation Buffer allocation method for multi-class traffic with dynamic spare buffering
US20090276571A1 (en) * 2008-04-30 2009-11-05 Alan Frederic Benner Enhanced Direct Memory Access
CN101631092A (zh) * 2008-07-18 2010-01-20 株式会社日立制作所 数据分发***及方法
US20100064080A1 (en) * 2008-09-11 2010-03-11 International Business Machines Corporation Managing pci-express max payload size for legacy operating systems
CN102007479A (zh) * 2008-03-31 2011-04-06 先进微装置公司 点对点专用处理器结构和方法
US20110222111A1 (en) * 2010-03-10 2011-09-15 Ricoh Company, Ltd. Data transfer device, image processing apparatus, and recording medium
US20110246686A1 (en) * 2010-04-01 2011-10-06 Cavanagh Jr Edward T Apparatus and system having pci root port and direct memory access device functionality
CN102567256A (zh) * 2011-12-16 2012-07-11 龙芯中科技术有限公司 处理器***及其多通道内存拷贝dma加速器和方法
CN103281794A (zh) * 2013-06-09 2013-09-04 重庆邮电大学 体域网中紧急数据优先传输调度方法
US20140173221A1 (en) * 2012-12-14 2014-06-19 Ahmad Samih Cache management
CN104011656A (zh) * 2011-12-22 2014-08-27 英特尔公司 使用直接数据路径架构来存储数据以降低能量消耗和改进性能
CN104123252A (zh) * 2013-04-26 2014-10-29 韩国科亚电子股份有限公司 多通道直接存储器存取控制器及其控制方法
CN104335196A (zh) * 2012-10-22 2015-02-04 英特尔公司 高性能互连物理层
CN104871508A (zh) * 2012-12-21 2015-08-26 Ati科技无限责任公司 可配置通信控制器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3188071B2 (ja) * 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
GB0616025D0 (en) 2006-08-11 2006-09-20 Aspex Semiconductor Ltd Improvements relating to direct data input/output interfaces
US7937532B2 (en) 2007-03-30 2011-05-03 Intel Corporation Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine
US8423710B1 (en) * 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
CN103262054B (zh) * 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、***和方法
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
DE112012005991T5 (de) * 2012-03-07 2015-01-29 Intel Corporation Skalierbare gemeinsame Referenztaktungsarchitektur unter Verwendung einer getrennten, einzigen Taktquelle für Blade- und Rack-Server
US9262270B2 (en) * 2012-12-28 2016-02-16 Intel Corporation Live error recovery
US20140198790A1 (en) * 2013-01-17 2014-07-17 International Business Machines Corporation Data link layer analysis with packet trace replay
US9648148B2 (en) * 2013-12-24 2017-05-09 Intel Corporation Method, apparatus, and system for QoS within high performance fabrics
US9734092B2 (en) 2014-03-19 2017-08-15 Facebook, Inc. Secure support for I/O in software cryptoprocessor
US9323701B2 (en) * 2014-07-29 2016-04-26 Netapp, Inc. Technique for synchronizing IOMMU memory de-registration and incoming I/O data
US9639473B1 (en) * 2014-12-09 2017-05-02 Parallel Machines Ltd. Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location
WO2016183028A2 (en) * 2015-05-10 2016-11-17 Apl Software Inc. Methods and architecture for enhanced computer performance
US10120809B2 (en) * 2015-09-26 2018-11-06 Intel Corporation Method, apparatus, and system for allocating cache using traffic class
US9779026B2 (en) * 2016-01-14 2017-10-03 Seagate Technology Llc Cache bypass utilizing a binary tree
US10157066B2 (en) * 2016-03-21 2018-12-18 Cisco Technology, Inc. Method for optimizing performance of computationally intensive applications

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634076A (en) * 1994-10-04 1997-05-27 Analog Devices, Inc. DMA controller responsive to transition of a request signal between first state and second state and maintaining of second state for controlling data transfer
CN1218227A (zh) * 1997-11-06 1999-06-02 株式会社日立制作所 数据处理***和微型计算机
US6412027B1 (en) * 1998-02-11 2002-06-25 Globespanvirata, Inc. Direct memory access controller having on-board arbitration circuitry
CN1233022A (zh) * 1998-04-23 1999-10-27 富士通株式会社 信息处理设备和存储媒体
CN1666185A (zh) * 2002-07-09 2005-09-07 英特尔公司 支持包处理的可配置的多端口多协议网络接口
CN1729675A (zh) * 2002-12-06 2006-02-01 思科技术公司 用于实现轻量级、可靠的、基于分组的传输协议的装置
US20070156968A1 (en) * 2005-12-30 2007-07-05 Madukkarumukumana Rajesh S Performing direct cache access transactions based on a memory access data structure
CN103207842A (zh) * 2005-12-30 2013-07-17 英特尔公司 基于存储器访问数据结构执行直接高速缓存访问事务
EP1835413A1 (en) * 2006-03-17 2007-09-19 Ricoh Company, Ltd. Data communication circuit and arbitration method
US20080063004A1 (en) * 2006-09-13 2008-03-13 International Business Machines Corporation Buffer allocation method for multi-class traffic with dynamic spare buffering
CN102007479A (zh) * 2008-03-31 2011-04-06 先进微装置公司 点对点专用处理器结构和方法
US20090276571A1 (en) * 2008-04-30 2009-11-05 Alan Frederic Benner Enhanced Direct Memory Access
CN101631092A (zh) * 2008-07-18 2010-01-20 株式会社日立制作所 数据分发***及方法
US20100064080A1 (en) * 2008-09-11 2010-03-11 International Business Machines Corporation Managing pci-express max payload size for legacy operating systems
US20110222111A1 (en) * 2010-03-10 2011-09-15 Ricoh Company, Ltd. Data transfer device, image processing apparatus, and recording medium
US20110246686A1 (en) * 2010-04-01 2011-10-06 Cavanagh Jr Edward T Apparatus and system having pci root port and direct memory access device functionality
CN102567256A (zh) * 2011-12-16 2012-07-11 龙芯中科技术有限公司 处理器***及其多通道内存拷贝dma加速器和方法
CN104011656A (zh) * 2011-12-22 2014-08-27 英特尔公司 使用直接数据路径架构来存储数据以降低能量消耗和改进性能
CN104335196A (zh) * 2012-10-22 2015-02-04 英特尔公司 高性能互连物理层
US20140173221A1 (en) * 2012-12-14 2014-06-19 Ahmad Samih Cache management
CN104871508A (zh) * 2012-12-21 2015-08-26 Ati科技无限责任公司 可配置通信控制器
CN104123252A (zh) * 2013-04-26 2014-10-29 韩国科亚电子股份有限公司 多通道直接存储器存取控制器及其控制方法
CN103281794A (zh) * 2013-06-09 2013-09-04 重庆邮电大学 体域网中紧急数据优先传输调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GRAY.WRIGH,W.RICHARD STEVENS: "《TCP/IP详解卷1:协议》", 1 April 2000 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109257431A (zh) * 2018-10-12 2019-01-22 微网云(深圳)技术有限公司 分布式服务器***
CN109257431B (zh) * 2018-10-12 2021-04-13 微网云(深圳)科技有限公司 分布式服务器***
CN111278049A (zh) * 2019-01-11 2020-06-12 维沃移动通信有限公司 支持时间敏感通信服务质量的方法及通信设备
CN111278049B (zh) * 2019-01-11 2022-02-18 维沃移动通信有限公司 支持时间敏感通信服务质量的方法及通信设备
US11503100B2 (en) 2019-01-11 2022-11-15 Vivo Mobile Communication Co., Ltd. Method for supporting quality of service of time-sensitive communication and communication device
CN113098799A (zh) * 2019-12-23 2021-07-09 希捷科技有限公司 使用存储设备的端口到端口网络路由
US11824752B2 (en) 2019-12-23 2023-11-21 Seagate Technology Llc Port-to-port network routing using a storage device
CN111190843A (zh) * 2020-01-08 2020-05-22 珠海趣印科技有限公司 一种提高打印速度和打印效果的方法
CN114489473A (zh) * 2020-10-26 2022-05-13 迈络思科技有限公司 用于提高输入/输出性能的***
CN113419780A (zh) * 2021-05-08 2021-09-21 中国科学院声学研究所 一种基于fpga加速卡的dpdk驱动***
CN113419780B (zh) * 2021-05-08 2023-05-12 中国科学院声学研究所 一种基于fpga加速卡的dpdk驱动***

Also Published As

Publication number Publication date
TWI772279B (zh) 2022-08-01
US20170344506A1 (en) 2017-11-30
KR20170133235A (ko) 2017-12-05
JP2017211984A (ja) 2017-11-30
CN107436855B (zh) 2022-07-01
JP7010598B2 (ja) 2022-01-26
US10713202B2 (en) 2020-07-14
KR102427550B1 (ko) 2022-08-01
TW201741887A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
CN107436855A (zh) 用于具有可重配置多端口的pcie存储***的qos认知io管理
US11086650B2 (en) Technologies for application-specific network acceleration with unified coherency domain
US9100349B2 (en) User selectable multiple protocol network interface device
CN109076029B (zh) 用于非统一网络输入/输出访问加速的方法和装置
EP3503507B1 (en) Network interface device
CN110858189A (zh) 用于高带宽存储器的可缩放芯片上网络
EP2630579B1 (en) Unified i/o adapter
US11531636B2 (en) Storage system, method, and apparatus for fast IO on PCIE devices
WO2014051778A1 (en) Adaptive packet deflection to achieve fair, low-cost, and/or energy-efficient quality of service in network on chip devices
US20050228930A1 (en) Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor
US20100057953A1 (en) Data processing system
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
US7596148B2 (en) Receiving data from virtual channels
US20160134567A1 (en) Universal network interface controller
CN104378161A (zh) 一种基于AXI4总线架构的FCoE协议加速引擎IP核
US8040907B2 (en) Switching method
CN115904259A (zh) 非易失性存储器标准NVMe指令的处理方法及相关装置
KR20230019828A (ko) 직접 부착된 디스패치를 갖는 분리된 스위치 제어 경로
CN101334763B (zh) 主机与设备之间的数据传送方法
JP2003018188A (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