CN107957965B - 服务质量序数修改 - Google Patents
服务质量序数修改 Download PDFInfo
- Publication number
- CN107957965B CN107957965B CN201710970703.0A CN201710970703A CN107957965B CN 107957965 B CN107957965 B CN 107957965B CN 201710970703 A CN201710970703 A CN 201710970703A CN 107957965 B CN107957965 B CN 107957965B
- Authority
- CN
- China
- Prior art keywords
- ordinal
- qos
- master
- qos profile
- profile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- 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
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on 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/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/36—Arbitration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
本公开涉及服务质量序数修改。在例子中,公开计算设备,具有:具有第一序数服务质量(QoS)概况的第一主设备;具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;从设备;多路复用的互连,根据序数QoS概况将所述第一主设备和所述第二主设备通信地耦合优先级从设备;和一个或多个逻辑元件,包括至少一个硬件逻辑元件,提供QoS引擎以:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序高于所述第二序数QoS概况的第三序数QoS概况。
Description
技术领域
本公开通常涉及计算领域,更特别地尽管不排除涉及用于服务质量序数修改的***和方法。
背景技术
计算***如片上***(SoC)可以具有需要访问诸如L2存储器(或诸如L2和L3存储器的多个资源)的***资源的多个主设备。诸如片上网络(NOC)的互连可以将主设备耦合到资源。每个主设备可以被分配优先级,其控制对NOC和资源的访问的优先级。
发明内容
根据本发明的一个方面,提供有计算设备,包括:具有第一序数服务质量(QoS)概况的第一主设备;具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;从设备;多路复用的互连,根据序数QoS概况将所述第一主设备和所述第二主设备通信地耦合优先级从设备;和QoS引擎以:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序比所述第二序数QoS概况高的第三序数QoS概况。
根据本发明的一个方面,提供有片上***(SoC),包括:具有第一序数服务质量(QoS)概况的第一主设备;具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;从设备;片上网络(NOC),通信地耦合第一主设备和第二主设备、包括NOC控制器的NOC以根据序数QoS概况提供访问优先级;和片上QoS引擎以:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序高于所述第二序数QoS概况的第三序数QoS概况。
根据本发明的一个方面,提供有一种为计算***提供服务质量(QoS)序列高程的方法,所述计算***具有:具有第一序数QoS概况的第一主设备;具有第二序数QoS概况的第二主设备;和多路复用的互连,根据序数QoS概况将所述第一主设备和所述第二主设备通信地耦合优先级从设备资源,该方法包括:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序高于所述第二序数QoS概况的第三序数QoS概况。
附图说明
当与附图一起阅读时,从下面的详细描述中可以最好地理解本公开。要强调的是,按照行业的标准做法,各种特征不一定按比例绘制,仅用于说明的目的。在明确或隐含地显示比例尺的情况下,它只提供了一个说明性的例子。在其他实施例中,为了讨论的清楚,可以任意地增加或减少各种特征的尺寸。
图1是根据本发明的一个或多个实例的数字信号处理器的框图。
图2是根据本发明的一个或多个实例片上***的框图。
图3是根据本发明的一个或多个实例多个SoC的选择元件的框图。
图4是根据本发明的一个或多个实例多个SoC的选择元件的框图。
图5是根据本发明的一个或多个实例多个SoC的选择元件的框图。
图6是根据本发明的一个或多个实例的方法的流程图。
具体实施方式
在例子中,公开计算设备,具有:具有第一序数服务质量(QoS)概况的第一主设备;具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;从设备;多路复用的互连,根据序数QoS概况将所述第一主设备和所述第二主设备通信地耦合优先级从设备;和一个或多个逻辑元件,包括至少一个硬件逻辑元件,提供QoS引擎以:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序比所述第二序数QoS概况高的第三序数QoS概况。
下面的公开提供了用于实现本公开的不同特征的许多不同的实施例或示例。以下描述组件和布置的具体示例以简化本公开。这些仅仅是示例,而不是限制性的。此外,本公开可以重复各种示例中的附图标记和/或字母。该重复是为了简单和清楚的目的,本身并不规定所讨论的各种实施例和/或配置之间的关系。不同的实施例可以具有不同的优点,并且对于任何实施例不一定需要特别的优点。
在示范性嵌入片上***(SoC)中,***中有许多主设备,包括例如一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPUs)、直接存储器访问(DMA)以及诸如高速串行端口、以太网、USB、传感器和机电接口等***设备的非限制性示例。这些主设备可以通过互联网络(如片上网络(NOC))与盘和存储器进行通信。
作为设计考虑,主设备具有不同的服务质量(QoS)需求,如延迟和带宽要求。NOC可以提供许多不同的事务属性来解决这些QoS需求。例如,属性可以包括优先级分配、未完成的事务调节、带宽调节、最大延迟、优先级、未完成的交易值或其他因素。每个主设备可能具有分配的QoS概况,这是其事务需求和优先级的综合。各种主设备的QoS概况是序数,在每个事务中,NOC控制器必须决定哪个主设备获得当前访问NOC的优先权。
在传统的优先方案中,每个主设备被分配一个单数序数优先级。例如,CPU优先级为0、DSP为优先级1、GPU为优先级2,依此类推。较高优先级的主设备总是胜过较低优先级的主设备。虽然这样的方案与本说明书的教导完全兼容,但它们不是限制性的。也可能引入其他因素来增加“公平性”和效率,或限制带宽饥饿主设备对***的影响。例如,主设备可能具有最小的等待时间要求,这可以防止更高优先级的主设备垄断互连。如果较低优先级的主设备已经等待了足够长的访问时间,则它可能暂时占用较高优先级的主设备并获得对互连的访问权限。许多其他因素可能影响优先级排队事务仲裁、排序或流量控制。因此,当该规范说明序列QoS概况时,序数方面可能不是始终遵循的简单排名。相反,主设备的序数优先级可能随着时间而上下文地改变。如本说明书中所使用的,术语“序数QoS概况”应被广泛地理解为包括任何优先级,排队或决策结构,使得控制器能够做出关于哪个主设备授予对有限资源的访问的决定。“序数”方面(或换句话说,概况的“顺序”)可以包括静态序数优先级或动态的、上下文的或瞬时的序数优先级,适合于特定实施例。
在这种情况下,还应当理解,“升级”或“促进”序数QoS概况不限于仅改变单个优先级数。相反,这可以包括将主设备的请求在队列中进一步向前移动的任何动作,或者以其他方式确保或增加它将比没有提升或升级时更快处理的可能性。另请注意,在一些情况中,提升或促销一个主设备可以通过降低或降级不同的主设备来实现。
QoS概述的设计和实现可能会对***级的性能产生重大影响。例如,在一些现有的***中,QoS概述的控制驻留在NOC中,并给予某些主设备在初始化或应用程序运行时间内编程的能力。
然而,在先验或运行时间,确定复杂互连网络的QoS概况的最佳或甚至可接受的集合有挑战。***还可以提供一种基于***的行为在运行时自动修改QoS概况的机制。
考虑,例如,SoC,其中一个或多个主设备是DSP内核,一个或多个主设备是DMA。SoC还包括具有多个级别的NOC和存储器层次结构,例如L1和L2。考虑一个应用场景,其中DSP内核正在处理由DMA从L2和L3存储器传送到核心L1存储器的数据。
运行在核心上的应用软件尝试最小化或消除核心等待DMA数据传输的时间,但由于***流量的动态性质,该软件受到DMA传输的非确定性行为的限制。因此,有时可能核心正在等待DMA传输完成,但是由于其他***流量,它仍然被保持。
不同的主设备可能具有不同的延迟要求。例如,在延迟敏感的主设备中,主设备的性能直接受到内存延迟的影响-内存延迟越长,性能越低。在延迟关键的主设备中,可以为每个单独的交易指定特定的最大可接受延迟,如果没有实现延迟,则会导致灾难性故障(例如,视频流的分解或音频中的点击/弹出/暂停)。但只要满足最低要求,进一步降低延迟可能无法提高改进性能。带宽猪主设备是具有高带宽要求和流量控制的节点,意味着增加的等待时间响应不会导致严重故障。
这是一种延迟敏感主设备(例如DSP内核)正在等待完成不同主设备的非确定性操作(例如DMA)的情况。通过具体说明,第一主设备(这里是DMA)具有第一序数QoS概况。第二主设备(这里是DSP内核)具有第二序数QoS概况。第二序数QoS概况比第二序数QoS概况高序(或相反地,较低的整数值),例如DSP的序数优先级为1,而DMA的序数优先级为3。同时,GPU可能具有第三序数QoS概况,在这种情况下,序数优先级为2。
结果是序列优先级为1的DSP必须等待GPU的序数优先级为2,因为DSP需要来自DMA的序列数优先级为3的数据。
在这种情况下,DMA将“继承”DSP的较高优先级将是有用的。例如,DMA可以接收优先级为2的序数QoS概况。在某些实施例中,这将足以确保优先于GPU,因为DMA的请求可能较旧,并且同一顺序的主设备之间的种族条件得到最大限度的解决。有利地,这也将确保DMA不干扰DSP本身可能需要在此期间执行的任何操作。
可选择地,可能需要要求DMA超过GPU获得绝对优先级,而不管请求年龄。在这种情况下,DMA可以接收1或0的序数优先级,从而确保优先于DMA或甚至DSP上的优先级。
请注意,非负整数优先级标记是QoS概况中许多可能字段中只有一个可以被修改以确保请求从高阶主设备获得“继承”优先级的示例。可以修改QoS概况中的任何其他字段来实现所需的优先级。例如,主设备请求的最大队列大小可以向下调整,甚至为零,以确保立即处理其下一个未决请求。该主设备的最大允许延迟时间也可以向下调整至低至零,以确保实现优先级。在另一个例子中,可以使用标志,例如“ABSOLUTE_PRIORITY”。当这个标志被设置时,主设备总是接受相同次序的主设备的优先级,而不管其他QoS概况因素(概念上,这有点像主设备比所有优先级1主设备的优先级低1.5,但高于所有优先级2主设备)。因此,可以使用优先级0与ABSOLUTE_PRIORITY标志的组合来强制互连在下一个可用周期上服务该主设备。许多其他QoS因素可以被调整,并且意图落在本公开的范围内。
在一般情况下,***可以被称为包括可以具有若干逻辑功能的QoS引擎,包括通过非限制性示例的方式:
a.一个或多个主设备的能力自动检测将受益于对QoS概况方案的调整的条件,包括序数优先级提升,包括通知其他主设备需要这样做的可选能力。例如,第一低优先级主设备(例如DMA)可以向第二较高优先级主设备发信号,其需要提升的优先级以满足QoS参数;
b.自动识别第二主设备(例如DSP)和第一主设备(例如DMA)之间的依赖关系的能力,并确定高级主设备被迫在较低级主设备上等待,或者低级主设备适用于继承高级主设备的优先级;和
c.将第一主设备提升到更高的序数优先级的能力。
QoS引擎可以部分地实现在主设备之一中,例如具有足够的***特权以覆盖优先级的主设备(例如CPU或DSP),并且可以由编码为微码指令的逻辑、ROM中的指令、专用硬件编码,或者编码在一些其他非暂时的计算机可读存储介质中。在其他实施例中,QoS引擎可以是单独的硬件块,其监视主设备并根据需要执行序数优先级提升。在这种情况下,QoS硬件引擎可能被设计为具有实现序数特权提升所必需的所有权限。
有利地,某些实施例可任选地实现序数优先级提升而不对NOC本身进行任何改变。这在实施例中可能是重要的,其中NOC被单独提供为“IP块”。在半导体设计中,第三方可以将IP块提供为黑盒子,并且***设计人员可能对其位置和路由之外的块进行很少的控制。因此,在使用黑盒NOC的实施例中,仍然可以实现序数优先级调整。
可以使用许多不同的机制来调整序数优先级。例如,序数优先级可以由专用寄存器或缓冲器来控制或调整。在这种情况下,原始QoS概况存储在缓冲区或寄存器中。当需要序数优先级提升时,可能暂时改变受影响主设备的QoS概况。在另一实施方案中,可以提供可以包括一条或多条线的带外(OOB)信令总线,以表示对QoS概况的序数优先级提升或其他改变的需要。在又一例子中,可以向NOC发送带内调整信号。在又一例子中,可能会触发中断以通知NOC需要更改QoS概要。在又一例子中,主设备可能有权改变自己的QoS概况。QoS概述更改也可能仅适用于所讨论的主设备,***中的其他主设备或NOC本身。在另一个实施例中,QoS概况可以包括可由应用软件设置的一个或多个可编程值。在一些实施方案中,在下一次传输开始之前,QoS概况可能会重置为其默认值。为了进一步扩展信令机制,可以有许多不同的方式将修改信号发送到事务属性。在另一个例子中,第一主设备向触发单元发送一个信号,该触发单元触发修改到第二主设备中的一个或多个QoS概况寄存器。新的QoS概况可以驻留在第二主设备本身(作为一组寄存器)中,或者可以是为给定数据传输加载的存储器描述符的一部分,以向用户提供更大的应用程序控制。
QoS引擎的另一方面是确定何时提供序数优先级提升的逻辑。这可以包括,例如,显式逻辑其中DSP,例如,可以在退出将导致DMA操作的指令时明确地提升DMA的序数优先级,其中定时是敏感的,并且将取决于DMA访问NOC。在另一示例中,QoS引擎可以包括独立地监视所有主设备的启发式引擎。QoS引擎可以确定DSP已经发出依赖于DMA的指令,并且指令的完成在可能是DSP的QoS概况的等待时间阈值内不能被满足的危险。在这种情况下,在等待足够的时间(例如3/4最大延迟时间)之后,QoS引擎可以立即提升DMA的序数优先级,可选地提升到最大值或其他最优值,以确保在等待时间阈值内满足DSP请求。后一种方法的优点在于,可以将对QoS方案的调整最小化,并且仅当时序关键功能处于不被满足的危险时才进行。在一些实施方案中,用户或程序员可以对该方案具有应用级的可见性,使得程序员能够将某些操作标记为时序关键,并且可选地明确地设置这些操作的等待时间阈值,甚至甚至明确提升了与特定命令相关的DMA的序数优先级。
现在将更具体地参考附图来描述用于序数QoS升高的***和方法。应当注意,在整个附图中,可以重复某些附图标记以指示特定的设备或块在整个图中完全或基本一致。然而,这并不意味着暗示所公开的各种实施例之间的任何特定的关系。在某些示例中,元素属可以由特定参考数字(“小部件10”)引用,而个体物种或属的实例可以用连字符号表示(“第一特定小部件10-1”和“第二具体小部件10-2”)。
图1是数字信号处理器(DSP)核心100的示意框图根据本发明的一个或多个实例。应当注意,DSP核100被提供为一种类型的处理器的一个非限制性示例,并且在本说明书中使用的术语“处理器”旨在广泛地包括提供可编程逻辑的硬件、软件或固件的任何组合,包括非限制性示例的微处理器、数字信号处理器、现场可编程门阵列、可编程逻辑阵列、专用集成电路或虚拟机处理器。DSP核心100可以形成更大的“计算设备”的一部分,其在各种实施例中可以通过非限制性示例包括计算机、嵌入式计算机、嵌入式控制器、嵌入式传感器、个人数字助理(PDA)、膝上型计算机、蜂窝电话、IP电话、智能电话、平板电脑、手持式计算器或用于处理和传送数据的任何其他电子、微电子或微机电装置。为了清楚起见,图1已被简化,并且更好地理解本公开的新概念。因此,可以在DSP核心100中添加附加特征,并且可以在DSP核心100的其它实施例中替换或消除下面描述的一些特征。
DSP核心100可以包括控制单元110、存储器120和计算阵列130。在例子中,控制单元110和计算阵列130构成可以执行DSP内核100的计算和数据处理功能的核心处理器。一些实施例DSP内核100包括其他组件,例如用于执行微控制器指令的微控制器、直接存储器访问(DMA)单元,以及到片外设备的各种接口。此外,尽管存储器120在这里被示为单个逻辑块,但是应当认识到,存储器120可以包括***主存储器、片上或本地存储器、高速缓存和/或其他易失性或非易失性存储器技术的各种级别。
控制单元110有助于DSP内核100的程序执行。控制单元110可以包括算术逻辑单元和数据地址生成(ALU-DAG)单元112、程序定序器114和本地程序存储器116。控制单元110还可以包括其他组件,如指令高速缓存、定时器和指令寄存器。在例子中,ALU-DAG单元112支持通用整数计算并提供存储器地址。例如,ALU-DAG单元112在存储器120和寄存器(例如下面描述的计算阵列130的寄存器文件)之间传送数据时提供存储器地址。ALU-DAG单元112可以向数据存储器(例如,存储器120)和/或程序存储器116提供地址。程序定序器114向程序存储器116提供用于指令读取的指令地址。程序存储器116存储DSP核100实现的处理数据(诸如存储在存储器120中的数据)的程序,并且还可以存储处理数据。贯穿本说明书使用的“程序”包括可操作以指示处理器(例如DSP内核100)执行指定任务的任何有序的可执行指令集。DSP核心100可以通过取出指令来实现程序,例如通过从存储器120检索它们并将它们加载到程序定序器114中,对指令进行解码,以及将解码的指令提供给处理元件PE执行,或者在ALU-DAG单元112。在例子中,程序可以包括用于实现各种DSP算法的指令集,包括可以通过在两个或多个处理元件PE上执行它们或者在单指令多数据(SIMD)中并行执行的算法、模式,其中两个或多个处理元件对从不同数据元素执行与程序定序器114相同的指令。通常使用SIMD,例如,通过将阵列分成n个子阵列,然后允许n处理元件分别处理一个子阵列,从而快速处理大数据阵列。
存储器120存储要由DSP内核100(数据存储器)处理的数据,由DSP核100执行的处理数据(程序存储器)的程序或其组合。在一些例子中,存储器120可以具有多存储交错存储器结构,使得存储器120包括存储器组M1-Mn,其中n是存储器的存储器组的总数。在例子中,存储器120是随机的,诸如静态随机存取存储器(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、闪速存储器或其他合适的存储器技术的访问存储器。在例子中,一个或多个存储体M是单独的RAM。可选择地,存储器120可以表示多层存储器结构,包括例如快速L1存储器、中间L2存储器和慢主存储器。其中每个存储器的大小和成本可以与存储器的访问速度成反比变化。在又一例子中,存储器120可以包括高速缓存或任何其他合适类型的存储器。在一些情况中,还可以提供直接存储器访问(DMA)控制器以使得能够从DSP内核100到存储器120的DMA操作。
作为示例,示出了三个总线170。如本说明书所使用的,“总线”包括可操作以在计算机设备的各部分之间传送数据的任何互连线、网络、连接、捆、单总线、多总线、交叉网络、单级网络、多级网络或可操作的其它传导介质,或计算设备之间。在必要或适当的情况下,总线170还可以包括适当的控制器,诸如存储器管理单元(MMU)或类似的控制器。在该示例中,提供主***总线170-1以将DSP核100通信地耦合到其他***组件,如图2中更详细的示例所讨论的。计算总线170-2将计算阵列130通信耦合到控制单元110。存储器总线170-3将处理元件PE通信地耦合到存储器120。应当注意,这些用途仅通过非限制性示例来公开,并且一些实施例可以省略前述总线中的一个或多个,而其他人可以使用额外的或不同的总线。
控制单元110可以经由计算总线170-2发出指令和数据地址以计算阵列130。计算总线170-2将用于指令和数据的地址传送到计算阵列130的各个处理元件PE。存储器总线170-3可以从存储器传送数据和/或指令(诸如存储器120、程序存储器116、其它存储器或其它存储器或其组合),使得DSP核心100中的任何寄存器的内容可以被传送到任何其他寄存器或任何存储器位置,并且存储器120可以提供计算阵列130的数据操作数(值)。
在所示的示例中,计算阵列130包括四个处理元件PE1-PE4。在其他实施例中,计算阵列130可以包括零个或更多个离散处理元件。处理元件PE执行数字处理,并且在一个示例中可以包括用于执行诸如DSP算法的特定类型的计算的专用硬件。处理元件PE可以独立地、并行地或作为SIMD引擎来操作。在本发明例子中,每个处理元件PE可以是向量处理器。可选择地,处理元件PE可以是标量处理器,或标量处理器和向量处理器的组合。
处理元件PE各自包括相应的计算单元(CU)152。在所描绘的实施例中,计算单元152可以是相同的,尽管本公开考虑了计算单元152不相同的实施例。本发明还考虑了一个或多个处理元件PE不包括计算单元152的配置。在本发明例子中,计算单元152各自包括算术逻辑单元(ALU)、乘法器累加器(MAC)、移位器、其他计算单元、或其组合。ALU可以执行算术和逻辑运算,例如加、减、否定、增加、递减、绝对值、AND、OR、EXCLUSIVE OR、NOT、划分原语、其他算术运算、其他逻辑运算或其组合。示例MAC可以执行乘法运算,以及乘法和累加运算,例如单周期乘法、乘法/加法、乘法/减法、其他运算或其组合。移位器可以执行逻辑和算术移位、位操作、归一化、非归一化、导出指数运算、其他操作或其组合。可以对定点和浮点格式执行各种算术运算、逻辑运算和其他操作。在各种实施例中,ALU、MAC和/或移位器包括与其相关联的寄存器。
处理元件PE也可以各自包括相应的寄存器文件154。在所描绘的实施例中,寄存器文件154可以是相同的,尽管本公开涉及寄存器文件154不相同的实施例。本公开进一步考虑了其中一个或多个处理元件PE不包括寄存器文件154的配置。寄存器文件154包括在处理元件PE和存储器总线170-3之间传送数据并存储结果的寄存器。在本发明例子中,寄存器文件154可以包括相应的通用寄存器组155,其包括具有取决于DSP核100的设计要求的宽度的通用寄存器、诸如32位通用寄存器、40位通用寄存器、64位通用寄存器、128位通用寄存器、其他宽度通用寄存器或其组合。为了进行以下讨论,通用寄存器155包括32位通用寄存器。
在本发明例子中,寄存器文件154还可以包括专用寄存器158。特别地,可以提供QoS概况寄存器。注意,专用寄存器158可以是专用于特殊目的的通用寄存器,因此不需要包括特殊的硬件。相反,它们的“特殊目的”是根据其作用来定义的,即它们在根据本文公开的方法提供QoS序数高程中的作用。
在一个例子中,专用寄存器158被指定为QoS概况寄存器。高优先级主设备(例如图3的处理器或DSP)可以写入特殊目的寄存器158,其值指示例如哪个主设备被分配了临时提升的QoS概况,以及代表临时提升的QoS概况的值。请注意,QoS概况可能是,在一个例子中,一个简单的序数整数0...n,其中较低编号的值具有较高的优先级。然而,这应该被视为一个非限制性的例子。实际上,QoS概况可以是多维概况,其中有许多不同的因素会影响排序,例如NOC拥塞、当前未决请求的等待时间、最大允许延迟、或者可能启用选择器的任何其他因素(例如图3的选择器304)以在多主设备之间选择。因此,本说明书中讨论的序数高程应理解为包括任何模式,其中不同的主设备接收序数优先级,包括优先级为上下文或其他变量的模式。
DSP内核100可以执行各种并行操作。例如,在单个周期中,处理元件PE可以访问指令(经由互连网络142)并且从存储器(经由存储器总线170-3)访问用于同步处理的数据N操作数。在SIMD模式中,DSP核100可以并行处理多个数据流。例如,在SIMD模式中,单个周期的DSP核100可以经由计算总线170-2向每个或多个处理元件PE发送单个指令;经由存储器总线170-3从存储器(存储器120、程序存储器116、其他存储器或其组合)加载N个数据组,每个处理元件PE的一个数据集(每个数据集可以包括两个数据操作数);在处理元件PE中同步执行单个指令;并将来自同步执行的数据结果存储在存储器120中。
图2是片上***的框图。根据本发明的一个或多个实例。请注意,片上***(SoC)200仅通过说明性示例提供。在一般情况下,SoC 200可以是任何合适的计算设备。在各种实施例中,“计算设备”可以是非限制性示例,计算机、工作站、服务器、大型机、虚拟机(无论是仿真的还是在“裸机”管理程序上)、嵌入式计算机、嵌入式控制器、嵌入式传感器、个人数字助理、笔记本电脑、蜂窝电话、IP电话、智能手机、平板电脑、可转换平板电脑、计算机、网络设备、接收器、可佩戴计算机、手持式计算器或任何其他电子、微电子、或用于处理和传送数据的微机电装置。
SoC 200包括通过DMA控制器222连接到存储器120的处理器210。SoC 200的其他组件包括DSP核100、图形处理单元(GPU)140、存储器250和网络接口260。该架构仅作为示例提供,并且旨在是非排他性和非限制性的。此外,所公开的各种部件仅用于逻辑划分,并且不一定代表物理上分离的硬件和/或软件组件。例如,某些计算设备在单个物理存储器设备中提供主存储器220和存储器250,并且在其他情况下,存储器220和/或存储器250功能地分布在许多物理设备上。在虚拟机或虚拟机管理程序的情况下,可以通过在虚拟化层上运行的软件或固件的形式提供功能的全部或部分以提供所公开的逻辑功能。在其他示例中,诸如网络接口260的设备可以仅提供执行其逻辑操作所需的最小硬件接口,并且可以依赖于软件驱动器来提供附加的必要逻辑。因此,本文公开的每个逻辑块广泛地旨在包括一个或多个逻辑元件,其被配置和可操作用于提供该块的公开的逻辑操作。如本说明书所使用的,“逻辑元件”可以包括硬件、外部硬件(数字、模拟或混合信号)、软件、往复式软件、服务、驱动程序、接口、组件、模块、算法、传感器、组件、固件、微代码、可编程逻辑或可以协调以实现逻辑操作的对象。
在例子中,处理器210通过DMA控制器222可通信地耦合到存储器220,尽管许多其他存储器架构是可能的,包括存储器220经由***总线或其它总线与处理器210通信的结构。处理器210可以经由互连270通信地耦合到其他设备,其可以是例如片上网络(NOC)或任何其它合适的总线。如本说明书中所使用的那样,“总线”包括有线或无线互连线、网络、连接、捆绑、单总线、多总线、交叉网络、单级网络、多级网络或可操作以承载数据、信号的其他传导介质、或计算设备的部件之间或计算设备之间的功率。应当注意,这些用途仅通过非限制性示例来公开,并且一些实施例可以省略前述总线中的一个或多个,而其他实施例可以使用附加或不同的总线。
互连270可以由NOC控制器272控制,NOC控制器272可以根据该优先级向各种主设备和路由数据分配序数优先级。
在各种示例中,“处理器”可以包括可操作以执行指令的任何组合,无论是从存储器加载还是直接在硬件中实现,包括作为非限制性示例的微处理器、数字信号处理器、可编程门阵列、图形处理单元、可编程逻辑阵列、专用集成电路或虚拟机处理器。在某些架构中,可以提供多核处理器,在这种情况下,处理器210可以被视为只有多核处理器的一个核心,或者可以被视为整个多核处理器。在一些实施方案中,还可以提供一个或多个协处理器用于专门或支持功能。类似地,DSP核100可以是具有SIMD能力的单核,也可以是具有SIMD能力的多个核。
处理器210可以经由DMA控制器222连接到DMA配置中的存储器220。为了简化本公开,将存储器220公开为单个逻辑块,但是在物理实施例中可以包括任何合适的易失性或非易失性存储器技术或技术的一个或多个块,包括例如DDR RAM、SRAM、DRAM、高速缓存、L1或L2存储器、片上存储器、寄存器、闪存、ROM、光学介质、虚拟存储器区域、磁性或磁带存储器等。在某些实施例中,存储器220可以包括相对低延迟的易失性主存储器,而存储器250可以包括相对较高延迟的非易失性存储器。然而,存储器220和存储器250不需要是物理上分离的设备,并且在一些示例中可以简单地表示功能的逻辑分离。还应该注意的是,尽管通过非限制性示例公开了DMA,但DMA不是与本说明书一致的唯一协议,并且其他存储器架构是可用的。类似地,L2存储器320作为示例被示出为单独的逻辑块。这是为了说明本说明书的某些特征,包括NOC控制器272在根据序列QoS方案示出的各种主设备之间经纪访问L2存储器320的特征。然而,在一般情况下,NOC控制器272可以代理对包括任何可寻址设备或缓冲器在内的各主设备之间共享的任何从设备资源的访问。
存储器250可以是存储器220的任何种类,或者可以是单独的设备。存储器250可以包括一个或多个非暂时的计算机可读介质,包括非限制性示例,硬盘驱动器、固态驱动器、外部存储器、独立磁盘冗余阵列(RAI D)、网络连接存储器、光存储、磁带驱动器、备份***、云存储或上述的任何组合。存储250可以是或可以包括在其中存储的数据库或数据库或数据,并且可以包括操作软件的存储副本,例如操作***222和QoS引擎502的软件部分。许多其他配置也是可能的,并且旨在被涵盖在本说明书的广泛范围内。
可以提供网络接口260以将SoC200通信地耦合到有线或无线网络。在整个说明书中使用的“网络”可以包括可操作以在计算设备内部或之间交换数据或信息的任何通信平台,包括作为非限制性示例,一种特殊的本地网络、一种为计算设备提供电子交互功能的互联网架构、一种普通的老式电话***(POTS)、这些计算设备可以用来执行他们可能由人类操作者辅助的交易、可以将数据手动地键入电话或其他合适的电子设备、提供***中的任何两个节点之间的通信接口或交换的任何分组数据网络(PDN)、或任何局域网(LAN)、城域网(MAN)、广域网(WAN)、无线局域网(WLAN)、虚拟专用网(VPN)、内联网或任何其他适合于网络或电话环境中通信的适当架构或***。
图3是SoC 200的选定元素的框图,根据本发明的一个或多个实例。选择这里所示的元件来说明优先方案。在这种情况下,显示了多个主设备,包括CPU 210、DSP 100、DMA222和GPU 140。这些主设备通过NOC 270通信地耦合到从设备,例如L2存储器320。注意,具体实现仅作为说明性和非限制性示例提供。可以使用任何一套主设备,NOC 270可以用任何合适的互连或总线替换,L2 320可以由任何从设备设备替代。
在该示例中,NOC控制器272被提供给控制选择器304,控制选择器304在各种主设备之间进行选择,并确定在下一个周期将被服务的选择器。在一些情况中,选择器304或NOC270可以包括保存多个未决请求的队列318,每个等待请求可以具有应该满足的相关联的QoS概况或QoS参数。在NOC 270变为可用的每个周期之前或之后,NOC控制器272检查队列318中的待处理请求,并确定下一个服务的哪个。选择器304然后从队列中取出请求并服务该请求。
在该示例中,每个主设备具有QoS概况340,即CPU 210具有QoS概况340-1、DSP 100具有QoS概况340-2、DMA 222具有QoS概况340-3、并且GPU具有QoS概况340-4。QoS概况340可以在任何合适的位置或通过任何合适的方法存储或编码,例如硬件编码、固件编码、寄存器中的编码、缓冲器中的编码、或任何其他合适的位置。
这里,每个QoS概况340包括序数优先级值。在这种情况下,序数优先级是一个简单的非负整数值。注意,许多其他QoS因素可以被编码到QoS概况340中,并且这里所示的值仅是说明性的示例。在这种情况下,CPU210具有序数优先级0,DSP100具有序数优先级1,DMA222具有序数优先级3,GPU140具有序数优先级2。换句话说,CPU210被认为是具有最高优先级的最高级主设备。DSP 100具有下一个最高的序数优先级。GPU 140具有下一个最高优先级。并且DMA 222具有描绘的主设备的最低优先级。自然地,许多其他的优先级方案是可能的,并且这仅仅是非限制性示例。
所有其他相同的情况下,CPU 210具有对NOC 270的第一次访问。DSC100具有对NOC270的第二次访问。GPU 140具有对NOC 270的第三次访问。DMA 222具有对NOC 270的第四次访问。然而,在队列318中,所有其他可能不相等。例如,来自DMA 222的非常旧的排队请求可以通过来自CPU 210的非常新的请求获得优先级排队,特别是如果DMA 222具有具有最大可接受延迟的QoS概况,并且该延迟具有不被满足的危险。许多其他QoS因素也可能发挥到由NOC控制器272做出的排队决定。
图4是SoC 200的选定元素的框图,根据本发明的一个或多个实例。该图示出了序数优先级高程。根据本文讨论的方法,确定DMA 222需要临时序数优先级提升,例如优先级为0。因此,DMA 222升高到优先级0,使得CPU 210可以接收它需要继续的数据,例如用于时间敏感的操作。在一些情况中,优先级提升是先验的,所以当请求在队列318中排队时,它已经具有提升的优先级。在其他示例中,在事实之后提高优先级(例如当CPU210的QoS度量处于不被满足的危险时)。在这种情况下,QoS引擎可能需要通知NOC控制器272提升的优先级,使得可以及时地对该请求进行服务。
图5是SoC 200的选定元素的框图根据本发明的一个或多个实例。在该示例中,示出了QoS引擎502。QoS引擎502可以包括可以在一个非限制性示例中由CPU 210(或者替代地,DSP 100)执行的指令,例如微代码或ROM指令。注意,在一些实施方案中,可以提供单个QoS引擎502,而在其他实施例中,每个主设备可以具有其自己的全部或部分QoS引擎502,并且在其他实施例中,功能可以在专用QoS引擎502和每个主设备的QoS引擎。
在该示例中,QoS引擎502包括若干逻辑块,这些逻辑块在这里根据逻辑功能而不是特定或分立的硬件单元来定义。这些包括:
a.QoS寄存器558-分配用于保存各种主设备的QoS值的专用寄存器。
b.定时器504-用于分析从特定请求发出以来已经过去的时间的计时器。这可以用于分析来自较高级主设备的特定请求是否具有在可接受的QoS限制内未被服务的可能性,可能是因为它正在等待低阶主设备。
c.QoS分析器502可以被配置为自动检测将受益于对QoS概况方案的调整的条件,包括序数优先级提升,包括通知主设备需要这样做的可选能力。QoS分析器508还可以被配置为自动识别第二主设备(例如DSP)和第一主设备(例如DMA)之间的依赖关系,并且确定高级主设备被迫在等待低级主设备,或低级主设备适用于继承高级主设备的优先级。
d.带外信号器506-在QoS引擎502不能内部(例如主设备之间)处理QoS序列优先级高度的情况下,OOB信号器506可以经由OOB总线508向NOC 270提供信号。提供OOB信令作为一个示例,但是可以使用其他机制,例如带内信令或中断。
QoS引擎502可以部分地实现在主设备之一中,例如具有足够的***特权以覆盖优先级的主设备(例如CPU 210或DSP 100),并且可以由编码为微代码指令的逻辑,ROM中的指令来辅助,编码在专用硬件中,或者编码在其他一些非暂时的计算机可读存储介质中。在其他实施例中,QoS引擎502可以是单独的硬件块,其监视主设备并根据需要执行序数优先级提升。在这种情况下,QoS硬件引擎可能被设计为具有实现序数特权提升所必需的所有权限。
可以使用许多不同的机制来调整序数优先级。例如,序数优先级可以由QoS寄存器558或缓冲器来控制或调整。在这种情况下,原始QoS概况存储在缓冲区或寄存器中。当需要序数优先级提升时,可能暂时改变受影响主设备的QoS概况。在另一实施方案中,可以提供可包括一条或多条电线的OOB信令总线508,以表示对QoS概况的序数优先级提升或其它改变的需要。在又一例子中,可以向NOC发送带内调整信号。在又一例子中,可能会触发中断以通知NOC需要更改QoS概要。在又一例子中,主设备可能有权改变自己的QoS概况。QoS概述更改也可能仅适用于所讨论的主设备,***中的其他主设备或NOC本身。在另一个实施例中,QoS概况可以包括可由应用软件设置的一个或多个可编程值。在一些实施方案中,在下一次传输开始之前,QoS概况可能会重置为其默认值。为了进一步扩展信令机制,可以有许多不同的方式将修改信号发送到事务属性。在另一个例子中,第一主设备向触发单元发送一个信号,该触发单元触发修改到第二主设备中的一个或多个QoS概况寄存器。新的QoS概况可以驻留在第二主设备本身(作为一组寄存器)中,或者可以是为给定数据传输加载的存储器描述符的一部分,以向用户提供更大的应用程序控制。
QoS分析器508可以被配置为确定何时适当地提供序数优先级提升。这可以包括例如显式逻辑,其中DSP 100,例如,可以在退出将导致DMA操作的指令时明确地提升DMA 222的序数优先级,其中定时是敏感的,并且将取决于DMA对DMA的访问。在另一个例子中,QoS引擎508可以包括独立地监视所有主设备的启发式引擎。QoS引擎508可以确定DSP 100已经发出依赖于DMA 222的指令,并且指令的完成在等待时间阈值内不能被满足,该等待时间阈值可能是DSP 100的QoS概况的一部分。在该情况下,等待足够的时间后,(例如3/4最大等待时间),则QoS引擎508可以立即将DMA 222的序数优先级提升到最大或其它最优值,以确保在等待时间阈值内满足DSP请求。后一种方法的优点在于,可以将对QoS方案的调整最小化,并且仅当时序关键功能处于不被满足的危险时才进行。在一些实施方案中,用户或程序员可以对该方案具有应用级的可见性,使得程序员能够将某些操作标记为时序关键,并且可选地明确地设置这些操作的等待时间阈值,甚至明确地提高了与具体命令有关的DMA 222的序数优先级。
QoS引擎502,在一个例子中,可操作以执行如本说明书中所描述的计算机实现的方法。QoS引擎502可以包括一个或多个有形的非暂时计算机可读介质,其上存储有可操作以指示处理器提供QoS引擎502的可执行指令。如本说明书所使用的那样,“引擎”包括具有类似或不同种类的一个或多个逻辑元素的任何组合,其可操作并且被配置为执行由引擎提供的一种或多种方法。因此,QoS引擎502可以包括被配置为提供如本说明书中公开的方法的一个或多个逻辑元件。在一些情况中,QoS引擎502可以包括被设计为执行方法或其一部分的专用集成电路或硬件电路元件,并且还可以包括可操作以指示处理器执行该方法的软件或微代码指令。在一些情况中,QoS引擎502可以作为“守护进程”进程运行。“守护进程”可以包括以硬件,软件,固件或其作为后台进程运行的任何组合,终止驻留程序,服务,***扩展,控制面板,启动程序,BIOS子程序或任何无需直接用户交互即可运行的类似的程序。在某些实施例中,守护程序进程可以在保护环结构中的“驱动器空间”或环0、1或2中以提升的权限运行。还应注意的是,QoS引擎502还可以包括其他硬件和软件,包括配置文件、注册表项、以及非限制性示例的交互式或用户模式软件。
在一个例子中,QoS引擎502包括存储在可以执行根据本说明书的方法的非暂时介质上的可执行指令。除了中等编码软件指令之外,非暂时介质可以明确地包括硬件编码的逻辑或固件。在适当的时间,例如在引导SoC200或者在来自操作***或用户的命令时,处理器可以从存储器检索指令的副本并将其加载到存储器中。处理器然后可以迭代地执行QoS引擎502的指令以提供所需的方法。
图6是根据本发明的一个或多个实例提供序数QoS优先级提升的方法600的流程图。该方法可以由QoS引擎502执行。
在框602,QoS引擎502检测到第一主设备已经启动了从设备访问操作,例如通过NOC 270访问L2存储器322的DMA 222。注意,这种“检测”可以采取检测操作的独立QoS引擎502的形式,或者考虑主设备的内部的QoS引擎502(或其一部分)。注意,这可以是先验通知,或者可以在检测到条件时,例如在QoS限制内操作具有不完成的危险。
在框604中,QoS引擎502确定第二主设备已经将工作分配给第一主设备。例如,DSP100可能已经发出需要DMA 222访问NOC 270的存储器请求,并且在其可以继续其操作之前等待结果。
在框606中,QoS引擎502确定所分配的工作需要提高的序数优先级或其他QoS参数。这可能是,例如,因为第二主设备在等待第一主设备的结果才能进行。
在框608中,QoS引擎502改变一个或多个QoS参数,例如序列优先级或影响序数优先级的一个或多个因素。这样有效地将“第一主设备”“提升”为更高级的NOC访问目的,或者有效地允许第一主设备“继承”第二主设备的优先权,以便及时实现其任务。
注意,上面参照附图讨论的活动适用于涉及信号处理(例如手势信号处理)的任何集成电路,特别是那些可以执行专门的软件程序或算法的集成电路,其中一些可能与处理数字化的实时数据相关联。某些实施例可涉及多DSP信号处理、浮点处理、信号/控制处理、固定功能处理、微控制器应用等。在某些情况下,本文所讨论的功能可应用于医疗***、科学仪器仪表、无线和有线通信、雷达、工业过程控制、音频和视频设备、电流检测、仪器仪表(可高精度)、业余无线电、家庭自动化、“物联网”等基于数字处理的***。此外、上述讨论的某些实施例可以用于数字信号处理技术、用于医学成像、患者监测、医疗仪器和家庭保健。这可能包括肺动脉监护仪、加速度计、心率监测仪、起搏器等。其他应用可能涉及安全***的汽车技术(例如稳定性控制***、驾驶员辅助***、制动***、信息娱乐和任何类型的内部应用)。此外,动力***(例如,混合动力和电动车辆)可以在电池监视、控制***、报告控制、维护活动等中使用高精度数据转换产品。在其他示例情况下,本公开的教导可以应用于包括有助于提高生产率、能量效率和可靠性的过程控制***的工业市场。在消费者应用中,上述信号处理电路的教导可用于图像处理、自动对焦和图像稳定(例如用于数码相机,摄像机等)。其他消费应用可以包括用于家庭影院***、DVD刻录机和高清电视的音频和视频处理器。其他消费者应用可以涉及高级触摸屏控制器(例如,用于任何类型的便携式媒体设备)。因此,这些技术可以容易地部分地是智能手机、平板电脑、安全***、PC、游戏技术、虚拟现实、模拟训练等。所有上述内容仅通过说明性和非限制性的示例提供。应当理解,本说明书的教导广泛地适用于广泛的技术领域。
上述概述了若干实施例的特征,使得本领域技术人员可以更好地理解本公开的方面。本领域技术人员应当理解,他们可以容易地将本公开内容用作设计或修改用于执行本文介绍的实施例的相同目的和/或实现相同优点的其它过程和结构的基础。本领域技术人员还应该意识到,这种等同的结构不脱离本公开的精神和范围,并且在不脱离本公开的精神和范围的情况下,它们可以在此进行各种改变、替换和变更。
本公开的特定实施例可以容易地包括片上***(SOC)、DSP、CPU或类似的包。SOC表示将计算机或其他电子***的组件集成到单个芯片中的集成电路(IC)。它可以包含数字、模拟、混合信号和射频功能:所有这些功能都可以在单个芯片基板上提供。其他实施例可以包括多芯片模块(MCM),其中多个芯片位于单个电子封装内并且被配置为通过电子封装彼此紧密地相互作用。在各种其他实施例中,数字信号处理功能可以在专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其他半导体芯片中的一个或多个硅芯中实现。
在示例实现中,本文概述的处理活动的至少一些部分也可以以软件来实现。在一些实施方案中,这些功能中的一个或多个可以在所公开的附图的元件外部提供的硬件中实现,或以任何适当的方式合并以实现预期功能。各种组件可以包括可以协调以便实现如本文所概述的操作的软件(或往复式软件)。在其他实施例中,这些元件可以包括促进其操作的任何合适的算法、硬件、软件、组件、模块、接口或对象。
另外,与描述的处理器相关联的一些组件可以被去除或以其他方式整合。在一般意义上,图中所示的布置在其表示中可能更合乎逻辑,而物理架构可以包括这些元件的各种排列、组合和/或混合。必须注意,无数可能的设计配置可用于实现本文概述的操作目标。因此,相关的基础架构具有无数的替代安排、设计选择、设备可能性、硬件配置、软件实现、设备选项等。
任何适当配置的处理器组件可以执行与数据相关联的任何类型的指令以实现本文详细描述的操作。本文公开的任何处理器可以将元件或文章(例如数据)从一个状态或事物转换到另一状态或事物。在另一示例中,本文概述的一些活动可以用固定逻辑或可编程逻辑(例如,由处理器执行的软件和/或计算机指令)来实现,并且本文识别的元件可以是某种类型的可编程处理器,可编程数字逻辑(例如现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)),包括数字逻辑、软件、代码、电子指令、闪存、光学磁盘、CD-ROM、DVD ROM、磁盘或光卡,适用于存储电子指令的其他类型的机器可读介质,或其任何合适的组合。在操作中,处理器可以将信息存储在任何适当类型的非暂时性存储介质(例如随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA))、可擦除可编程只读存储器(EPROM)、电可擦除可编程ROM(EEPROM)等)、软件、硬件或任何其他合适的组件、设备、元件或对象。此外,可以基于特定的需求和实现,在任何数据库、寄存器、表、高速缓存、队列、控制列表或存储结构中提供跟踪、发送、接收或存储在处理器中的信息,所有这些可以是在任何合适的时间框架中引用。本文讨论的任何记忆项目都应被解释为包含在广义术语“存储器”中。类似地,本文描述的任何潜在的处理元件,模块和机器应被解释为包含在广义术语“微处理器”、“数字信号处理器”或“处理器”。此外,在各种实施例中,这里描述的处理器、存储器、网卡、总线、存储设备、相关***设备和其他硬件元件可以由处理器、存储器、以及由软件或固件配置的其他相关设备来模拟或虚拟化这些硬件元件的功能。
实现本文描述的全部或部分功能的计算机程序逻辑体现为各种形式,包括但不限于源代码形式、计算机可执行形式和各种中间形式(例如,由汇编器生成的形式、编译器、链接器或***)。在例子中,源代码包括以各种编程语言实现的一系列计算机程序指令,例如目标代码、汇编语言或诸如OpenCL、Fortran、C、C++、JAVA或HTML之类的高级语言可用于各种操作***或操作环境。源代码可以定义和使用各种数据结构和通信消息。源代码可以是计算机可执行形式(例如通过解释器),或者可以将源代码(例如通过翻译器、汇编器或编译器)转换成计算机可执行形式。
在上述实施例的讨论中,任何电容器、缓冲器、图形元件、互连板、时钟、DDR、相机传感器、分频器、电感器、电阻器、放大器、开关、数字核心、晶体管和/或其它部件可以容易地被替换、替代或以其他方式修改以适应特定的电路需求。此外,应当注意,使用互补电子设备、硬件、非暂时性软件等为实现本公开的教导提供了同样可行的选择。
在一个示例性实施例中,可以在相关联的电子设备的板上实现图的任何数量的电路。该电路板可以是可以容纳电子设备的内部电子***的各种组件的通用电路板,并且还可以为其它***设备提供连接器。更具体地,电路板可以提供电连接,通过该电连接***的其它部件可以电气通信。任何合适的处理器(包括数字信号处理器、微处理器、支持芯片组等),存储器元件等都可以基于特定的配置需求、处理需求、计算机设计等适当地耦合到板上。其它组件作为外部存储器,用于音频/视频显示的附加传感器,控制器和***设备可以作为插件卡通过电缆附接到板上,或者集成到板本身中。在另一个示例性实施例中,图的电路可以被实现为独立模块(例如,具有被配置为执行特定应用或功能的相关联的组件和电路的设备)或被实现为插件模块到电子应用的硬件设备。
注意,通过本文提供的许多示例,可以根据两个、三个、四个或更多个电气部件来描述相互作用。然而,这仅仅是为了清楚和示例的目的而实现的。应当理解,可以以任何合适的方式来整合该***。沿着类似的设计替代方案,图中所示的组件,模块和元件中的任何一个可以以各种可能的配置组合,所有这些配置都清楚地在本说明书的广泛范围内。在某些情况下,仅通过参考有限数量的电气元件来描述给定的一组流的一个或多个功能可能更容易。应当理解,图的电路及其教导是容易扩展的,并且可以容纳大量组件以及更复杂/复杂的布置和配置。因此,所提供的实施例不应该限制潜在地应用于无数其他架构的电路的范围或禁止广泛的教导。
通过例子的方式,公开计算设备,包括:具有第一序数服务质量(QoS)概况的第一主设备;具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;从设备;多路复用的互连,根据第一序数QoS概况和第二序数QoS概况将所述第一主设备和所述第二主设备通信地耦合从设备;和一个或多个逻辑元件,包括至少一个硬件逻辑元件,包括QoS引擎以:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序高于所述第二序数QoS概况的第三序数QoS概况。
进一步公开例子,其中所述第三序数QoS概况和所述第二序数QoS概况的顺序相等。
进一步公开例子,其中所述第三序数QoS概况的顺序比所述第一序数QoS概况高并且比所述第二序数QoS概况低。
进一步公开例子,其中根据所述第二主设备提供的QoS标准确定完成从设备操作需要提高的QoS包括确定从设备操作在期限内没有完成的危险。
进一步公开例子,其中期限由所述第二主设备提供。
进一步公开例子,其中所述期限从由多个处理器周期、固定时间窗口或立即触发组成的组中选择。
进一步公开例子,其中将所述第一主设备推广到所述第三序数QoS概况包括所述第二主设备将所述第三序数QoS概况明确分配给所述第一主设备。
进一步公开例子,其中将所述第三序数QoS概况分配给所述第一主设备包括通知第三序数QoS概况的互连。
进一步公开例子,其中通知互连包括通过带外总线提供信号。
进一步公开例子,其中通知互连包括写入寄存器。
进一步公开例子,其中通知互连包括触发中断。
进一步公开片上***(SoC)的例子,包括:具有第一序数服务质量(QoS)概况的第一主设备;具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;从设备;片上网络(NOC),通信地耦合第一主设备和第二主设备、包括NOC控制器的NOC以第一序数QoS概况和第二序数QoS概况提供访问优先级;和片上QoS引擎以:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序高于所述第二序数QoS概况的第三序数QoS概况。
进一步公开例子,其中根据所述第二主设备提供的QoS标准确定完成从设备操作需要提高的QoS包括确定从设备操作在期限内没有完成的危险。
进一步公开例子,其中所述第二主设备将所述第三序数QoS概况明确分配给所述第一主设备。
进一步公开例子,还包括QoS寄存器以接收第三序数QoS概况。
进一步公开一种为计算***提供服务质量(QoS)序列高程的方法的例子,所述计算***具有:具有第一序数QoS概况的第一主设备;具有第二序数QoS概况的第二主设备;和多路复用的互连,根据序数QoS概况将所述第一主设备和所述第二主设备通信地耦合优先级从设备资源,该方法包括:确定所述第一主设备已经通过所述互连启动从设备操作;确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和将所述第一主设备推广到顺序高于所述第二序数QoS概况的第三序数QoS概况。
进一步公开例子,其中所述第三序数QoS概况和所述第二序数QoS概况的顺序相等。
进一步公开例子,其中所述第三序数QoS概况的顺序比所述第一序数QoS概况高并且比所述第二序数QoS概况低。
进一步公开例子,其中根据所述第二主设备提供的QoS标准确定完成从设备操作需要提高的QoS包括确定从设备操作在期限内没有完成的危险。
进一步公开例子,其中将所述第一主设备推广到所述第三序数QoS概况包括所述第二主设备将所述第三序数QoS概况明确分配给所述第一主设备。
进一步公开提供前述任一例子的QoS引擎的方法的例子。
进一步公开包括用于执行该方法的构件的设备的例子。
进一步公开例子,其中构件包括片上***。
可以向本领域技术人员确定许多其他变化、替换、变化、变更和修改,并且本公开旨在将所有这些变化、替代、变化、改变和修改包含在属于所附权利要求。为了协助美国专利商标局(USPTO),另外,任何在本申请中发表的任何专利的读者,在解释所附权利要求时,申请人都希望注意到申请人:(a)不打算援引35USC第(f)款的所附权利要求第112条在提交之日之前存在,除非在特定权利要求中具体使用“用于”或“步骤”的词语;(b)并不打算通过本说明书中的任何声明以任何其他方式反映在所附权利要求中的方式来限制本公开。
Claims (19)
1.一种计算设备,包括:
具有第一序数服务质量QoS概况的第一主设备;
具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;
从设备;
多路复用的互连,以根据序数QoS概况的优先级将所述第一主设备和所述第二主设备通信地耦合到从设备;和
QoS引擎,用于:
确定所述第一主设备已经通过所述互连启动从设备操作;
确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和
将所述第一主设备提升到顺序比所述第二序数QoS概况高的第三序数QoS概况,其中将所述第一主设备提升到所述第三序数QoS概况包括所述第二主设备将所述第三序数QoS概况明确分配给所述第一主设备。
2.根据权利要求1所述的计算设备,其中所述第三序数QoS概况和所述第二序数QoS概况的顺序相同。
3.根据权利要求1所述的计算设备,其中所述第三序数QoS概况的顺序比所述第一序数QoS概况高并且比所述第二序数QoS概况低。
4.根据权利要求1所述的计算设备,其中确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS包括确定从设备操作具有在期限内没有完成的危险。
5.根据权利要求4所述的计算设备,其中所述期限由所述第二主设备提供。
6.根据权利要求4所述的计算设备,其中所述期限从由多个处理器周期、固定时间窗口或立即触发组成的组中选择。
7.根据权利要求1所述的计算设备,其中将所述第三序数QoS概况分配给所述第一主设备包括向所述互连通知第三序数QoS概况。
8.根据权利要求7所述的计算设备,其中通知所述互连包括通过带外总线提供信号。
9.根据权利要求7所述的计算设备,其中通知所述互连包括写入寄存器。
10.根据权利要求7所述的计算设备,其中通知所述互连包括触发中断。
11.根据权利要求7所述的计算设备,其中通知所述互连包括与序数QoS概况适用的交易同时提供信号。
12.根据权利要求7所述的计算设备,其中通知所述互连包括通知所述从设备。
13.一种片上***SoC,包括:
具有第一序数服务质量QoS概况的第一主设备;
具有第二序数QoS概况的第二主设备,其中所述第二序数QoS概况比所述第一序数QoS概况的顺序高;
从设备;
片上网络NOC,通信地耦合第一主设备和第二主设备,所述NOC包括NOC控制器以根据序数QoS概况提供访问优先级;和
片上QoS引擎,用于:
确定所述第一主设备已经通过所述NOC启动从设备操作;
确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和
将所述第一主设备提升到顺序高于所述第二序数QoS概况的第三序数QoS概况,其中所述第二主设备将所述第三序数QoS概况明确分配给所述第一主设备。
14.根据权利要求13所述的SoC,其中确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS包括确定从设备操作具有在期限内没有完成的危险。
15.根据权利要求13所述的SoC,还包括QoS寄存器以接收所述第三序数QoS概况。
16.一种为计算***提供服务质量QoS序数提升的方法,所述计算***具有:具有第一序数QoS概况的第一主设备;具有第二序数QoS概况的第二主设备;以及多路复用的互连,所述多路复用的互连以根据序数QoS概况的优先级将所述第一主设备和所述第二主设备通信地耦合到从设备资源,该方法包括:
确定所述第一主设备已经通过所述互连启动从设备操作;
确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS;和
将所述第一主设备提升到顺序高于所述第二序数QoS概况的第三序数QoS概况,其中将所述第一主设备提升到所述第三序数QoS概况包括所述第二主设备将所述第三序数QoS概况明确分配给所述第一主设备。
17.根据权利要求16所述的方法,其中所述第三序数QoS概况和所述第二序数QoS概况的顺序相同。
18.根据权利要求16所述的方法,其中所述第三序数QoS概况的顺序比所述第一序数QoS概况高并且比所述第二序数QoS概况低。
19.根据权利要求16所述的方法,其中确定根据所述第二主设备提供的QoS标准完成从设备操作需要提高的QoS包括确定从设备操作具有在期限内没有完成的危险。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/297,115 | 2016-10-18 | ||
US15/297,115 US10223312B2 (en) | 2016-10-18 | 2016-10-18 | Quality of service ordinal modification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107957965A CN107957965A (zh) | 2018-04-24 |
CN107957965B true CN107957965B (zh) | 2021-06-29 |
Family
ID=61765465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710970703.0A Active CN107957965B (zh) | 2016-10-18 | 2017-10-18 | 服务质量序数修改 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10223312B2 (zh) |
CN (1) | CN107957965B (zh) |
DE (1) | DE102017124078A1 (zh) |
TW (1) | TWI668574B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11082881B2 (en) * | 2018-04-05 | 2021-08-03 | At&T Intellectual Property I, L.P. | Dynamic quality of service setting system |
TWI734249B (zh) * | 2019-11-07 | 2021-07-21 | 財團法人資訊工業策進會 | 網路系統以及決策方法 |
US10990548B1 (en) | 2019-11-25 | 2021-04-27 | Micron Technology, Inc. | Quality of service levels for a direct memory access engine in a memory sub-system |
US20220335003A1 (en) * | 2021-04-19 | 2022-10-20 | Advanced Micro Devices, Inc. | Master-Slave Communication with Subdomains |
US11789653B2 (en) * | 2021-08-20 | 2023-10-17 | Micron Technology, Inc. | Memory access control using a resident control circuitry in a memory device |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2064162C (en) | 1991-05-28 | 2002-07-09 | Daniel Paul Fuoco | Personal computer with local bus arbitration |
US6088751A (en) | 1998-02-12 | 2000-07-11 | Vlsi Technology, Inc. | Highly configurable bus priority arbitration system |
US7007122B2 (en) | 2002-11-27 | 2006-02-28 | Lsi Logic Corporation | Method for pre-emptive arbitration |
DE102004013635B4 (de) | 2004-03-19 | 2006-04-20 | Infineon Technologies Ag | Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens |
JP4974508B2 (ja) * | 2005-10-28 | 2012-07-11 | キヤノン株式会社 | バスマスタ装置、バス調停装置及びバス調停方法 |
US20100241759A1 (en) * | 2006-07-31 | 2010-09-23 | Smith Donald L | Systems and methods for sar-capable quality of service |
US20100169525A1 (en) * | 2006-08-23 | 2010-07-01 | Frescale Semiconductor Inc. | Pipelined device and a method for executing transactions in a pipelined device |
WO2008023218A1 (en) * | 2006-08-23 | 2008-02-28 | Freescale Semiconductor, Inc. | Device having priority upgrade mechanism capabilities and a method for updating priorities |
CN101729392B (zh) * | 2008-10-23 | 2011-11-16 | 大唐移动通信设备有限公司 | 一种操作服务质量的方法和装置 |
CN101404650B (zh) * | 2008-11-19 | 2012-04-18 | 中国电信股份有限公司 | 一种细分网络应用服务质量的方法和*** |
FR2961048B1 (fr) * | 2010-06-03 | 2013-04-26 | Arteris Inc | Reseau sur puce avec caracteristiques de qualite-de-service |
CN102075421B (zh) * | 2010-12-30 | 2013-10-02 | 杭州华三通信技术有限公司 | 服务质量处理方法及装置 |
US8649286B2 (en) * | 2011-01-18 | 2014-02-11 | Apple Inc. | Quality of service (QoS)-related fabric control |
CN103326956A (zh) * | 2011-01-24 | 2013-09-25 | 华为技术有限公司 | 一种服务质量QoS保持方法、装置及*** |
KR101855399B1 (ko) * | 2011-03-24 | 2018-05-09 | 삼성전자주식회사 | 데이터 트래픽을 개선한 SoC 및 이의 동작 방법 |
CN103067217B (zh) * | 2012-12-14 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种通信网络服务质量的指示***及方法 |
US9357359B2 (en) * | 2013-02-05 | 2016-05-31 | Qualcomm Incorporated | Dynamic quality of service (QoS) for services over cellular |
US9372818B2 (en) | 2013-03-15 | 2016-06-21 | Atmel Corporation | Proactive quality of service in multi-matrix system bus |
US9910803B2 (en) | 2013-06-17 | 2018-03-06 | Texas Instruments Incorporated | Multi master arbitration scheme in a system on chip |
-
2016
- 2016-10-18 US US15/297,115 patent/US10223312B2/en active Active
-
2017
- 2017-10-17 TW TW106135463A patent/TWI668574B/zh active
- 2017-10-17 DE DE102017124078.0A patent/DE102017124078A1/de active Pending
- 2017-10-18 CN CN201710970703.0A patent/CN107957965B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107957965A (zh) | 2018-04-24 |
DE102017124078A1 (de) | 2018-04-19 |
TW201820152A (zh) | 2018-06-01 |
US20180107621A1 (en) | 2018-04-19 |
TWI668574B (zh) | 2019-08-11 |
US10223312B2 (en) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107957965B (zh) | 服务质量序数修改 | |
US9092429B2 (en) | DMA vector buffer | |
Cong et al. | Architecture support for accelerator-rich CMPs | |
JP5241737B2 (ja) | プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置 | |
US9990319B2 (en) | Placement of input / output adapter cards in a server | |
KR101385827B1 (ko) | 가상화된 환경들 내의 리소스 할당 | |
JP5536807B2 (ja) | 共用リソースの割り当てを制御するためのシステム、方法、コンピュータ・プログラム | |
US9411542B2 (en) | Interruptible store exclusive | |
KR20200078331A (ko) | 장치로 애플리케이션 기능들을 오프로드하는 시스템 및 방법 | |
US20150363318A1 (en) | Cache way prediction | |
US10614004B2 (en) | Memory transaction prioritization | |
KR20160016557A (ko) | 멀티 포트, 멀티 펑션 PCIe 장치의 호스트 명령어의 QoS 유지 방법 및 그 시스템 | |
CN107729267B (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
Cong et al. | Architecture support for domain-specific accelerator-rich cmps | |
US9886327B2 (en) | Resource mapping in multi-threaded central processor units | |
US20130055284A1 (en) | Managing shared computer resources | |
US20150268985A1 (en) | Low Latency Data Delivery | |
US8972648B2 (en) | Kernal memory locking for systems that allow over-commitment memory | |
CN113253978A (zh) | 嵌入式软件开发方法、模型、电子设备和介质 | |
US20150100759A1 (en) | Pipelined finite state machine | |
JP2010092101A (ja) | 情報処理装置 | |
US20090265515A1 (en) | Information Processing Apparatus, Information Processing Method, and Computer Program | |
WO2009004628A2 (en) | Multi-core cpu | |
CN116594765A (zh) | 一种指令处理方法、指令处理电路、处理器及电子设备 | |
CN117441161A (zh) | Numa架构的软件优化方法和设备 |
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 |