CN114072779A - 基于互连地址的QoS规则 - Google Patents
基于互连地址的QoS规则 Download PDFInfo
- Publication number
- CN114072779A CN114072779A CN202080045259.1A CN202080045259A CN114072779A CN 114072779 A CN114072779 A CN 114072779A CN 202080045259 A CN202080045259 A CN 202080045259A CN 114072779 A CN114072779 A CN 114072779A
- Authority
- CN
- China
- Prior art keywords
- request packet
- qos
- attribute
- completer
- qos value
- 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
Links
- 239000004744 fabric Substances 0.000 claims abstract description 74
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 96
- 238000000605 extraction Methods 0.000 claims description 15
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 38
- 238000004891 communication Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 21
- 238000007726 management method Methods 0.000 description 10
- 230000003863 physical function Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- 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
-
- 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/1694—Configuration of memory controller to different memory types
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2458—Modification of priorities while in transit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
在各种实现方式中,提供了用于包括完成方装置(306、308)、请求方装置(302、304)和互连结构(310)的集成电路的系统和方法。所述请求方装置(302、304)被配置为向所述完成方装置(306、308)生成事务,其中每个事务包括请求数据包,所述请求数据包包括与所述完成方装置(306、308)相关联的属性;并且所述互连结构(310)耦合到所述请求方装置(302、304)和所述完成方装置(306、308)。所述集成电路还能够包括QoS调节器(301、303),所述QoS调节器被配置为基于与所述完成方装置(306、308)相关联的第一属性,标识为由所述请求方装置(302、304)生成的第一请求数据包建立第一优先级别的第一QoS值,并且修改所述第一请求数据包以包括所述第一QoS值。
Description
背景技术
集成电路诸如片上系统(SoC)可包括各种部件,每一个部件均为执行特定功能的专用装置,诸如中央处理单元(CPU)、图形处理单元(GPU)、片上加速器、输入/输出(IO)装置、存储器等等。各种部件可以一起操作以执行比每个部件单独可实现的任务范围更宽的任务范围。为了使部件能够一起操作,部件可以在内部通信结构(fabric)中实现,使得部件(例如,结构中的“节点”)可在彼此之间移动数据。通信结构可包括布线和逻辑,以有效地跨SoC移动数据;并且在一些情况下,互连件可以包括用于优化数据传输的逻辑,诸如高速缓存存储器。
附图说明
将参考附图描述根据本公开的各种实施方案,其中:
图1示出了包括请求方装置和完成方装置的片上系统(SoC)的示例;
图2示出了包括处理器(例如,请求方装置)、存储器(例如,完成方装置)和互连件的SoC的示例;
图3示出了根据本公开的某些方面的具有用于基于目标完成方装置向请求数据包指派QoS值的基于完成方的服务质量(QoS)调节器的SoC的示例;
图4示出了根据本公开的某些方面的耦合在请求方装置与互连结构之间的基于完成方的QoS调节器的示例内的逻辑;
图5示出了根据本公开的某些方面的用于由基于完成方的QoS调节器进行基于完成方的QoS调节的方法500的示例的流程图;
图6示出了根据本公开的某些方面的计算装置的示例;并且
图7示出了根据本公开的某些方面的包括经由一个或多个网络连接的一个或多个服务提供方计算机和/或用户装置的本文所述的特征和系统的示例性体系结构。
具体实施方式
本文公开了用于改进集成电路(例如,SoC)的性能的技术。SoC可包括可一起操作来执行多种功能的多个部件。一些部件可以为请求方装置,并且一些部件可以为完成方装置,其中请求方装置可被配置为通过指令完成方装置来执行各种功能。例如,请求方装置可以为处理器,并且完成方装置可以为存储器装置,处理器可以将数据写入该存储器装置中,并且可以从该存储器装置读取数据。处理器可发送请求数据包以从存储器装置读取以及写入到存储器装置中以执行应用来执行功能。请求数据包的服务可以由互连结构执行,该互连结构根据请求数据包的QoS值以特定顺序对请求数据包进行排队。可以根据请求数据包的来源(例如,请求方)的身份来确定QoS值。在一些情况下,SoC可以包括两个不同的存储器装置:第一存储器装置和第二存储器装置,其中第一存储器装置相比于第二存储器装置可在较高的带宽和/或较低的等待时间下操作。在这种情况下,当请求数据包被发送到两个存储器装置时,第二存储器装置的操作可使第一存储器装置的性能降级,这可最终导致SoC性能的降级。根据本公开的某些方面,QoS调节器可基于每个请求数据包的目的地而不是仅基于其来源来设置每个请求数据包的QoS值,以策略性地通过请求方装置和完成方装置之间的互连结构来路由请求数据包。此类基于完成方的QoS调节器可以改善完成方装置的利用率和等待时间,从而整体上改善SoC的操作。
在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供对实施方案的透彻理解。然而,对本领域的技术人员将明显的是,在没有具体细节的情况下也可以实践实施方案。例如,虽然本公开在某些实施方案中可以涉及SoC,但应当理解,在不脱离本公开的精神和范围的情况下,本公开可以应用于包括请求方和完成方的任何集成电路。此外,为了不模糊正在描述的实施方案,可以省略或简化众所周知的特征。
图1示出了包括请求方装置102和104以及完成方装置106和108的SoC 100的示例。在一种场景中,请求方装置102和104可以为处理器,并且完成方装置106和108可以为存储器。也可以被称为中央处理单元(CPU)的处理器可访问存储器资源以执行使处理器执行用于执行软件应用的操作的指令。SoC 100可包括一个处理器或多个处理器,其中每个处理器能够独立地执行指令集。
单个处理器可具有多个处理核心,其中每个核心可独立地执行指令集。处理核心为处理器的计算引擎,在每一个时钟循环上提取指令和数据、执行计算、输出数据并且作出关于待提取的后续指令的决策。具有多个处理器和/或多个处理核心为计算机提供了一种同时执行多个应用的方式。因此,如图1所示,请求方装置102和104可以各自为单个处理器或在单个处理器中实现的单个处理核心。尽管图1仅示出了两个请求方装置102和104以及两个完成方装置106和108,但实施方案不限于此类配置。在不脱离本公开的精神和范围的情况下,本文设想了具有更多或更少的请求方装置和/或完成方装置的其他实施方案。
除了请求方装置102和104之外,SoC 100可以包括可以向完成方装置106和108生成事务的其他请求方装置。例如,SoC 100可包括图形处理单元(GPU)、远程网络接口(RNI)、串行外围接口(SPI)、通用输入/输出(GPIO)接口、直接存储器存取单元、定制部件或能够生成到存储器的事务的任何其他部件(为了便于讨论,图1中未示出所有这些部件)。
存储器装置(例如,图1中的完成方装置106和108)可以为处理器所使用的用于临时存储正在由处理器(例如,图1中的请求方装置102或104)使用或在处理器上操作的数据的存储器装置。例如,当前正在运行的应用的代码部分可被存储在存储器装置中,而不被立即需要的代码部分可被存储在别处,诸如存储在硬盘上。又如,正在读取和/或正在写入的文件可被临时存储在存储器装置中,直到完成读取或写入操作为止,此时可将文件传输到硬盘。此类存储器装置通常被称为动态随机存取存储器(DRAM),因为它们通常使用基于DRAM的技术(诸如,双数据速率(DDR)RAM或同步DRAM(SDRAM)等)来实现。可由处理器使用的一些其他类型的存储器装置包括存储级存储器(SCM)、高带宽存储器(HBM)和具有不同操作特性的其他类型的存储器。
为了将请求方装置102和104连接到完成方装置106和108,SoC可以包括互连结构112,该互连结构提供可以在请求方装置和完成方装置之间传输数据的途径。互连结构112可以包括布线和逻辑,以在跨SoC的节点之间有效地移动数据,如本文关于图2进一步讨论的。逻辑可以包括被配置为执行一个或多个功能的硬件部件、软件部件、或硬件部件和软件部件的组合。
图2示出了包括处理器202和204(例如,请求方装置)、存储器装置206和208(例如,完成方装置)以及互连结构210的SoC 200的示例。处理器202和204以及存储器装置206和208在配置和操作上可基本上类似于以上参考图1所讨论的请求方装置102和104以及完成方装置106和108。因此,此类配置和操作的细节可以参考关于图1的讨论,并且为了简洁起见在本文不进行讨论。
在图2所示的示例中,互连结构210可被配置成简单的2×2网格拓扑,具有四个路由逻辑集212、214、216和218以及四条数据线213、215、217和219,数据可以通过这些数据线在互连结构210内的不同路由逻辑集之间移动。在一些情况下,互连结构210可实现标准化总线协议,诸如高级微控制器总线体系结构(AMBA)或AMBA的变体,诸如高级可扩展接口(AXI)变体或相干集线器接口(CHI)变体。在一些情况下,互连结构210还可以包括用于优化跨路由逻辑集的数据传输的逻辑。例如,互连结构210可包括高速缓存存储器220、222、224和226,它们中的每一者可以存储由处理器202和/或处理器204最新发送的数据。在该示例中,当高速缓存存储器220、222、224和226具有待写入到存储器装置206或208或从中读取的数据时,互连结构210可以提供来自高速缓存存储器220、222、224和226的数据,而不是在写入到存储器装置206时从处理器202读取数据。
高速缓存存储器220、222、224和226可以一起形成分布式共享最后一级高速缓存(SLC)。每个高速缓存存储器220、222、224或226可以为负责独占系统存储器地址集的SLC的相应部分。尽管互连结构210被示出为具有简单的2×2网格拓扑,但应当理解,在不脱离本公开的精神和范围的情况下,可以使用任何其他网格拓扑大小。
在一些情况下,互连结构210可以提供端对端QoS机制,用于通过其结构策略性地路由数据流量以提高性能。例如,互连结构210可以包括结构中的某些路由逻辑集(例如分别耦合到处理器202和204的路由逻辑集216和218)内的QoS调节器228和230。QoS调节器228和230可以通过控制来自处理器202和204的事务的流入来设法防止互连结构210的拥塞。在一些情况下,每个处理器202或204可以将QoS值指派给它们的请求数据包,以试图影响在整个互连结构210中的每个决策点处的仲裁优先级,以使它们的请求数据包的移动优先于其他请求数据包的移动。在其他情况下,QoS调节器228和230,而不是处理器202和204,可以为每个传入事务设置QoS值。
高速缓存存储器220、222、224和226可被配置为用作以顺序次序服务于请求的特定系统地址范围或集合的一致性点队列(POCQ)。因此,由于每一个高速缓存存储器220、222、224或226是分布式SLC的一部分,因此每一个高速缓存存储器220、222、224或226还可包括POCQ的相应部分。因此,高速缓存存储器220、222、224和226可各自包括POCQ的相应部分221、223、225和227,如图2所示。移动通过互连结构的请求数据包可以占用POCQ中的条目,使得可以将其分配到其目的地,例如目标完成方。这些请求数据包可以按特定的顺序次序占用POCQ中的队列中的条目,使得当一个请求数据包被其目标完成方完成时,新的条目可以取代它。在一些情况下,进入队列的占用可用性可取决于其优先级,该优先级可受到QoS值的影响。例如,对于范围从条目0至31的32个条目队列,具有低QoS值的请求数据包只能占用队列中的较低级别的条目空位(例如,条目0至16),而具有高QoS值的请求数据包除了占用较低级别的条目(例如,条目0至16)之外,还可以占用队列中的较高级别的条目(例如,条目17至31)。因此,具有较高QoS值的请求数据包被给予优先级以填充队列中的空条目,使得它们可以在具有较低QoS值的请求数据包之前被路由到完成方。在一些实施方案中,可以基于从中生成请求数据包的请求方装置来设置请求数据包的QoS值。根据某些实施方案,请求数据包的QoS值可以替代地或另外基于请求数据包被发送到的完成方装置来设置,而不是仅基于从中生成请求数据包的请求方装置来设置,以改善SoC内的完成方装置的利用率和等待时间,如本文将进一步详细讨论的。
QoS调节器指派请求数据包的占用级别的方式可以基于其操作模式。一些QoS调节器具有两种操作模式:(1)等待时间操作模式和(2)周期(带宽)调节模式。等待时间为发起对存储器中的字节或字的请求直到其被处理器检索到之间的时间,而带宽为可以从存储器读取数据或将数据存储到存储器中的速率。在等待时间操作模式中,QoS调节器设置QoS字段以实现低等待时间,而在周期调节模式中,QoS调节器设置QoS字段以实现高带宽。此类QoS调节器也是基于请求方的QoS调节器,意味着它们被配置为基于请求方装置的装置类型或身份来指派优先级值。因此,基于请求方的QoS调节器可将较高优先级指派给来自需要更多存储器资源的某些处理器诸如更高速度的处理器的事务。请求方装置可以默认为其事务实现最高优先级,为每个事务指派最高优先级,这可导致所有事务都具有相同的QoS值。或者,QoS调节器可基于装置类型将相同的QoS值指派给两个不同的请求方装置。具有相同的QoS值的事务可使其数据流量在循环的基础上被处理,这可导致在未适当分配存储器资源时一个或多个完成方装置的不充分利用。
例如,存储器装置206和208可以是不同类型的存储器装置,并且因此具有不同的带宽和等待时间操作特性。即,存储器装置206可以为第一类型的存储器装置,存储器装置208可以为不同于第一类型的存储器装置的第二类型的存储器装置,第一类型的存储器装置相比于第二类型的存储器装置可在更高的带宽和/或更低的等待时间下操作。此类情况可被称为“混合存储器模型”,其中出于每体积成本和性能优化的目的,一些存储器装置为较低类别存储器装置。在SoC中具有不同存储器类别的存储器装置可致使分配给不同存储器装置的请求数据包在POCQ中混合,这可造成POCQ中的拥塞并且因此使存储器装置中的一个或多个的性能降级。
参考其中来自一个请求方装置的流量被分配在多个完成方装置之间,而来自另一个请求方装置的流量仅分配到多个完成方装置中的一个,导致POQC具有旨在用于不同存储器装置的请求数据包的混合的特定场景,可以更好地理解此概念。例如,参考图2,其中存储器装置206相比于存储器装置208可以在更高的带宽和/或更低的等待时间下操作,来自处理器202的流量可被分配在存储器装置206和208之间,而来自处理器204的流量可被仅分配到存储器装置206。因此,来自处理器202的旨在用于存储器装置208的请求数据包可占用在包括高速缓存存储器220、222、224和226的分布式SLC中实现的POCQ中的条目。并且,来自处理器204的旨在用于存储器装置206的请求数据包也可以占用POCQ中的条目。在来自处理器202和204两者的请求数据包的QoS值根据基于请求方的QoS规则来确定的情况下,所有请求数据包可以具有相同的优先级,并且因此条目可以被请求数据包均匀地占用,而与请求数据包将旨在被分配到的完成方无关。因此,如果存储器装置208忙碌并且POCQ中用于服务的下一个条目将被分配给存储器装置208,那么高速缓存存储器222中旨在供存储器装置206使用的其他条目的移动将因为存储器装置208针对下一个条目未准备就绪而延迟。该延迟可导致存储器装置206未被充分利用并且导致其等待时间的不必要增加,这继而可使存储器装置206的性能降级并且最终使SoC 200的性能整体降级。以等待时间操作模式或带宽调节模式操作的基于请求方的QoS调节器228和230将无法补救这种情况,因为基于等待时间或带宽修改优先级将对两个完成方装置流具有相同的影响。
因此,根据本公开的某些方面,QoS调节器可被配置为基于完成方而非基于请求方,以基于目标完成方装置而非请求方装置来调整请求数据包的QoS值。换句话讲,基于完成方的QoS调节器可以基于请求数据包将被发送到何处而不是从何处发送来调整优先级。此类QoS调节器因此可以管理数据流量的流动,以最大化完成方装置的利用和/或最小化完成方装置的等待时间,并且因此整体上改善SoC的操作。
图3示出了根据本公开的某些方面的具有用于基于目标完成方装置向请求数据包指派QoS值的基于完成方的QoS调节器301和303的SoC 300的示例。SoC 300可以包括处理器302和304(例如,请求方装置)、存储器装置306和308(例如,完成方装置)、以及互连结构310。处理器302和304以及存储器装置306和308在配置和操作上可以基本上类似于本文关于图1所讨论的处理器和存储器装置。并且,可包括路由逻辑集312、314、316和318以及数据线313、315、317和319的互连结构310在配置和操作上可以基本上类似于本文关于图2所讨论的互连结构210。因此,这些部件的配置和操作的细节可以参考关于图1和图2的讨论,并且为简洁起见在本文不进行讨论。
在一些实施方案中,基于完成方的QoS调节器301和303可被配置为根据目标完成方装置来设置/修改QoS值。例如,QoS调节器301和303可被配置为基于来自处理器302和304的请求数据包将被分配到存储器装置306还是存储器装置308来修改请求数据包的QoS值。由于存储器装置306为第一类型的存储器并且存储器装置308为相比于第一类型的存储器装置具有更低的带宽和更高的等待时间的第二类型的存储器装置(如从关于图2所讨论的示例继续),所以QoS调节器301和303可被配置为为从处理器302和304分配给存储器装置306的请求数据包指派QoS值,所述QoS值的优先级高于分配给存储器装置308的请求数据包的QoS值的优先级。以此方式,可实现可在较高带宽和/或较低等待时间下操作的存储器装置306的利用率和等待时间,而不是对其进行限制,所述限制可在具有基于请求方的QoS调节器的SoC中发生。因此,可以改善SoC的操作。QoS调节器301和303可被配置为根据请求数据包的各种属性诸如目标地址、页面和节点身份(NODEID)来修改QoS值,如本文将关于图4进一步讨论的。
基于完成方的QoS调节器可以被集成在互连结构的请求方端以拦截由请求方装置生成的事务,使得在进入互连结构之前,基于目标完成方装置,QoS值可以被设置/修改以反映优先级。例如,图3中所示的QoS调节器301和303可以为位于互连结构310与处理器302和304之间的与互连结构310分开的单独部件。由处理器302和304生成的事务可以被QoS调节器301和303拦截,所述QoS调节器然后可以根据被分配事务的目标完成方装置来设置/修改请求数据包的QoS值。QoS调节器301和303可在处理器302和304不知道QoS(意味着它们不向其事务指派其自身的QoS值)的情况下设置QoS值,或者在处理器302和304知道QoS(意味着它们向其事务指派其自身的QoS值)的情况下修改先前QoS值的QoS值。
在附加的或替代实施方案中,基于完成方的QoS调节器可以可选地集成在请求方装置本身内,并且因此在将事务分配到互连结构之前设置/修改QoS值。例如,图3所示的QoS调节器332和334可以是集成在处理器302和304内的部件。在这种情况下,由处理器302和304生成的事务可以在请求数据包被输出到互连结构310之前根据事务被分配到的目标完成方装置来设置/修改它们的QoS值。在此类实施方案中,路由逻辑集316和318中的QoS调节器328和330可以简单地将请求数据包中继到互连结构310中,而无需进一步修改QoS值。
根据本公开的某些方面的基于完成方的QoS调节器可为被配置为执行用于基于目标完成方装置修改QoS值的功能的芯片上的逻辑集。因此,此类QoS调节器可包括执行单独任务的逻辑子集,其在被组合时实现基于完成方的QoS调节的功能。本文关于图4讨论基于完成方的QoS调节器内的逻辑的更详细的讨论。
图4示出了根据本公开的某些方面的耦合在请求方装置402与互连结构404之间的基于完成方的QoS调节器400的示例内的逻辑部件。作为事务的一部分,请求方装置402可以生成请求数据包406,用于分配到完成方装置(为简单起见未示出)。请求数据包406可由基于完成方的QoS调节器400接收,该基于完成方的QoS调节器修改其QoS值并且向互连结构404输出新的请求数据包408。新的请求数据包408可以是具有新的QoS值的请求数据包406。一旦接收到新的请求数据包408,互连结构404就可以根据基于新的QoS值的新的优先级将新的请求数据包408移动到适当的完成方装置。
在一些实施方案中,QoS调节器400可以包括属性提取逻辑410,该属性提取逻辑被配置为从请求方装置402接收请求数据包406,并且标识和提取请求数据包406内的一个或多个属性412。可被标识和提取的属性的一些示例为请求数据包406的原始QoS值(如果有的话)、请求数据包406将旨在被发送到的完成方装置的存储器地址、以及用户定义的保留位。根据本公开的某些方面,可以帮助QoS调节器400标识请求数据包406被发送到的目的地(例如,完成方装置)的方式来定义请求数据包406的用户定义的保留位。例如,使用标准的虚拟到物理页面转换体系结构,用户可定义的保留位可以为处理器(例如,请求方装置402)的存储器管理单元(MMU)中的每一个页面描述符中的属性,该属性向QoS调节器400提供提示以用于标识请求数据包406被发送到的存储器的类型。下面的表1示出了属性(例如,本文中的“page_descriptor_mem_attr[1:0]”或“页面属性”)可如何与不同的存储器类型相关联的一个示例。
page_descriptor_mem_attr[1:0] | 存储器类型 |
00 | DRAM(默认) |
01 | 存储级存储器(SCM) |
10 | 高带宽存储器(HBM) |
11 | 存储器映射的输入/输出(IO) |
表1
即,“00”页面属性可与DRAM相关联并且在未选择特定页面属性时为默认页面属性。“01”页面属性可与SCM相关联,SCM可以比DRAM慢但为永久存储器,意味着其内容在功率循环期间得以保存。“10”页面属性可以与HBM相关联,HBM相比于SCM可具有更高的带宽并且使用更少的功率。“11”页面属性可与存储器映射的IO相关联。
可将所提取的属性输出到可配置的内容可寻址存储器(CAM)418或基于寄存器的匹配逻辑,该基于寄存器的匹配逻辑可充当基于搜索数据可输出值的高速查找表。例如,表1中所示的每个附加属性可以链接到特定的条目编号;并且,当接收到一个或多个属性412时,可配置CAM 418可以使用这些属性中的一个或多个来标识链接到这些一个或多个属性的条目编号,然后输出所标识的条目编号作为条目编号420。例如,简单参考图3,存储器装置306可链接到页面属性“00”,并且存储器装置308可链接到页面属性“01”。因此,在请求数据包406被发送到存储器装置306的情况下,请求数据包406可包括一个或多个属性412,诸如目的地存储器地址、页面属性、原始QoS值和用户位,其中页面属性为“00”。属性提取逻辑410可标识并且提取页面属性并且将其发送到可配置CAM 418,该可配置CAM使用页面属性来标识并且输出对应于页面属性“00”的条目编号,例如条目编号420。尽管实施方案公开了用于基于一个或多个所提取的属性来标识条目编号的可配置CAM,但实施方案并不限于此。在不脱离本公开的精神和范围的情况下,可以使用用于将数据与条目表进行匹配的任何合适的可配置逻辑,诸如包括寄存器和比较器的逻辑。
来自属性提取逻辑410的任何所提取的属性可用作用于可配置CAM 418的搜索数据。特别地,可以标识完成方装置的身份的那些提取的属性可以用作搜索数据,诸如请求数据包406将旨在被发送到的完成方装置的NODEID、存储器地址或页面属性。在一些情况下,一个以上的所提取的属性可用于标识条目编号。例如,NODEID、存储器地址属性和页面属性可以一起用于确定条目编号。通过使用一个以上的属性来标识条目编号,基于完成方的QoS调节器可更准确地向请求数据包406指派新的优先级。
在一些实施方案中,可配置CAM 418可将条目编号420输出到QoS表422,该QoS表可以是在条目列表中保存若干新的QoS值的查找表。每一个QoS值可在QoS表422的特定条目中,使得标识特定条目的条目编号可用于标识该条目中的特定QoS值。因此,当属性提取逻辑410从请求数据包406提取页面属性并且可配置CAM 418标识与页面属性相关联的条目编号420并且将其输出到QoS表422时,页面属性有效地用于标识QoS表422中的新的QoS值。因为页面属性或在本文所讨论的任何其他提取的属性标识完成方装置,因此新的QoS值可以被链接到请求数据包被发送到的完成方装置的类型。下表2列出了基于表1的请求数据包406的相应页面属性的新的QoS值。
page_descriptor_mem_attr[1:0] | 新的QoS值[3:0] |
00 | 0xE |
01 | 0x7 |
10 | 0xA |
11 | 原始QoS值 |
表2
因此,包括与表1所示的DRAM存储器类型相关联的页面属性“00”的请求数据包可以链接到新的QoS值0xE;包括与SCM存储器类型相关联的页面属性“01”的请求数据包可以链接到新的QoS值0x7;包括与HBM存储器类型相关联的页面属性“10”的请求数据包可以链接到新的QoS值0xA;并且包括与IO存储器类型相关联的页面属性“11”的请求数据包可以链接到原始QoS值。新的基于完成方的QoS值可以为分配给具有较高带宽和/或较低等待时间的存储器类型的请求数据包指派较高优先级。因此,分配给DRAM存储器类型的请求数据包可以具有最高的QoS值0xE,接着是HBM,然后是SCM存储器类型。
通过对示例性场景的讨论以及参考图3和图4,可以更好地理解此概念。在此情况下,存储器装置306为DRAM并且存储器装置308为SCM,并且图4中的QoS表422包括具有保存表2中的四个QoS值的连续条目编号1至4的四个条目,其中QoS值0xE在条目编号1中并且原始QoS值在条目编号4中。因此,分配给存储器装置306的请求数据包可以包括页面属性“00”并且链接到QoS表422的条目编号1,并且分配到存储器装置308的请求数据包可以包括页面属性“01”并且链接到QoS表422的条目编号2。因为存储器装置308相比于存储器装置306以较低的带宽和/或较高的等待时间操作,所以分配给存储器装置306的请求数据包可被设定为具有QoS值0xE,并且分配给存储器装置308的请求数据包可被设定为具有QoS值0x7。因此,分配给存储器装置306的请求数据包可访问POCQ中的较大占用位,使得它们可以被快速分配到较高级存储器而不存在由POCQ中的混合请求数据包引起的延迟,如本文关于图2所讨论的。
尽管图4将属性提取逻辑410、可配置CAM 418和QoS表422示出为单独的逻辑部件,但实施方案不限于此类配置。在一些实施方案中,可配置CAM 418和QoS表422可集成到单个逻辑部件中。在一些实施方案中,QoS表422可存储在可配置CAM 418中。另外或替代地,属性提取逻辑410可与可配置CAM 418集成,或属性提取逻辑410、可配置CAM 418和QoS表422可全部集成到单个逻辑部件中。应当理解,在不脱离本公开的精神和范围的情况下,可以将部件的任何组合集成在一起。
参考图4,QoS表422可将所标识的基于完成方的QoS值作为新的QoS值424输出到QoS超控逻辑426。在一些实施方案中,QoS超控逻辑426接收请求数据包406和新的QoS值424,并且用新的QoS值424替换请求数据包406中的原始QoS值以创建新的请求数据包408。一旦用新的QoS值424替换了原始QoS值,就可以将新的请求数据包408输出到互连结构404,然后该互连结构可以根据由新的QoS值424建立的新的优先级,通过互连结构404路由新的请求数据包408。在请求方装置402不知道QoS的实施方案中,QoS超控逻辑426可以根据新的QoS值424设置而不是修改请求数据包406的QoS值。
在一些实施方案中,基于完成方的QoS调节器400还可以包括经由配置总线430耦合到互连结构404的配置寄存器集428。配置寄存器428可以为控制SoC的操作的一系列寄存器。在一些实现方式中,配置寄存器428中的一个或多个位可以表示SoC的某些能力。可以通过在请求方装置402中执行的指令和/或通过外部实体诸如主机装置、在主机装置上执行的操作系统和/或经由配置总线430耦合到互连结构404的远程装置来对表示SoC的配置的数据进行编程。
如图4所示,基于完成方的QoS调节器400可以与请求方装置402分开并且在其外部,并且可以被定位成拦截来自请求方装置402的请求数据包。在此类配置中,基于完成方的QoS调节器400可容易地实现在SoC设计中,例如,通过将调节器400插入到请求方装置与互连结构之间的数据线中。尽管图4将基于完成方的QoS调节器400示出为独立的并且在请求方装置402外部,但实施方案并不限于此。在一些情况下,基于完成方的QoS调节器可被集成在请求方装置402中,使得请求方装置402的输出可以是新的请求数据包408,而不是如图4所示的请求数据包406。在此类实施方案中,请求方装置402可标识请求数据包的原始QoS值,并且在请求数据包由请求方装置输出之前用基于完成方的QoS调节器在内部修改原始QoS值。以此方式,由请求方装置402输出的请求数据包可以已经具有新的QoS值,并且因此具有基于它们的目的地而不是它们的来源的优先级别。在一些其他实施方案中,基于完成方的QoS调节器400的功能可被集成到互连结构中的现有QoS调节器中,例如图2中的QoS调节器228和230。在此类实施方案中,QoS调节器228和230可被编程为帮助基于完成方装置而非请求方装置来指派QoS值,如本文所讨论的。例如,QoS调节器228和230可以被编程为混合调节器,该混合调节器可以执行请求数据包的基于完成方的QoS调节以及等待时间和/或带宽QoS调节。此类QoS调节器可以针对每个完成方准许一定范围的QoS值,并且在相应完成方的该准许范围内执行等待时间和/或带宽调节。
方法
图5示出了根据本公开的某些方面的用于由基于完成方的QoS调节器进行基于完成方的QoS调节的方法500的示例的流程图。在框502处,可以接收包括属性的请求数据包。在一些实施方案中,属性提取逻辑(例如,图4中的基于完成方的QoS调节器400的逻辑410)可接收请求数据包(例如,请求数据包406),并且属性可以为本文关于图4所讨论的存储器地址属性、页面属性、NODEID、原始QoS值和用户位中的任一者。在请求方装置知道QoS的实施方案中,请求数据包可包括可与基于请求方装置的优先级相关联的原始QoS值。
在框504处,可标识并且提取来自请求数据包的属性。例如,可从请求数据包标识和提取存储器地址属性、页面属性和/或原始QoS值。在一些实施方案中,属性可由属性提取逻辑标识并且提取,该属性提取逻辑然后可以将所提取的属性输出到可配置CAM。存储器地址属性和页面属性可与特定的存储器类型相关联,如本文关于图3和图4所讨论的。
在框506处,可标识链接到该属性的条目编号。例如,可配置CAM(例如,图4中的可配置CAM 418)可接收页面属性并且使用该页面属性作为搜索数据以标识链接到该页面属性的条目编号,如本文中关于图4所讨论的。然后,在框508处,可标识链接到条目编号的QoS值。例如,QoS表(例如,图4中的QoS表422)可以接收条目编号并且标识链接到条目编号的QoS值。QoS值可以与优先级别相关联,该优先级别是基于其分配到的完成方装置而不是其被发送的请求方装置,使得与QoS值相关联的新的优先级别可以根据完成方装置(例如,存储器装置306和308)的独特能力来引导流量,如本文关于图4所讨论的。
在框510处,请求数据包可以被修改为包括QoS值,使得请求数据包可具有基于完成方而不是基于请求方的优先级别。在请求方装置不知道QoS的情况下,修改请求数据包可以通过在请求数据包中插入QoS值来执行。而在请求方装置知道QoS的情况下,修改请求数据包可以通过删除原始QoS值并且用新的基于完成方的QoS值替换它来执行。在一些实施方案中,QoS超控逻辑(例如,图4中的QoS超控逻辑426)可修改请求数据包中的QoS值。在此类情况下,QoS超控逻辑可被配置为接收请求数据包以及QoS值,使得可以用QoS值来修改请求数据包。然后,在框512处,QoS超控逻辑可以将具有QoS值的经过修改的请求数据包输出到互连结构,例如本文中分别关于图3和图4所讨论的互连结构310或404,使得互连结构根据第一优先级别传输请求数据包。QoS值可以修改请求数据包通过SoC中的互连结构的移动优先级,使得可以实现某些完成方装置的利用率和等待时间,而不是受混合流量的限制,所述某些完成方装置可以是相比于其他完成方装置在更高的带宽和/或更低的等待时间下操作的存储器,所述混合流量可以在具有基于请求方的QoS调节器的SoC中发生,如前所述。
可以鉴于以下条款来描述本公开的实施方案:
1.一种集成电路,其包括:
完成方装置;
请求方装置,所述请求方装置被配置为向所述完成方装置生成事务,每个事务包括请求数据包,所述请求数据包包括属性;
互连结构,所述互连结构耦合到所述请求方装置和所述完成方装置,并且包括分布式共享高速缓存存储器,所述分布式共享高速缓存存储器能够操作以对移动通过所述互连结构的事务进行排队,其中所述互连结构被配置为将所述事务的请求数据包从所述请求方装置传输到所述完成方装置;以及
服务质量(QoS)调节器,所述QoS调节器被配置为:
接收包括与所述完成方装置的第一完成方装置相关联的第一属性的第一请求数据包;
从所述第一请求数据包提取所述第一属性;
基于所述第一属性标识第一QoS值,所述第一QoS值基于与所述第一完成方装置相关联的所述第一属性为所述第一请求数据包建立第一优先级别;以及
修改所述第一请求数据包以包括所述第一QoS值,使得所述互连结构根据所述第一优先级别传输所述第一请求数据包。
2.如条款1所述的集成电路,其中所述QoS调节器包括:
属性提取逻辑,所述属性提取逻辑被配置为接收所述第一请求数据包并且提取所述第一属性;
可配置内容可寻址存储器(CAM)或基于寄存器的匹配逻辑,其耦合到所述属性提取逻辑并且包括链接到所述第一属性的第一条目编号,使得能够基于所述第一属性来标识所述第一条目编号;
QoS表,所述QoS表耦合到所述可配置CAM并且被配置为将所述第一QoS值链接到所述第一条目编号,使得能够基于所述第一条目编号来标识所述第一QoS值;以及
QoS超控逻辑,所述QoS超控逻辑耦合到所述QoS表并且被配置为修改所述第一请求数据包以包括所述第一QoS值。
3.如条款1或2所述的集成电路,其中所述QoS调节器还被配置为:
接收包括与所述完成方装置的第二完成方装置相关联的第二属性的第二请求数据包;
从所述第二请求数据包提取所述第二属性;
基于所述第二属性标识第二QoS值,所述第二QoS值基于与所述第二完成方装置相关联的所述第二属性为所述第二请求数据包建立第二优先级别;以及
修改所述第二请求数据包以包括所述第二QoS值,使得所述互连结构根据所述第二优先级别传输所述第二请求数据包。
4.如条款3所述的集成电路,其中所述第一完成方装置具有与所述第二完成方装置不同的操作能力,并且其中所述第二优先级别不同于所述第一优先级别。
5.如条款4所述的集成电路,其中所述第一完成方装置为动态随机存取存储器(DRAM)装置,所述第二完成方装置为存储级存储器(SCM)装置,并且所述请求方装置包括处理器。
6.一种集成电路,其包括:
完成方装置;
请求方装置,所述请求方装置被配置为向所述完成方装置生成事务,每个事务包括请求数据包,所述请求数据包包括与所述完成方装置相关联的属性;
互连结构,所述互连结构耦合到所述请求方装置和所述完成方装置;以及
QoS调节器,所述QoS调节器被配置为:
基于与所述完成方装置相关联的第一属性来标识为由所述请求方装置生成的第一请求数据包建立第一优先级别的第一QoS值;以及
修改所述第一请求数据包以包括所述第一QoS值。
7.如条款6所述的集成电路,其中所述QoS调节器与所述请求方装置分开,并且定位在所述请求方装置和所述互连结构之间,以接收由所述请求方装置输出的所述第一请求数据包,并且将具有所述第一QoS值的所述第一请求数据包输出到所述互连结构。
8.如条款6或7所述的集成电路,其中所述QoS调节器被集成到所述请求方装置中,使得由所述请求方装置输出的所述第一请求数据包已经包括所述第一QoS值并且被发送到所述互连结构。
9.如条款6-8中任一项所述的集成电路,其中所述第一请求数据包还包括由所述请求方装置设置的原始QoS值,并且其中通过用所述第一QoS值替换所述原始QoS值来执行对所述第一请求数据包的修改。
10.如条款6-9中任一项所述的集成电路,其中所述QoS调节器还被配置为:
接收包括与所述完成方装置相关联的所述第一属性的所述第一请求数据包;
从所述第一请求数据包提取所述第一属性;以及
标识链接到所述第一属性的第一条目编号。
11.如条款10所述的集成电路,其中所述QoS调节器包括:
属性提取逻辑,所述属性提取逻辑耦合到所述请求方装置并且被配置为接收所述第一请求数据包并且提取所述第一属性;
可配置内容可寻址存储器(CAM)或基于寄存器的匹配逻辑,其耦合到所述属性提取逻辑并且包括链接到所述第一属性的所述第一条目编号,使得能够基于所述第一属性来标识所述第一条目编号;
QoS表,所述QoS表耦合到所述可配置CAM并且被配置为将所述第一QoS值链接到所述第一条目编号,使得能够基于所述第一条目编号来标识所述第一QoS值;以及
QoS超控逻辑,所述QoS超控逻辑耦合到所述QoS表并且被配置为修改所述第一请求数据包以包括所述第一QoS值。
12.如条款6-11中任一项所述的集成电路,其中所述完成方装置为第一完成方装置,并且所述QoS调节器还被配置为:
接收包括与不同于所述第一完成方装置的第二完成方装置相关联的第二属性的第二请求数据包;
从所述第二请求数据包提取所述第二属性;
基于所述第二属性标识第二QoS值,所述第二QoS值基于与所述第二完成方装置相关联的所述第二属性为所述第二请求数据包建立第二优先级别;以及
修改所述第二请求数据包以包括所述第二QoS值,使得所述互连结构根据所述第二优先级别传输所述第二请求数据包。
13.如条款6-12中任一项所述的集成电路,其中所述QoS超控逻辑耦合到所述请求方装置和所述QoS表以接收所述第一请求数据包和新的QoS值以修改所述第一请求数据包。
14.如条款6-13中任一项所述的集成电路,其中所述QoS调节器还被配置为基于除所述第一属性之外的与所述完成方装置相关联的第二属性来标识所述第一QoS值。
15.如条款6-14中任一项所述的集成电路,其中所述互连结构还包括以顺序次序服务于请求的一致性点队列(POCQ),每个高速缓存存储器为分布式共享高速缓存的一部分。
16.一种方法,其包括:
由集成电路的QoS调节器接收包括与第一完成方装置相关联的第一属性的第一请求数据包;
从所述第一请求数据包提取所述第一属性;
基于所述第一属性标识第一QoS值,所述第一QoS值基于与所述第一完成方装置相关联的所述第一属性为所述第一请求数据包建立第一优先级别;
修改所述第一请求数据包以包括所述第一QoS值;以及
将包括所述第一QoS值的所述第一请求数据包输出到互连结构,使得所述互连结构根据所述第一优先级别传输所述第一请求数据包。
17.如条款16所述的方法,其中修改所述第一请求数据包以包括所述第一QoS值包括将所述第一QoS值插入到所述第一请求数据包中。
18.如条款16或17所述的方法,其中所述第一请求数据包还包括由请求方装置设置的原始QoS值,并且通过用所述第一QoS值替换所述原始QoS值来执行对所述第一请求数据包的修改。
19.如条款16-18中任一项所述的方法,其中从所述第一请求数据包中提取所述第一属性包括提取与所述第一完成方装置相关联的页面属性或存储器地址。
20.如条款16-19中任一项所述的方法,其还包括:
由所述集成电路的所述QoS调节器接收包括与第二完成方装置相关联的第二属性的第二请求数据包;
从所述第二请求数据包提取所述第二属性;
基于所述第二属性标识第二QoS值,所述第二QoS值基于与所述第二完成方装置相关联的所述第二属性为所述第二请求数据包建立第二优先级别;以及
修改所述第二请求数据包以包括所述第二QoS值;以及
向所述互连结构输出包括所述第二QoS值的所述第二请求数据包,使得所述互连结构根据所述第二优先级别传输所述第二请求数据包。
计算系统
图6示出了计算装置600的示例。在一些实施方案中,计算装置600可以是包括本文所讨论的一个或多个基于完成方的QoS调节器的SoC。因此,计算装置600的功能和/或若干部件可以在没有限制的情况下与在没有限制的情况下本公开中的其他部分所公开的其他实施方案一起使用。
在一个示例中,计算装置600可包括处理逻辑602、配置模块604、管理模块606、总线接口模块608、存储器610以及网络接口模块612。这些模块可以为硬件模块、软件模块或硬件和软件的组合。在某些情况下,在不脱离本公开的范围的情况下,模块可以与部件或引擎互换使用。计算装置600可以包括未在此示出的附加模块,诸如关于图7中公开的节点所讨论的部件。在一些实现方式中,计算装置600可以包括更少的模块。在一些实现方式中,模块中的一个或多个可以组合成一个模块。模块中的一个或多个可以通过通信信道614彼此通信。通信信道614可以包括一根或多根总线、网格、矩阵、结构、这些通信信道的组合、或某一其他合适的通信信道。在一些情况下,通信信道614可以是本文中关于图3和图4所讨论的互连结构310或404。
处理逻辑602可包括专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、网络处理单元(NPU)、被配置为执行指令的处理器或被配置为执行逻辑算术和浮点运算的任何其他电路。可以包括在处理逻辑602中的处理器的示例可以包括由等开发的处理器。在某些实现方式中,处理器可包括多个处理核心,其中每个处理核心可被配置为独立于其他处理核心来执行指令。此外,在某些实现方式中,每个处理器或处理核心可以实现在相同的处理器或处理核心上执行指令的多个处理线程,同时保持多个处理线程之间的逻辑分离。在处理器或处理核心上执行的此类处理线程可作为单独的逻辑处理器或处理核心而展示给软件。在一些实现方式中,多个处理器、处理核心或在相同的核心上执行的处理线程可共享某些资源,诸如例如总线、1级(L1)高速缓存和/或2级(L2)高速缓存。由处理逻辑602执行的指令可以例如以计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。在一些情况下,计算机可读介质可以是存储器610的一部分。根据本公开的某些方面,基于完成方的QoS调节器(图6中未示出)可耦合在处理逻辑602与通信信道614之间,以拦截由处理逻辑602发送到通信信道614中的请求数据包。替代地,可将基于完成方的QoS调节器集成到处理逻辑602中。通过将基于完成方的QoS调节器实现到计算装置600中,可以将从处理逻辑602输出的请求数据包以新的QoS值输入到通信信道614中,所述新的QoS值基于请求数据包的目的地而非其来源来设定请求数据包的优先级别。
存储器610可以包括易失性或非易失性,或者包括易失性和非易失性类型的存储器。存储器610例如可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器和/或一些其他合适的存储介质。在一些情况下,存储器610中的一些或全部可以在计算装置600的内部,而在其他情况下,存储器中的一些或全部可以在计算装置600的外部。存储器610可存储包括可执行指令的操作系统,所述可执行指令在由处理逻辑602执行时提供用于执行为计算装置600提供各种功能的指令的执行环境。存储器还可以存储和维护若干数据结构和路由表,以便于计算装置600的功能。存储器610可以包括本文关于图3讨论的存储器装置306和308。
在一些实现方式中,配置模块604可以包括一个或多个配置寄存器。配置寄存器可以控制计算装置600的操作。在一些实现方式中,配置寄存器中的一个或多个位可表示计算装置600的某些能力。配置寄存器可由在处理逻辑602中执行的指令和/或由外部实体诸如主机装置、在主机装置上执行的操作系统和/或远程装置编程。配置模块604还可以包括控制计算装置600的操作的硬件和/或软件。
在一些实现方式中,管理模块606可被配置为管理计算装置600的不同部件。在一些情况下,管理模块606可在加电时配置一个或多个配置寄存器中的一个或多个位,以启用或禁用计算装置600的某些能力。在某些实现方式中,管理模块606可使用来自处理逻辑602的处理资源。在其他实现方式中,管理模块606可具有类似于处理逻辑602的处理逻辑,但被分段或实施在与处理逻辑602不同的功率平面上。
总线接口模块608可以使得能够通过外部通信介质与外部实体诸如主机装置和/或计算系统中的其他部件通信。总线接口模块608可以包括用于连接到电缆、插座、端口或到外部通信介质的其他连接的物理接口。总线接口模块608还可以包括硬件和/或软件以管理传入和传出事务。总线接口模块608可实现本地总线协议,诸如基于外围部件互连(PCI)的协议、非易失性存储器快速(NVMe)、高级主机控制器接口(AHCI)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、串行AT附接(SATA)、并行ATA(PATA)、某一其他标准总线协议或专有总线协议。总线接口模块608可以包括用于这些总线协议中的任一者的物理层,包括连接器、电源管理和错误处理等等。在一些实现方式中,计算装置600可以包括用于与多个外部实体通信的多个总线接口模块。这些多个总线接口模块可以实现相同的局部总线协议、不同的局部总线协议、或者相同和不同的总线协议的组合。
网络接口模块612可以包括用于与网络通信的硬件和/或软件。该网络接口模块612例如可以包括用于有线连接到网络的物理连接器或物理端口和/或用于与网络的无线通信的天线。网络接口模块612还可以包括被配置为实现网络协议栈的硬件和/或软件。网络接口模块612可以使用网络协议与网络通信,所述网络协议为诸如例如TCP/IP、Infiniband、RoCE、电气和电子工程师协会(IEEE)802.11无线协议、用户数据报协议(UDP)、异步传输模式(ATM)、令牌环、帧中继、高级数据链路控制(HDLC)、光纤分布式数据接口(FDDI)和/或点对点协议(PPP)等等。在一些实现方式中,计算装置600可以包括多个网络接口模块,每个网络接口模块被配置为与不同的网络通信。例如,在这些实现方式中,计算装置600可以包括用于与有线以太网网络、无线802.11网络、蜂窝网络、Infiniband网络等通信的网络接口模块。
上述计算装置600的各种部件和模块可被实现为分立部件、SoC、ASIC、NPU、FPGA或它们的任何组合。在一些实施方案中,SoC或其他部件可通信地耦合到另一个计算系统以提供各种服务,诸如流量监测、流量整形、计算等。在本技术的一些实施方案中,SoC或其他部件可包括如关于图7所公开的多个子系统。
图7示出了网络700,示出了图6的各种不同类型的计算装置600,诸如包括计算装置、交换机和路由器的节点。在某些实施方案中,网络700可以基于具有点对点链路的交换的体系结构。如图7所示,网络700包括可以布置在网络中的多个交换机704a至704d。在某些情况下,交换机被布置在多层网络诸如Clos网络中。
网络700还可以包括一个或多个计算装置600,用于与其他网络708诸如其他子网、LAN、广域网(WAN)或互联网连接,并且可被称为路由器706。路由器使用协议诸如互联网控制消息协议(ICMP)来彼此通信并且配置任何两个装置之间的最佳路由。
在一些示例中,一个或多个网络700可包括许多不同类型的网络中的任何一种或它们的组合,诸如有线网络、互联网、无线网络、蜂窝网络和其他私有和/或公共网络。互连的交换机704a至704d和路由器706(如果存在的话)可以被称为交换机结构、结构、网络结构、或者简称为网络。在计算机网络的上下文中,术语“结构”和“网络”在本文中可互换使用。
节点702a至702h可以是表示用户装置、服务提供方计算机或第三方计算机的主机系统、处理器节点、存储子系统和I/O框架的任何组合。
用户装置可以包括用于访问应用732(例如,web浏览器或移动装置应用)的计算装置。在一些方面中,应用732可由计算资源服务或服务提供方托管、管理和/或提供。应用732可允许一个或多个用户与一个或多个服务提供方计算机进行交互以例如访问web内容(例如,网页、音乐、视频等)。一个或多个用户装置可以为计算装置,诸如例如移动电话、智能电话、个人数字助理(PDA)、膝上型计算机、上网本计算机、台式计算机、瘦客户端装置、平板计算机、电子书(e-book)阅读器、游戏控制台等等。在一些示例中,一个或多个用户装置可以经由一个或多个其他网络708与一个或多个服务提供方计算机通信。另外,一个或多个用户装置可以为由一个或多个服务提供方计算机(例如,与服务提供方计算机集成的控制台装置)管理、控制的分布式系统的一部分,或者是一个或多个服务提供方计算机的一部分。
图7的一个或多个节点还可以表示一个或多个服务提供方计算机。一个或多个服务提供方计算机可以提供被配置为在一个或多个用户可以进行交互的用户装置上运行的本机应用。在一些示例中,一个或多个服务提供方计算机可以提供计算资源,诸如但不限于客户端实体、低等待时间数据存储装置、持久的数据存储装置、数据访问、管理、虚拟化、基于云的软件解决方案、电子内容性能管理等等。一个或多个服务提供方计算机还可以用于向一个或多个用户提供web托管、数据库管理、计算机应用开发和/或实现平台、前述这些的组合等等。在一些实施方案中,一个或多个服务提供方计算机可被提供为在托管的计算环境中实现的一个或多个虚拟机。托管的计算环境可包括一个或多个快速供应和释放的计算资源。这些计算资源可以包括计算、联网和/或存储装置。托管的计算环境也可以被称为云计算环境。一个或多个服务提供方计算机可以包括一个或多个服务器,所述服务器可能被布置在集群中,作为服务器场,或者作为彼此不相关联的单独的服务器,并且可以托管应用732和/或基于云的软件服务。这些服务器可以被配置为集成的分布式计算环境的一部分。在一些方面中,一个或多个服务提供方计算机可另外或替代地包括计算装置,诸如例如移动电话、智能电话、个人数字助理(PDA)、膝上型计算机、台式计算机、上网本计算机、服务器计算机、瘦客户端装置、平板计算机、游戏控制台等等。在一些情况下,一个或多个服务提供方计算机可与一个或多个第三方计算机通信。
在一个示例性配置中,一个或多个节点702a至702h可以包括至少一个存储器718和一个或多个处理单元(或一个或多个处理器720)。一个或多个处理器720可以用硬件、计算机可执行指令、固件或它们的组合来实现。一个或多个处理器720的计算机可执行指令或固件实现方式可包括以任何合适的编程语言编写以执行所描述的各种功能的计算机可执行或机器可执行指令。
在一些情况下,一个或多个硬件处理器720可以为单核处理器或多核处理器。多核处理器可以包括同一处理器内的多个处理单元。在一些实施方案中,多核处理器可共享某些资源,诸如总线和第二级或第三级高速缓存。在一些情况下,单核或多核处理器中的每个核心还可以包括多个执行逻辑处理器(或执行线程)。在此类核心(例如,具有多个逻辑处理器的核心)中,还可以共享若干阶段的执行管线以及较低级别的高速缓存。
存储器718可以存储可在一个或多个处理器720上加载和执行的程序指令,以及在这些程序的执行期间生成的数据。根据一个或多个节点702a至702h的配置和类型,存储器718可以为易失性的(诸如RAM)和/或非易失性的(诸如ROM、闪存存储器等等)。存储器718可包括操作系统728、一个或多个数据存储库730、一个或多个应用程序732、一个或多个驱动程序734和/或用于实现本文所公开的特征的服务。
操作系统728可以支持节点702a至702h的基本功能,诸如调度任务、执行应用和/或控制器外围装置。在一些实现方式中,服务提供方计算机可以托管一个或多个虚拟机。在这些实现方式中,每个虚拟机可被配置为执行其自身的操作系统。操作系统的示例包括Unix、Linux、Windows、Mac OS、iOS、Android等等。操作系统728也可以为专有操作系统。
数据存储库730可包括由操作系统728、应用程序732或驱动程序734使用和/或操作的永久或临时数据。此类数据的示例包括网页、视频数据、音频数据、图像、用户数据等等。在一些实现方式中,数据存储库730中的信息可以通过一个或多个网络708提供给用户装置704。在一些情况下,数据存储库730可以另外或替代地包括所存储的应用程序和/或驱动程序。替代地或另外,数据存储库730可以存储标准的和/或专有软件库、和/或标准的和/或专有应用用户界面(API)库。存储在数据存储库730中的信息可以为机器可读目标代码、源代码、解释代码或中间代码。
驱动程序734包括可以提供节点中的部件之间的通信的程序。例如,一些驱动程序734可以提供操作系统728与附加的存储装置722、计算装置724和/或I/O装置726之间的通信。替代地或另外,一些驱动程序734可以提供应用程序732和操作系统728之间的和/或应用程序732和服务提供方计算机可访问的外围装置之间的通信。在许多情况下,驱动程序734可包括提供众所周知的功能的驱动程序(例如,打印机驱动程序、显示器驱动程序、硬盘驱动程序、固态装置驱动程序)。在其他情况下,驱动程序734可提供专有或专用功能。
一个或多个服务提供方计算机或服务器还可以包括附加的存储装置722,该附加的存储装置可以包括可移动存储装置和/或不可移动存储装置。附加的存储装置722可包括磁存储装置、光盘、固态盘、闪存存储器和/或磁带存储装置。附加的存储装置722可被容纳在与一个或多个节点702a至702h相同的框架中,或者可以在外部壳体中。存储器718和/或附加的存储装置722及其相关联的计算机可读介质可以为计算装置提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。在一些实现方式中,存储器718可包括多种不同类型的存储器,诸如SRAM、DRAM或ROM。
可移动和不可移动的存储器718和附加的存储装置722为计算机可读存储介质的示例。例如,计算机可读存储介质可以包括以用于存储信息的方法或技术实现的易失性或非易失性、可移动或不可移动介质,该信息包括例如计算机可读指令、数据结构、程序模块或其他数据。存储器718和附加的存储装置722为计算机存储介质的示例。可存在于一个或多个节点702a至702h中的其他类型的计算机存储介质可包括但不限于PRAM、SRAM、DRAM、RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、DVD或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储装置、固态驱动器、或可用于存储所需信息并且可由一个或多个节点702a至702h访问的某一其他介质。计算机可读介质还包括任何上述介质类型的组合,包括一种介质类型的多个单元。
替代地或另外,计算机可读通信介质可以包括在数据信号诸如载波或其他传输内传输的计算机可读指令、程序模块或其他数据。然而,如本文所用,计算机可读存储介质不包括计算机可读通信介质。
一个或多个节点702a至702h还可以包括一个或多个I/O装置726,诸如键盘、鼠标、笔、语音输入装置、触摸输入装置、显示器、扬声器、打印机等等。一个或多个节点702a至702h还可以包括一个或多个通信信道736。通信信道736可提供介质,一个或多个节点702a至702h的各种部件可通过其进行通信。一个或多个通信信道736可以采取总线、环、交换结构或网络的形式。
一个或多个节点702a至702h还可以包含允许一个或多个节点702a至702h与所存储的数据库、另一个计算装置或服务器、用户终端和/或一个或多个网络700上的其他装置通信的一个或多个计算装置724。图7的一个或多个计算装置724可包括参考图6的计算装置600所讨论的类似部件。
在一些实现方式中,计算装置724为外围装置,诸如基于PCI的装置。在这些实现方式中,计算装置724包括用于与主机装置通信的PCI接口。术语“PCI”或“基于PCI的”可用于描述PCI总线协议族中的任何协议,包括原始PCI标准、PCI-X、加速图形端口(AGP)和PCI-express(PCIe)或基于本文所讨论的PCI协议的任何其他改进或衍生的协议。基于PCI的协议是用于将装置诸如本地外围装置连接到主机装置的标准总线协议。标准总线协议为数据传输协议,各种制造商已经为其定义并且采用了规范。制造商确保兼容装置与实现总线协议的计算系统兼容,且反之亦然。如本文所用,基于PCI的装置还包括使用非易失性存储器快速(NVMe)通信的装置。NVMe是用于使用PCIe来访问附接到计算系统的非易失性存储介质的装置接口规范。例如,总线接口模块608可以实现NVMe,并且计算装置724可以使用PCIe接口连接到计算系统。
基于PCI的装置可以包括一个或多个功能。“功能”描述可由计算装置724提供的操作。功能的示例包括大容量存储控制器、网络控制器、显示器控制器、存储器控制器、串行总线控制器、无线控制器、以及加密和解密控制器等等。在某些情况下,基于PCI的装置可以包括一个以上的功能。例如,基于PCI的装置可以提供大容量存储控制器和网络适配器。又如,基于PCI的装置可以提供两个存储控制器,以控制两个不同的存储资源。在一些实现方式中,基于PCI的装置可以具有多达八个功能。
在一些实现方式中,计算装置724可以包括单根I/O虚拟化(SR-IOV)。SR-IOV是可包括在基于PCI的装置中的扩展能力。SR-IOV允许物理资源(例如,单个网络接口控制器)表现为多个资源(例如,64个网络接口控制器)。因此,提供特定功能的基于PCI的装置(例如,网络接口控制器)对于利用基于PCI的装置的装置而言可以表现为提供相同功能的多个装置。SR-IOV能力的存储适配器装置的功能可以被分类为物理功能(PF)或虚拟功能(VF)。物理功能是可以被发现、管理和操纵的装置的全功能。物理功能具有可用于配置或控制存储适配器装置的配置资源。物理功能包括非虚拟化装置将具有的相同的配置地址空间和存储器地址空间。物理功能可具有与之相关联的多个虚拟功能。虚拟功能类似于物理功能,但是为一般可能缺少配置资源的轻量级功能,并且一般由其底层物理功能的配置进行控制。物理功能和/或虚拟功能中的每一者可以被指派到在主机装置上运行的相应的执行线程(诸如例如,虚拟机)。
本文所述的模块可以为软件模块、硬件模块或它们的合适的组合。如果所述模块为软件模块,则这些模块可以体现在非暂时性计算机可读介质上,并且由本文所述的任何计算机系统中的处理器来处理。应当注意,所描述的过程和体系结构可在任何用户交互之前以实时或异步模式执行。模块可以按图6、图7中建议的方式配置,和/或本文所述的功能可以由作为单独模块存在的一个或多个模块提供,和/或本文所述的模块功能可以分布在多个模块上。
因此,说明书和附图被认为是说明性的而不是限制性的。然而,在不脱离如在权利要求中阐述的本公开的较宽泛的精神和范围的情况下可对其做出各种修改和改变将是明显的。
其他变化在本公开的精神之内。因此,尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其特定实施方案。然而,应当了解,并不旨在将本公开限制于所公开的一种或多种具体形式,相反地,旨在涵盖落在如所附权利要求书限定的本公开的精神和范围内的所有修改、替代构造和等效物。
在描述所公开实施方案的上下文中(尤其是在以下权利要求书的上下文中),术语“一个(a、an)”和“所述”以及类似指称对象的使用应解释为涵盖单数和复数两者,除非在本文另外地指示或明显地与上下文矛盾。除非另外指明,否则术语“包括”、“具有”、“包括”和“含有”应被解释为开放式术语(例如,意指“包括但不限于”)。术语“连接的”应解释为部分地或全部地纳入在内、附接到或结合在一起,即使存在介入物。除非本文中另有说明,否则本文中数值范围的列举仅旨在用作单独提及落入该范围内的每个单独值的速记方法,并且每个单独值并入本说明书中,如同其在本文中单独列举一样。除非本文中另外指出或与上下文明显矛盾,否则本文中所描述的所有方法都可以按任何合适的顺序进行。本文所提供的任何以及所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地说明本公开的实施方案,并且除非另外要求,否则不会对本公开的范围施加限制。说明书中的语言不应解释为指出任何未要求保护的实施本公开的必需要素。
除非另外具体说明,否则诸如短语“X、Y或Z中的至少一个”的析取语言旨在被理解为在上下文中一般用于表示项目、项等可以是X、Y或Z或它们的任何组合(例如,X、Y和/或Z)。因此,此类析取语言一般不旨在并且不应暗示某些实施方案需要X中的至少一个、Y中的至少一个或Z中的至少一个各自存在。
本文描述了本公开的各种实施方案,包括发明人已知的用于实施本公开的最佳模式。阅读上述说明后那些实施方案的变体对于本领域的普通技术人员可以变得明显。发明人希望技术人员视情况采用此类变体,并且发明人旨在以不同于如本文所特别描述的方式来实践本公开。因此,在适用法律允许的情况下,本公开包括在所附的权利要求中所叙述主题的所有修改和等同物。此外,在所有可能的变体中,上述要素的任何组合均由本公开涵盖,除非本文另外指出或与上下文明显矛盾。
Claims (15)
1.一种集成电路,其包括:
完成方装置;
请求方装置,所述请求方装置被配置为向所述完成方装置生成事务,每个事务包括请求数据包,所述请求数据包包括与所述完成方装置相关联的属性;
互连结构,所述互连结构耦合到所述请求方装置和所述完成方装置;以及
QoS调节器,所述QoS调节器被配置为:
基于与所述完成方装置相关联的第一属性来标识为由所述请求方装置生成的第一请求数据包建立第一优先级别的第一QoS值;以及
修改所述第一请求数据包以包括所述第一QoS值。
2.如权利要求1所述的集成电路,其中所述QoS调节器与所述请求方装置分开,并且定位在所述请求方装置和所述互连结构之间,以接收由所述请求方装置输出的所述第一请求数据包,并且将具有所述第一QoS值的所述第一请求数据包输出到所述互连结构。
3.如权利要求1或2所述的集成电路,其中所述QoS调节器被集成到所述请求方装置中,使得由所述请求方装置输出的所述第一请求数据包已经包括所述第一QoS值并且被发送到所述互连结构。
4.如权利要求1-3中任一项所述的集成电路,其中所述第一请求数据包还包括由所述请求方装置设置的原始QoS值,并且其中通过用所述第一QoS值替换所述原始QoS值来执行对所述第一请求数据包的修改。
5.如权利要求1-4中任一项所述的集成电路,其中所述QoS调节器还被配置为:
接收包括与所述完成方装置相关联的所述第一属性的所述第一请求数据包;
从所述第一请求数据包提取所述第一属性;以及
标识链接到所述第一属性的第一条目编号。
6.如权利要求5所述的集成电路,其中所述QoS调节器包括:
属性提取逻辑,所述属性提取逻辑耦合到所述请求方装置并且被配置为接收所述第一请求数据包并且提取所述第一属性;
可配置内容可寻址存储器(CAM)或基于寄存器的匹配逻辑,其耦合到所述属性提取逻辑并且包括链接到所述第一属性的所述第一条目编号,使得能够基于所述第一属性来标识所述第一条目编号;
QoS表,所述QoS表耦合到所述可配置CAM并且被配置为将所述第一QoS值链接到所述第一条目编号,使得能够基于所述第一条目编号来标识所述第一QoS值;以及
QoS超控逻辑,所述QoS超控逻辑耦合到所述QoS表并且被配置为修改所述第一请求数据包以包括所述第一QoS值。
7.如权利要求1-6中任一项所述的集成电路,其中所述完成方装置为第一完成方装置,并且所述QoS调节器还被配置为:
接收包括与不同于所述第一完成方装置的第二完成方装置相关联的第二属性的第二请求数据包;
从所述第二请求数据包提取所述第二属性;
基于所述第二属性标识第二QoS值,所述第二QoS值基于与所述第二完成方装置相关联的所述第二属性为所述第二请求数据包建立第二优先级别;以及
修改所述第二请求数据包以包括所述第二QoS值,使得所述互连结构根据所述第二优先级别传输所述第二请求数据包。
8.如权利要求1-7中任一项所述的集成电路,其中所述QoS超控逻辑耦合到所述请求方装置和所述QoS表以接收所述第一请求数据包和新的QoS值以修改所述第一请求数据包。
9.如权利要求1-8中任一项所述的集成电路,其中所述QoS调节器还被配置为基于除所述第一属性之外的与所述完成方装置相关联的第二属性来标识所述第一QoS值。
10.如权利要求1-9中任一项所述的集成电路,其中所述互连结构还包括以顺序次序服务于请求的一致性点队列(POCQ),每个高速缓存存储器为分布式共享高速缓存的一部分。
11.一种方法,其包括
由集成电路的QoS调节器接收包括与第一完成方装置相关联的第一属性的第一请求数据包;
从所述第一请求数据包提取所述第一属性;
基于所述第一属性标识第一QoS值,所述第一QoS值基于与所述第一完成方装置相关联的所述第一属性为所述第一请求数据包建立第一优先级别;
修改所述第一请求数据包以包括所述第一QoS值;以及
将包括所述第一QoS值的所述第一请求数据包输出到互连结构,使得所述互连结构根据所述第一优先级别传输所述第一请求数据包。
12.如权利要求11所述的方法,其中修改所述第一请求数据包以包括所述第一QoS值包括将所述第一QoS值插入到所述第一请求数据包中。
13.如权利要求11和12中任一项所述的方法,其中所述第一请求数据包还包括由请求方装置设置的原始QoS值,并且通过用所述第一QoS值替换所述原始QoS值来执行对所述第一请求数据包的修改。
14.如权利要求11-13中任一项所述的方法,其中从所述第一请求数据包中提取所述第一属性包括提取与所述第一完成方装置相关联的页面属性或存储器地址。
15.如权利要求11-14中任一项所述的方法,其还包括:
由所述集成电路的所述QoS调节器接收包括与第二完成方装置相关联的第二属性的第二请求数据包;
从所述第二请求数据包提取所述第二属性;
基于所述第二属性标识第二QoS值,所述第二QoS值基于与所述第二完成方装置相关联的所述第二属性为所述第二请求数据包建立第二优先级别;
修改所述第二请求数据包以包括所述第二QoS值;以及
向所述互连结构输出包括所述第二QoS值的所述第二请求数据包,使得所述互连结构根据所述第二优先级别传输所述第二请求数据包。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/450,837 | 2019-06-24 | ||
US16/450,837 US11343176B2 (en) | 2019-06-24 | 2019-06-24 | Interconnect address based QoS regulation |
PCT/US2020/038221 WO2020263658A1 (en) | 2019-06-24 | 2020-06-17 | Interconnect address based qos regulation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114072779A true CN114072779A (zh) | 2022-02-18 |
CN114072779B CN114072779B (zh) | 2024-04-09 |
Family
ID=71465461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080045259.1A Active CN114072779B (zh) | 2019-06-24 | 2020-06-17 | 用于基于互连地址的QoS规则的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11343176B2 (zh) |
CN (1) | CN114072779B (zh) |
DE (1) | DE112020003022T5 (zh) |
WO (1) | WO2020263658A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045438A1 (zh) * | 2022-08-31 | 2024-03-07 | 苏州元脑智能科技有限公司 | 一种基于总线的事务处理方法、系统、存储介质及设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114238156A (zh) * | 2021-11-08 | 2022-03-25 | 阿里巴巴达摩院(杭州)科技有限公司 | 处理系统以及操作处理系统的方法 |
US20230205420A1 (en) * | 2021-12-29 | 2023-06-29 | Advanced Micro Devices, Inc. | Flexible memory system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020143981A1 (en) * | 2001-04-03 | 2002-10-03 | International Business Machines Corporation | Quality of service improvements for network transactions |
US20120159088A1 (en) * | 2010-12-17 | 2012-06-21 | Deniz Balkan | Processing Quality-of-Service (QoS) Information of Memory Transactions |
CN104620664A (zh) * | 2012-07-02 | 2015-05-13 | 阿尔卡特朗讯 | 利用包括在上行链路数据分组中的隧道标识符和基站标识符的承载激活 |
CN107070689A (zh) * | 2015-12-30 | 2017-08-18 | 丛林网络公司 | 减少使用网络保活消息时的错误警告 |
US9819610B1 (en) * | 2014-08-21 | 2017-11-14 | Amazon Technologies, Inc. | Routers with personalized quality of service |
US20180285294A1 (en) * | 2017-04-01 | 2018-10-04 | Anjaneya R. Chagam Reddy | Quality of service based handling of input/output requests method and apparatus |
CN109690500A (zh) * | 2016-09-22 | 2019-04-26 | 高通股份有限公司 | 使用在以处理器为基础的系统中的空间服务质量(QoS)标记提供异质存储器系统的弹性管理 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8490107B2 (en) * | 2011-08-08 | 2013-07-16 | Arm Limited | Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels |
US20140376555A1 (en) * | 2013-06-24 | 2014-12-25 | Electronics And Telecommunications Research Institute | Network function virtualization method and apparatus using the same |
US10481944B2 (en) | 2017-08-09 | 2019-11-19 | Xilinx, Inc. | Adaptive quality of service control circuit |
-
2019
- 2019-06-24 US US16/450,837 patent/US11343176B2/en active Active
-
2020
- 2020-06-17 DE DE112020003022.9T patent/DE112020003022T5/de active Pending
- 2020-06-17 WO PCT/US2020/038221 patent/WO2020263658A1/en active Application Filing
- 2020-06-17 CN CN202080045259.1A patent/CN114072779B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020143981A1 (en) * | 2001-04-03 | 2002-10-03 | International Business Machines Corporation | Quality of service improvements for network transactions |
US20120159088A1 (en) * | 2010-12-17 | 2012-06-21 | Deniz Balkan | Processing Quality-of-Service (QoS) Information of Memory Transactions |
CN104620664A (zh) * | 2012-07-02 | 2015-05-13 | 阿尔卡特朗讯 | 利用包括在上行链路数据分组中的隧道标识符和基站标识符的承载激活 |
US9819610B1 (en) * | 2014-08-21 | 2017-11-14 | Amazon Technologies, Inc. | Routers with personalized quality of service |
CN107070689A (zh) * | 2015-12-30 | 2017-08-18 | 丛林网络公司 | 减少使用网络保活消息时的错误警告 |
CN109690500A (zh) * | 2016-09-22 | 2019-04-26 | 高通股份有限公司 | 使用在以处理器为基础的系统中的空间服务质量(QoS)标记提供异质存储器系统的弹性管理 |
US20180285294A1 (en) * | 2017-04-01 | 2018-10-04 | Anjaneya R. Chagam Reddy | Quality of service based handling of input/output requests method and apparatus |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045438A1 (zh) * | 2022-08-31 | 2024-03-07 | 苏州元脑智能科技有限公司 | 一种基于总线的事务处理方法、系统、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020263658A1 (en) | 2020-12-30 |
CN114072779B (zh) | 2024-04-09 |
US20200403909A1 (en) | 2020-12-24 |
US11343176B2 (en) | 2022-05-24 |
DE112020003022T5 (de) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3748510A1 (en) | Network interface for data transport in heterogeneous computing environments | |
US10649924B2 (en) | Network overlay systems and methods using offload processors | |
EP3706394B1 (en) | Writes to multiple memory destinations | |
US9916269B1 (en) | Packet queueing for network device | |
US10911358B1 (en) | Packet processing cache | |
US10268612B1 (en) | Hardware controller supporting memory page migration | |
US9286472B2 (en) | Efficient packet handling, redirection, and inspection using offload processors | |
CN114072779B (zh) | 用于基于互连地址的QoS规则的方法和装置 | |
US10725957B1 (en) | Uniform memory access architecture | |
US10754797B1 (en) | Consolidating write transactions for a network device | |
US11086801B1 (en) | Dynamic resource management of network device | |
US10261935B1 (en) | Monitoring excessive use of a peripheral device | |
US10140227B1 (en) | Reducing read transactions to peripheral devices | |
US20220385534A1 (en) | Control plane isolation | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
EP4374254A1 (en) | Communications for workloads | |
US11467998B1 (en) | Low-latency packet processing for network device | |
US11003618B1 (en) | Out-of-band interconnect control and isolation | |
US10877911B1 (en) | Pattern generation using a direct memory access engine | |
US20220276809A1 (en) | Interface between control planes | |
US10402329B1 (en) | Reducing traffic in hierarchical cache interconnects | |
US12026103B1 (en) | Dynamic resource management of network device | |
US11513986B1 (en) | DMA engine that generates an address-less memory descriptor that does not include a memory address for communicating with integrated circuit device | |
US11899969B1 (en) | Re-order buffer for in-order execution of dependent write transactions | |
EP4187868A1 (en) | Load balancing and networking policy performance by a packet processing pipeline |
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 |