CN111858439A - 用于多种通信业务的共享的资源 - Google Patents
用于多种通信业务的共享的资源 Download PDFInfo
- Publication number
- CN111858439A CN111858439A CN202010221725.9A CN202010221725A CN111858439A CN 111858439 A CN111858439 A CN 111858439A CN 202010221725 A CN202010221725 A CN 202010221725A CN 111858439 A CN111858439 A CN 111858439A
- Authority
- CN
- China
- Prior art keywords
- bus
- queue
- communication
- virtual channel
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
-
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/102—Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了一种用于耦合至通信总线的装置的系统、方法和计算机可读介质,其中该装置包括队列和用于管理队列的操作的控制器。队列包括第一空间,第一空间用于存储用于具有第一流类别的第一业务类型以及用于在第一通信实体与第二通信实体之间通信的第一虚拟信道的第一信息。队列包括第二空间,第二空间用于存储用于具有第二流类别的第二业务类型以及用于在第三通信实体与第四通信实体之间通信的第二虚拟信道的第二信息。第一业务类型与第二业务类型不同,第一流类别与第二流类别不同,或第一虚拟信道与第二虚拟信道不同。还可描述和/或要求保护其他的实施例。
Description
技术领域
多种实施例一般可以涉及通信和计算领域,并且特别地,可以涉及计算机总线和通过计算机总线耦合的设备。
背景技术
本公开所提供的背景描述是为了大体上呈现本公开内容的目的。除非本公开另外指出,否则本节中描述的材料不是本申请中的权利要求的现有技术,并且不能由于包含在本节中而承认是现有技术。
计算机系统或平台可以包括许多组件,诸如包括中央处理单元(CPU)、存储器、芯片组和/或通过计算机总线耦合在一起的许多其他设备的主机。计算机总线或通信总线是可以在计算机内部的设备或组件之间或计算机之间传输数据的通信系统。计算系统或平台可以广泛地使用耦合到计算机总线的各种设备。计算机总线可以包括相关的硬件组件(电线、光纤等)和包括通信协议的软件。可能存在许多种计算机总线,例如串行总线或并行总线。串行总线的示例包括但不限于外围组件互连(PCI)总线,包括PCIx和PCI Express(PCIe),以及通用串行总线(USB)。
附图说明
通过下文结合附图的详细说明,将容易理解实施例。为了便于该说明,相似的参考标号表示相似的结构元件。在附图的图中,实施例通过示例而非限制性的方式示出。
图1(a)-1(b)示出了根据各种实施例的示例装置,该示例装置包括通过计算机总线耦合到另一设备的设备。
图2(a)-2(d)示出了根据各种实施例的,在计算机总线中的不同流控制类别的多个通信业务和虚拟信道之间共享的示例资源。
图3(a)-3(b)示出了根据各种实施例的,用于在计算机总线中的不同流控制类别的多个通信业务和虚拟信道之间共享的资源的在发送器和接收器之间的示例协议。
图4(a)-4(b)示出了根据各种实施例的,用于在计算机总线中的不同流控制类别的多个通信业务和虚拟信道之间共享的资源的示例过程和数据结构。
图5示出了根据各种实施例的适合用于实践本公开的各个方面的示例设备。
图6示出了根据各种实施例的具有用于实践参考图1-5描述的方法的指令的存储介质。
具体实施方式
下文详细说明参考附图。在不同的附图中可以使用相同的附图标记来识别相同或相似的元件。在下面的说明中,出于解释而非限制的目的,阐述了例如特定的结构、架构、接口、技术等的具体细节,以便提供对各个实施例的各个方面的透彻理解。然而,对于受益于本公开的本领域技术人员将显而易见的是,可以在脱离这些具体细节的其他示例中实践各种实施例的各个方面。在某些情况下,省略了众所周知的设备、电路和方法的说明,以免不必要的细节使各个实施例的说明不清楚。
计算系统或平台可以广泛地使用耦合到计算机总线、通信总线或总线的各种设备。计算机总线可以包括硬件组件(电线、光纤等)和包括通信协议的相关的软件。外围组件互连(PCI)总线或PCI Express(PCIe,PCI-E)可以是基于PCI规范的计算机总线,PCI规范提供了包括系统软件或系统驱动器的机制,以在与PCI总线或PCIe总线耦合的设备之间执行各种通信操作。耦合到计算机总线的设备或组件可以具有多种功能和/或由应用程序访问。PCIe可以在消费者、服务器和工业应用中,作为主板级互连(以链接安装在主板上的外围设备)、无源底板互连以及作为内装板的扩展卡接口进行操作。PCIe设备经由称为互连或链路的逻辑连接进行通信。链路是两个PCIe端口之间的点对点通信信道,允许两个PCIe端口都发送和接收普通的PCI请求,例如配置、输入/输出(I/O)或内存读入/写入和中断。在物理级别,一条链路可以由一个或多个通道组成。低速外围设备(例如802.11Wi-Fi卡)使用单通道(×1)链路,而图形适配器通常使用更宽和更快的16通道链路。
在下文的说明中,PCI总线或PCIe总线可以用作计算机总线、通信总线或总线的示例。类似地,PCI设备或PCIe设备可以用作耦合到计算机总线、通信总线或总线的设备的示例。然而,本公开不限于PCI设备或总线。关于PCIe设备的说明可能适用于耦合到任何计算机总线、通信总线或总线的任何其他设备。
本公开公开的实施例包括一种用于通信的装置,其中,该装置包括队列和耦合至该队列以管理该队列的操作的控制器。该装置经由通信总线耦合到另一装置。第一通信实体用于经由两个装置和通信总线与第二通信实体进行通信,并且第三通信实体将经由两个装置和通信总线与第四通信实体进行通信。队列具有多个存储空间。例如,队列包括第一空间,该第一空间用于存储用于具有第一流类别的第一业务类型的和用于在第一通信实体与第二通信实体之间进行通信的第一虚拟信道(VC)的第一信息。队列还包括第二空间,该第二空间用于存储用于具有第二流类别的第二业务类型的和用于在第三通信实体和第四通信实体之间进行通信的第二虚拟信道的第二信息。第一业务类型与第二业务类型不同,第一流类别与第二流类别不同,或第一虚拟信道与第二虚拟信道不同。
本公开公开的实施例包括一种用于在经由总线彼此耦合的发送器和接收器之间进行通信的方法。该方法包括由发送器向接收器发送接收器内的队列的一定数量的预留的存储空间的请求。队列具有多个存储空间,每个存储空间用于存储用于具有流类别的业务类型的和用于在发送器和接收器之间进行通信的虚拟信道的信息。该方法还包括响应于发送的请求,由发送器从接收器接收一定数量的预留的空间的指示。
本公开公开的实施例包括一种用于计算的装置。该装置包括印刷电路板(PCB),其具有外围组件互连(PCI)总线、PCI扩展总线(PCI-X)或PCI Express总线中的选定的一种总线。该装置还包括:设置在PCB上并耦合到总线的第一总线代理;以及设置在PCB上并耦合到总线的第二总线代理。第一总线代理或第二总线代理中选定的至少一个总线代理包括队列,以及耦合到队列以管理队列的操作的控制器。队列包括多个存储空间。具体地,该队列包括第一空间,该第一空间用于存储用于具有第一流类别的第一业务类型的和用于在第一总线代理和第二总线代理之间进行通信的第一虚拟信道的第一信息。队列还包括第二空间,该第二空间用于存储用于具有第二流类别的第二业务类型的和用于在第一总线代理和第二总线代理之间进行通信的第二虚拟信道的第二信息。第一业务类型与第二业务类型不同,第一流类别与第二流类别不同,或第一虚拟信道与第二虚拟信道不同。
各种操作将以对理解说明性实施例最有帮助的方式依次描述为多个离散操作;然而,描述的顺序不应解释为暗示这些操作必定是顺序相关的。特别地,这些操作可能不会按提出的顺序执行。
重复使用短语“在各种实施例中”、“在一些实施例中”等。该短语通常不指代同一实施例;但是,也可能会指代同一实施例。除非上下文另有指示,否则术语“包含”、“具有”和“包括”是同义词。短语“A和/或B”表示(A)、(B)或(A和B)。短语“A/B”和“A或B”类似于短语“A和/或B”表示(A)、(B)或(A和B)。为了本公开的目的,短语“A和B中的至少一个”是指(A)、(B)或(A和B)。该说明可以使用短语“在一个实施例中”、“在实施例中”、“在一些实施例中”和/或“在各种实施例中”,其可以分别指代相同或不同实施例中的一个或多个。此外,关于本公开的实施例使用的术语“包含”、“包括”、“具有”等是同义的。
示例实施例可以被描述为过程,该过程被描绘为流程表、流程图、数据流程图、结构图或框图。尽管流程图可以将操作描述为有序过程,但是许多操作可以并行、并发或同时执行。另外,可以重新排列操作的顺序。一个过程可以在其操作完成时终止,但也可以具有图中未包含的其他步骤。过程可以对应于方法、功能、程序、子例程、子程序等。当过程对应于功能时,其终止可以对应于该功能返回到调用功能和/或返回到主功能。
可以在由上述电路中的一个或多个电路执行的计算机可执行指令(诸如程序代码、软件模块和/或功能过程)的一般上下文中描述示例实施例。程序代码、软件模块和/或功能过程可以包括执行特定任务或实现特定数据类型的例程、程序、对象、组件、数据结构等。本公开讨论的程序代码、软件模块和/或功能过程可以使用现有通信网络中的现有硬件来实现。例如,本公开讨论的程序代码、软件模块和/或功能过程可以使用现有网络元件或控制节点处的现有硬件来实现。
如本公开所使用的,术语“电路”是指包括诸如电子电路、逻辑电路、处理器(共享的、专用的或成组的)和/或存储器(共享的、专用的或成组的)、专用集成电路(ASIC)、现场可编程设备(FPD)(例如,现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、复杂PLD(CPLD)、大容量PLD(HCPLD)、结构化ASIC或可编程片上系统(SoC))、数字信号处理器(DSP)等的硬件组件或者是上述硬件组件的一部分,电路被配置为提供上述功能。在一些实施例中,电路可以执行一个或多个软件或固件程序以提供所描述的功能中的至少一些功能。
如本公开所使用的,术语“处理器电路”可以指代包括能够有序地且自动地执行一系列算术或逻辑操作;记录、存储和/或传输数字数据的电路或上述电路的一部分。术语“处理器电路”可以指一个或多个应用处理器、一个或多个基带处理器、物理中央处理器(CPU)、单核处理器、双核处理器、三核处理器,四核处理器和/或任何其他能够执行或以其他方式操作计算机可执行指令(例如程序代码、软件模块和/或功能过程)的设备。如本公开所使用的,术语“接口电路”可以指包括提供两个或更多个组件或设备之间的信息交换的电路或上述电路的一部分。术语“接口电路”可以指一个或多个硬件接口(例如,总线、输入/输出(I/O)接口、外围组件接口、网络接口卡等)。如本公开所使用的,术语“实例化”等可以指代实例的创建,而“实例”可以指代对象的具体的发生,其可以例如在程序代码的执行期间发生。
如本公开中所使用的,术语“计算机设备”可以描述能够有序地并且自动地执行一系列算术或逻辑操作,被装备以在机器可读介质上记录/存储数据,以及从通信网络中一个或多个其他设备发送和接收数据的任何物理硬件设备。计算机设备可以被认为是计算机、计算平台、计算设备等的同义词,并且在下文中有时被称为计算机、计算平台、计算设备等。术语“计算机系统”可以包括任何类型的互连电子设备、计算机设备或其组件。另外,术语“计算机系统”和/或“系统”可以指代彼此通信地耦合的计算机的各种组件。此外,术语“计算机系统”和/或“系统”可以指代彼此通信地耦合并且被配置为共享计算资源和/或网络资源的多个计算机设备和/或多个计算系统。如本公开所使用的,术语“用户设备”或“UE”可以指代例如计算机设备的具有无线电通信能力的设备,并且可以描述通信网络中的网络资源的远程用户。术语“用户设备”或“UE”可被视为客户端、移动、移动设备、移动终端、用户终端、移动单元、移动台、移动用户、订户、用户、远程站、访问代理、用户代理、接收器、无线电设备、可重新配置的无线电设备、可重新配置的移动设备等的同义词,并且在下文中有时可以被称为上述所列的同义词。
“计算机设备”、“计算机系统”、“UE”等的示例可以包括蜂窝电话或智能电话、功能电话、平板个人计算机、可穿戴计算设备、自主传感器、膝上型计算机、台式个人计算机、视频游戏机、数字媒体播放器、手持消息传递设备、个人数据助理、电子书阅读器、增强现实设备、服务器计算机设备(例如独立式、机架式、刀片式服务器等)、云计算服务/系统、网络元件,车载信息娱乐(IVI)、车载娱乐(ICE)设备、仪表组(IC)、平视显示器(HUD)设备、车用诊断(OBD)设备、仪表板移动设备(DME)、移动数据终端(MDT)、电子发动机管理系统(EEMS)、电子/发动机控制单元(ECU)、电子/发动机控制模块(ECM)、嵌入式系统、微控制器、控制模块、发动机管理系统(EMS)、联网的或“智能”设备、机器类型的通信(MTC)设备、机器对机器(M2M)、物联网(IoT)设备和/或任何其他类似的电子设备。此外,术语“车辆嵌入式计算机设备”可以指物理地安装在、内置于或以其他方式嵌入车辆中的任何计算机设备和/或计算机系统。
如本公开中所使用的,术语“网络元件”可以被认为是联网的计算机、联网硬件、网络设备、路由器、交换机、中枢、网桥、无线电网络控制器、无线电接入网络设备、网关、服务器和/或任何其他类似设备的同义词和/或被称为上述列出的同义词。术语“网络元件”可以描述有线或无线通信网络的物理计算设备,并且被配置为托管虚拟机。此外,术语“网络元件”可以描述为网络和一个或多个用户之间的数据和/或语音连接提供无线电基带功能的设备。术语“网络元件”可以被认为是“基站”的同义词和/或被称为“基站”。如本公开所使用的,术语“基站”可以被认为是节点B、增强型或演进型节点B(eNB)、下一代节点B(gNB)、基站收发器(BTS)、接入点(AP)、路边单元(RSU)等的同义词和/或被称为上述所列出的同义词,并且可以描述为网络和一个或多个用户之间的数据和/或语音连接提供无线电基带功能的设备。术语“RSU”可以指代在gNB/eNB或固定(或相对固定)的UE中实现的任何运输基础设施实体。在UE中实现的RSU可以被称为“UE型RSU”,并且在eNB中实现的RSU可以被称为“eNB型RSU”。如本公开所使用的,术语“车辆到车辆”和“V2V”可以指代涉及车辆作为消息的来源或目的地的任何通信。另外,本公开所使用的术语“车辆到车辆”和“V2V”还可以包含或等同于车辆到基础设施(V2I)通信、车辆到网络(V2N)通信、车辆到行人(V2P)通信或V2X通信。
如本公开中所使用的,术语“信道”可以指用于传输数据或数据流的任何有形或无形的传输介质。术语“信道”可以与“通信信道”、“数据通信信道”、“传输信道”、“数据传输信道”、“访问信道”、“数据访问信道”、“链路”、“数据链路”、“载波”、“射频载波”和/或表示数据通过其传输的路径或介质的任何其他类似的术语同义和/或等同。另外,术语“链路”可以指的是通过无线电接入技术(RAT)在两个设备之间的连接,以用于发送和接收信息。
图1(a)-1(b)示出了根据各种实施例的示例装置100,该示例装置100包括通过计算机总线105耦合到另一设备103的设备101。为了清楚起见,下文以装置100、设备101、设备103和计算机总线105的特征为例进行说明。应该理解的是,装置100、设备101、设备103和计算机总线105中可以包括更多或更少的组件。此外,应当理解,装置100中的一个或多个设备和组件可以包括来自下文描述的附加和/或变化的特征,并且可以包括本领域普通技术人员将认为是和/或称为主机、设备和计算机总线的任何设备。在一些实施例中,装置100是计算机或计算设备,而设备101和设备103两者都在由共同的外壳或盖罩住的计算机内。对于这些实施例,设备101和设备103也可以被称为组件。在一些其他实施例中,设备101和设备103可以在计算机之间。无论如何,处理器111和接口131与本公开的用于通信业务技术的共享的资源结合在一起,例如,在对设备101和设备103进行进一步的一般性说明之后,将在下文更全面地描述的装置110或装置120。
在实施例中,如图1(a)所示,设备101可以包括处理器111和内存115。操作系统113可以在处理器111上操作,并且操作系统113可以包括系统驱动器114。设备103可以通过计算机总线105耦合到处理器101。设备103可以包括耦合到计算机总线105的接口131、缓冲器141和存储器143。接口131可以包括一个或多个寄存器,诸如功能报头寄存器、身份验证报头寄存器、身份验证功能寄存器、身份验证状态寄存器、身份验证控制寄存器、写数据邮箱寄存器、读数据邮箱寄存器或某些其他寄存器。
在实施例中,装置100可以是任何计算系统或平台,例如,膝上型计算机、超膝上型计算机、平板电脑、触摸板电脑、便携式计算机、手持计算机、可穿戴设备、掌上电脑、个人数字助理(PDA)、电子阅读器、蜂窝电话、蜂窝电话/PDA的组合、移动智能设备(例如,智能电话,智能平板电脑等)、移动互联网设备(MID)、移动消息收发设备、移动数据通信设备、移动媒体播放设备、照相机、移动游戏机等。在实施例中,装置100也可以是非移动设备,其可以包括但不限于不限于例如个人计算机(PC)、电视、智能电视、数据通信设备、媒体播放设备、游戏机、网关、物联网(IOT)设备等。装置100可以包括控制器(或处理器)和执行软件或控制硬件以执行本地程序或由外部服务提供者通过网络提供的消费服务的其他组件。例如,装置100可以包括一个或多个在本地运行和/或利用或访问基于网络的服务(例如,在线商店或服务、社交网络服务等)的软件客户端或应用。装置100还可以或者替代地在浏览器中运行的网络界面,电子装置可以从浏览器访问这种基于网络的服务。装置100还可包括存储设备,用于存储与由装置100所使用的程序和服务相关联的逻辑和数据。
在实施例中,处理器111可以是中央处理单元(CPU)。在一些实施例中,处理器111可以是可执行程序的可编程设备,例如系统驱动器114。在实施例中,处理器111可以是微控制器、16位处理器、32位处理器、64位处理器、单核处理器、多核处理器、数字信号处理器、嵌入式处理器或任何其他处理器。
在实施例中,操作系统113可以是管理用于设备100的硬件资源或软件资源的任何系统软件,并且可以向例如系统驱动器114的应用提供服务。操作系统113可以是Android操作系统、iOS、Linux、实时操作系统(RTOS)、汽车信息娱乐操作系统等。例如,操作系统113可以是实时操作系统,诸如VxWorks、PikeOS、eCos、QNX、MontaVistaLinux、RTLinux、Windows CE或其他操作系统。
在实施例中,计算机总线105可以是外部计算机总线、内部计算机总线、串行计算机总线或并行计算机总线。例如,计算机总线105可以是PCI总线、PCI扩展总线(PCI-X)、PCIExpress总线、通用串行总线(USB)、并行高级技术附件(PATA)总线、串行ATA(SATA)总线、集成电路间(I2C)总线、IEEE 1394接口(FireWire)总线、小型计算机系统接口(SCSI)总线、可缩放一致性接口(SCI)总线或其他计算机总线。
在实施例中,设备103可以是任何计算机硬件。例如,设备103可以是网络接口卡、声卡、视频控制器、以太网控制器、网络摄像头、鼠标、蓝牙控制器、PCI到ISA网桥、GUI加速器、ATM控制器、多媒体卡、SCSI控制器、多媒体设备、MPEG-II视频解码器或任何输入/输出设备。在实施例中,设备103可以是PCI设备,其可以直接插入计算机主板上的PCI插槽中。在一些其他实施例中,设备103可以由不同的计算机总线耦合到处理器111。
图1(b)更详细地示出了装置100、设备101、设备103和计算机总线105。设备101包括装置110,并且设备103包括另一装置120,其中装置110和装置120通过计算机总线105耦合。计算机总线105可以是通信总线,并且可以包括多个链路,例如,链接151和链接153。装置110或装置120可以是通过计算机总线105进行通信的发送器或接收器。在一些实施例中,装置120可以具有与装置110基本上相似的结构。在某些其他实施例中,120可以具有与装置110不同的结构。
在实施例中,装置110包括队列142和用于管理队列142的操作的控制器158。控制器158中可以包括其他组件,例如计数器159。此外,装置110还可选地包括队列142、队列144和队列146。例如队列142、队列144和队列146的一个或多个队列形成分层队列140,其中队列142、队列144和队列146可以具有不同的长度并且可以以不同的方式使用。队列分别包括一个或多个存储空间。例如,队列142包括第一存储器147和第二存储器149。队列144包括存储器154,队列146包括存储器156。
在实施例中,装置110和装置120可以通过通信总线105将第一通信实体116和第二通信实体133耦合。通信的第一虚拟信道155在第一通信实体116和第二通信实体133之间,第一通信实体116和第二通信实体133经由通过通信总线105通信的装置110和第二装置120进行通信。来自第一通信实体116的业务121经过第一虚拟信道155到达第二通信实体133以被保存为业务135。例如业务121或业务135的业务包括较小信息单元(例如,数据包124)的集合,以通过虚拟信道行进。在一些实施例中,第一通信实体116和第二通信实体133之间的通信可以包括多个虚拟信道。在一些实施例中,第一通信实体116和第二通信实体133在同一计算机上。
另外,装置110和装置120可以通过通信总线105将第三通信实体118和第四通信实体134耦合。通信的第二虚拟信道157在第三通信实体118和第四通信实体134之间,第三通信实体118和第四通信实体134经由通过通信总线105通信的装置110和装置120进行通信。来自第三通信实体118的业务122经过第二虚拟信道157到达第四通信实体133以被保存为业务136。
在实施例中,第一虚拟信道155或第二虚拟信道157可以包括通信总线105的多个链路,例如,链路151、链路153。第一虚拟信道155和第二虚拟信道157可以共享一些共同的实体。例如,第一通信实体116可以与第三通信实体118相同,或者第二通信实体133可以与第四通信实体134相同。
可以称为通信业务的业务,例如业务121、业务122、业务135或业务136包括较小信息单元的集合,或简称为信息。信息或信息单元可以包括消息、数据包或位信息。另外,用于业务121的信息可以用于例如,物理层、链路层、事务层、路由层、传输层或应用层的协议层。用于业务121的信息可以是用于具有流类别的业务类型和用于在第一通信实体116和第二通信实体133之间通信的虚拟信道的信息。例如,业务121的信息包括数据包124,其中数据包124包括报头127、有效负载125和流控制类别126。数据包124可以用于作为数据业务的第一业务类型,或者作为控制业务的第二业务类型。流控制类别126可以包括发布类类别、非发布类别、完成类别、服务质量类别或某个其他流类别。在一些其他实施例中,信息可以是应用层中的消息,或者是物理层中的位信息。
在实施例中,装置110中的队列142可以由多个通信业务共享。例如,第一存储器147存储用于具有第一业务类型、第一流类别的业务121以及用于第一虚拟信道155的第一信息,而第二存储器149存储用于具有第二业务类型、第二流类别的业务122以及用于第二虚拟信道157的第二信息。这样,第一业务类型与第二业务类型不同,第一流类别与第二流类别不同,或第一虚拟信道与第二虚拟信道不同。例如,业务121是数据业务,而业务122是控制业务。第一存储装置147和第二存储装置149在队列142内,并且由相同的控制器158管理。在队列142中的第一存储装置147和第二存储装置149之间可以存在排序,例如顺序的次序。例如,可以比第二存储器149更早地访问第一存储器147,或者可以在将数据或信息存储在第二存储器149中之前将数据或信息存储在第一存储器147中。
在实施例中,可以以与队列142不同的方式来使用队列144或队列146。代替在多个通信业务之间共享,可以为特定类型的业务预留队列144或队列146,例如,用于第三业务类型、第三流类别或用于第三虚拟信道的第三信息。例如,队列144可以被预留用于数据业务,而队列146可以被预留用于控制业务。在图2(a)-2(d)中示出了队列142、队列144和队列146的不同组织的更多示例。
在实施例中,控制器158(也称为队列管理器)耦合到例如,队列142、队列144或队列146的队列,以管理队列的操作。在一些实施例中,控制器158被配置为监视队列142的未使用容量,在队列142中预留多个空间,其中每个空间是可释放的以存储用于具有流类别的业务类型以的信息及用于通信的虚拟信道的信息。在实施例中,预留的和未释放的空间是未使用的空间。另外,控制器158被配置为释放多个空间中的两个以用作第一空间147和第二空间149。具体地,控制器158用于使用计数器159执行操作以基于一个或多个计数器中的信息监视未使用的空间,留出一定数量的预留的空间,释放多个空间。
此外,控制器158被配置为将队列142的状态与在装置120中设置的对应队列的状态进行同步。例如,控制器158向装置120发送用于在装置120中设置一定数量的队列的预留的和未释放的空间的请求。此外,控制器158响应于发送的请求,接收装置120中设置的队列中的一定数量的预留的和未释放的空间的指示。在图3(a)-3(b)中示出了用于同步队列状态的控制器158的更多细节。
此外,控制器158用于接收具有流类别的业务类型以及用于通信的虚拟信道的多个信息,并维持具有流类别的业务类型以及用于虚拟信道的多个信息的顺序。这种操作的更多细节在图4(a)-4(b)中示出。
在一些实施例中,第一通信实体116或第二通信实体133可以包括中央处理器单元(CPU)或处理器核(或在其上操作的应用/功能)、鼠标、磁盘、键盘、存储设备或输入/输出控制器。另外,第一通信实体116和第二通信实体133可以在同一计算机上。通信总线105可以是PCI总线、PCI扩展总线(PCI-X)、PCI Express总线、通用串行总线(USB)、并行高级技术附件(PATA)总线、串行ATA(SATA)总线、集成电路间(I2C)总线、IEEE 1394接口(FireWire)总线、小型计算机系统接口(SCSI)总线、可缩放一致性接口(SCI)总线。
在一些实施例中,第一通信实体116或第二通信实体133可以是设置在PCB上的总线代理或链路伙伴,并且通信总线105可以是外围组件互连(PCI)总线、PCI扩展总线(PCI-X)或PCI Express总线中的选定的一种总线。另外,装置110可以是总线代理的一部分。换句话说,第一通信实体116和装置110都可以是总线代理的一部分。
图2(a)-2(d)示出了根据各种实施例的跨计算机总线中的不同流控制类别的多个通信业务和虚拟信道之间共享的示例资源。图2(a)-2(d)所示的具有各种替代方案的机制可以适用于业务121、业务122和耦合到图1(b)所示的计算机总线105的装置110。
图2(a)中示出了当前现有方法的示例,其中,分离的队列用于具有业务类型、流类别以及用于在第一通信实体与第二通信实体之间通信的虚拟信道的业务的信息。例如,对于第一虚拟信道,对于由报头(Hdr)指示的控制业务,队列201被预留用于作为发布类别(P)的流类别,队列203被预留用于作为未发布的类别(NP)的流类别,并且队列205被预留用于作为完成类别(CPl)的流类别。类似地,对于第一虚拟信道,对于由数据指示的数据业务,队列202被预留用于流类别P,队列204被预留用于流类别NP,并且队列206被预留用于流类别CPl。另外,对于第二虚拟信道,对于由Hdr指示的控制业务,队列207被预留用于流类别P,队列208被预留用于流类别NP,队列209被预留用于流类别CPl。类似地,对于第二虚拟信道,对于由数据指示的数据业务,队列211被预留用于流类别P,队列212被预留用于流类别NP,并且队列213被预留用于流类别CPl。因此,对于具有第一业务类型、第一流类别的第一业务以及对于第一虚拟信道,以及具有第二业务类型、第二流类别的第二业务以及对于第二虚拟信道,如果第一业务类型与第二业务类型不同,第一流类别与第二流类别不同,或者第一虚拟信道与第二虚拟信道不同,则存在用于第一业务的第一队列和用于第二业务的第二队列。
如图2(a)所示,具有流类别的业务类型以及用于虚拟信道的每个业务都有其分离的队列。换句话说,基于至少三个不同的参数、业务类型、流类别和虚拟信道来预留队列。随着PCIe数据速率不断提高,队列大小以非线性节奏增加。队列大小的增加可能是由于随着数据速率的扩展而显着增加的延迟所致,这主要归因于采用了诸如重定时器以及增加的带宽之类的信道扩展设备(每个重定时器的往返行程增加了约100ns)。导致队列大小增加的其他因素可能包括表现为多个虚拟信道的应用程序所要求的更高的分区要求(例如,对于诸如存储之类的应用程序,x16 Gen5预计最多可分为8x2s,而x16 Gen 4预计最多可分为4x4s;通过x4 Gen 4或x2 Gen 5可以满足存储设备带宽消耗),更高的最大有效负载大小以及增加的服务质量(QoS)。随着带宽在每代增加一倍,事务层存储需求也增加一倍。随着延迟的增加,它对队列大小产生进一步的乘法效应。随着VC数量的增加,这还会产生另一个乘法效应。有时,事务层的队列大小约占整个PCIe控制器(物理层、链路层和事务层)区域的一半。但是,队列可能具有非常低的利用率。例如,如果一个链路具有很高比例的VC1已发布的写操作,则链路将用尽VC1 P(已发布)队列中的很大一部分,而VC1/VC0中的Cpl(完成)和NP(未发布)队列以及VC0中的已发布队列很少使用。但是,这些队列中的每个队列的大小必须是假定业务的100%是针对这些队列中的每个队列而设置的,并且假设最差的业务类型而设置的(例如,对于数据量很少的报头(如果有的话),以及对于假定最大有效负载大小的数据队列)。在以相同的延迟使带宽增加一倍的同时,预期整体队列大小将增加一倍是合理的。但是,在每个流控制类别和VC上加倍,存储大小可能会再增加一个数量级。增加的队列大小不仅影响硅片面积,而且由于更大的分区大小,也使后端面临挑战。也会对泄漏和有功功率产生功率影响。
本公开的实施例可以跨多个流控制类别共享例如队列空间和VC的资源,以减少总队列大小要求。换句话说,本公开实施例中的队列由共享至少一个参数的多个业务共享,例如,具有相同业务类型、相同流类别或相同VC的两个业务。另外,在PCIe上下文中,损坏的数据链路层数据包(DLLP)被丢弃–因此,信用协商和更新的机制可能需要对此具有弹性。因此,本公开的实施例可以定义跨DLLP损坏/丢弃工作的稳健的机制,以使发送器(Tx,实体发起事务)和接收器(Rx,从Tx接收事务和返还信用的实体)之间的通信保持同步。因此,本公开的实施例可在传递全带宽同时,使得面积较小,芯片成本较低,以及实现更好的特征集和较低功率。在实施例中,信用可指代用于存储信息的队列中的一定数量的存储空间。本公开中的实施例可以依赖公共信用池,例如可以跨各种流控制(FC)类别(例如,已发布、未发布和完成(P/NP/Cpl));业务类型(例如Hdr和/或Data);以及跨不同的VC之间共享的共享队列中的存储空间量。即使这些流控制类别共享一个公共池或共享队列,PCIe排序规则仍可以按照与传统实现中相同或相似的方式跨每个VC的FC类别之间实施。
在实施例中,如图2(b)所示,包括多个队列的分层队列可用于具有显式但最小的P/NP/Cpl Hdr和Data信用,以及具有分别用于每个VC的报头与数据的池化信用(共享的队列)。具体地,可以使用多个分层队列,每个虚拟信道所以两个分层队列。对于VC0,存在用于控制业务的分层队列214和用于数据业务的分层队列219。此外,分层队列(例如,分层队列214)包括共享队列215,以及用于不同流类别的单独地预留的队列(例如,队列216、队列217和队列218)。类似地,对于VCn,存在用于控制业务的分层队列221和用于数据业务的分层队列222。每个分层队列(例如,分层队列214、分层队列219、分层队列221或分层队列222)可以类似于图1(b)所示的分层队列140。
在这种方法中,针对每个FC/VC Hdr/Data以及针对每个Hdr/Data的VC中的池化信用,分别协商(例如,发布和释放)信用。数据链路层数据包(DLLP)将被增强,以具有用于池化信用的附加编码。对此的一种变型是,共享池信用不显式发布,而是由接收器隐式管理。一旦接收到用于FC/VC的事务(例如P Hdr VC0),如果可从共享池或共享队列中获得信用(例如队列中的多个存储空间),则接收器可以返回对应的信用给发送器(即使没有事务从其内部队列中弹出)。在实施例中,Rx可以预留一组计数器,该组计数器跨从发送器接收的请求监视队列利用。当从Rx队列中弹出事务时,Rx将管理将信用退还到自由信用池还是专用信用池。由于Rx正在其自己的计数器中跟踪发送器的世界视图,因此可以轻松检测信用的Tx视图是否低于FC/VC的最小阈值,在这种情况下,信用可以返回到队列的专用池中。将信用返还给Tx的DLLP机制与目前现有的机制相同。
在实施例中,如图2(c)所示,在具有用于每个VC的显式P/NP/Cpl Hdr和Data信用但具有跨所有VC和FC类别,为Hdr与Data分离的共同的信用池的情况下,进一步优化是可能的。具体地,可以存在用于例如装置110的装置的分层队列223和分层队列224。分层队列223包括用于在所有虚拟信道之间和在所有流类别之间共享的用于控制业务的共享队列。另外,分层队列223包括用于每个虚拟信道和流类别的单独预留的队列。分层队列224具有与分层队列223类似的结构。每个分层队列,例如,分层队列223或分层队列224,可以类似于图1(b)所示的分层队列140。图2(c)的信用机制与图2(b)中的方法类似,不同之处在于,所有VC都有两组池化的信用(Hdr和Data)。在Rx处提取出共享的信用池的相同扩展也适用。
在实施例中,如图2(d)所示,可以进一步优化池化方法,并且仅提供可跨FC/VC/Hdr与Data共享的池化信用或共享的队列,其中Hdr与Data是指交通类型。例如,可能存在为具有不同流控制类别和虚拟信道的所有控制业务共享的队列231,为具有不同流控制类别和虚拟信道的所有数据业务共享的队列232,或为具有不同的流控制类别和虚拟信道的所有数据业务和控制业务共享的队列241。每个队列(例如,队列231、队列232或队列241)可以类似于图1(b)所示的队列142。在这种方法中,为了确保前进,每个发送器可以确保其预留用于支持每个FC/VC的可能最大事务大小所需的最小信用,而不将这些信用用于任何其他FC/VC。发送器和接收器的更详细的操作在下文的图3(a)-3(b)中示出。
图3(a)-3(b)示出了根据各种实施例的在发送器(Tx)302和接收器(Rx)304之间的用于跨不同流控制类别和计算机总线中的不同虚拟信道的多个通信业务的资源共享的示例协议,例如协议310或协议320。如图3(a)-3(b)所示的发送器302和接收器304可以是由计算机总线105耦合的装置110或装置120的示例,如图1(b)所示。发送器302和接收器304可以被称为请求方或发起方、链接伙伴或总线代理。可能存在许多不同的用于跨不同流控制类别和计算机总线中的不同的虚拟信道的多个通信业务的资源共享的协议,例如池化机制,其中协议310或协议320只是两个示例池化机制。
在实施例中,如图3(a)所示,协议310在交互301处开始,其中由发送器302向接收器304发送接收器304内的队列的一定数量的预留的存储空间的请求。在交互301处发送的请求可以包括识别业务的信息,例如,流类别、业务类型(Hdr或Data)和虚拟信道。接收器304可以具有类似于图1(b)中所示的队列142的队列,该队列具有多个存储空间,每个存储空间用于存储用于具有流类别的业务类型的信息,以及用于在发送器302与接收器304之间通信的虚拟信道的信息。
此外,在交互303处,协议310包括:响应于发送的请求,由发送器302从接收器304接收回复,该回复包括接收器304的队列中一定数量的预留的空间的指示。在交互303处接收到的回复可以包括相同或相似的信息以识别业务,例如,流类别、业务类型(Hdr或Data)和虚拟信道。可选地,协议310包括交互305,在交互305处在接收器304的队列中预留了一定数量的空间。
在实施例中,如图3(b)所示,协议320示出了确保即使中间的DLLP丢失,也可以保证转发过程的机制。Tx 302和Rx 304之间的显式握手可以确保在Tx 302和Rx 304上都可以使用预留的存储空间。因此,当由Rx 304接收到来自Tx 302的发送发的数据包时,Rx 304具有空间以接收发送的数据包。因此,Tx 302和Rx 304都具有用于发送的数据包的对应空间。例如,Tx 304分别为Hdr与Data维持每个FC/VC的专用的信用计数器,以及公共池计数器(为被预留为专用的数据提供信用)。
在实施例中,DLLP将被扩展为在Tx和Rx方向上为每个FC/VC/Hdr与Data包括一个位。在初始化之后,Tx 302将已经预留一定数量的信用,例如,每个FC/VC/Hdr与Data专用的共享队列中的存储空间。
在实施例中,在交互311处,将请求从Tx 302发送到Rx 304,其中该请求包括Update_FC DLLP,Update_FC DLLP具有为所有FC/VC/Hdr与Data的位集。类似地,在从Rx304发送到Tx 302的任何请求中,请求中的Update_FC DLLP具有相同的位集。在实施例中,如果在任何点Tx 302使用用于任何FC/VC/Hdr/Data的专用信用来存储用于对应的FC/VC/Hdr/Data的信息,则Tx 302将开始发送具有撤销的对应位的Update_FC DLLP。
当Rx 304在交互318处接收到这样的DLLP(没有任何错误)时,Rx 304在向Tx 302发送确认Update_FC DLLP时翻转相应的位。因此,在交互318处,Rx 304指示Rx 304已经记录了Tx 302用尽了用于该FC/VC/Hdr/Data的专用信用的事实。
从这一点开始,Rx将监视两个事件,第一个事件是确保它具有足够的可用空间来考虑该FC/VC/Hdr/Data的预留的信用。在实施例中,Rx可以累积池信用,例如共享队列中的存储空间,并且不将其返回给Tx302。第二事件是Rx 304从Tx 304接收到具有相应位集的Update_FC DLLP,Update_FC DLLP可以在交互319处发送。第二事件用作来自Tx的Tx观察到对应的FC/VC/Hdr/Data的Rx Update_FC DLLP撤销的确认。当第二事件发生时,在交互313,Rx 304将开始发送具有用于该FC/VC/Hdr/Data的位集的Update_FC DLLP,Update_FC DLLP向Tx指示它现在可以为该FC/VC/Hdr/Data补充其专用信用。Rx 304可以确保是否有多个FC/VC/Hdr/Data正在等待专用信用,那么Rx 304可以确保在返回具有相应位集的Update_FC DLLP之前,已经为所有FC/VC/Hdr/Data释放了足够的预留空间。如果对称地针对双向流实现该机制,则每个方向的1位可用于参与此流的每个FC/VC/Hdr/Data。
池化机制可以在链路建立之后立即作为初始流控制信用(Init_FC)协商的一部分,在链接伙伴或总线代理(可以是发送器302或接收器304)之间进行协商。如果链接伙伴不支持池化信用,则必须遵循与现有方法类似的默认信用分配。例如,可以进行一次Init_FC握手,以发出默认的P/NP/Cpl信用,并编码新的Init_FC1以支持与池化的信用以及如果链接伙伴支持信用池,将记入公共池的每个P/NP/Cpl信用的数量一起通告的池化。
附加地或可替代地,只要NP事务的发起者可以吸收NP请求,并且层次结构中没有2.1之前的PCI设备,请求者(以及承担输出方向上对等业务的请求者角色的根端口)可以通告有限的完成信用。本公开的实施例进一步减轻了完成队列大小调整的负担,以仅考虑与其链路伙伴之间的信用循环时间的往返延迟(而不是考虑系统级延迟往返)。
图4(a)-4(b)示出了根据各种实施例的,用于跨不同流控制类别和计算机总线中的虚拟信道的多个通信业务的资源共享的示例过程400和数据结构410。如图1(a)-1(b)所示,过程400和数据结构410可以用于跨多个流控制类别和计算机总线105中的多个虚拟信道的资源共享。
过程400可以从交互401开始。在交互401期间,可以执行操作以由发送器向接收器发送具有多个存储空间的接收器中的队列的一定数量的预留的存储空间的请求。发送器和接收器经由总线相互耦合。队列的每个存储空间用于存储具有流类别的业务类型的和用于在发送器和接收器之间通信的虚拟信道的信息。例如,在交互401处,可以由发送器302执行操作,以向接收器304发送具有多个存储空间的接收器304内的队列的一定数量的预留的存储空间的请求,如图3(a)中的交互301所示。
在交互403期间,响应于发送的请求,可以由发送器执行操作以从接收器接收一定数量的预留的空间的指示。例如,如图3(a)中的交互303所示,在交互403处,可以由发送器302执行操作以响应于发送的请求,从接收器304接收预留的空间的数量的指示。
在交互405期间,可以由发送器执行操作以接收具有流类别的通信类型和用于通信的虚拟信道的多个信息。在交互407期间,可以由发送器执行操作以维持具有流类别的业务类型,以及用于虚拟信道的多个信息的顺序。在图4(b)中进一步图示了用于交互407和交互409的操作的细节。
在实施例中,如图4(b)所示,数据结构410包括用于在每个FC类别内强制执行事务排序(例如信息排序)的链表结构。数据结构410包括存储在共享队列411中的各种指针P1、P2、P3、P4,以及在控制逻辑中实现的各种控制位,这些控制位可以驻留在控制器413中。到达给定VC类别的业务的四个信息(例如,已发布的事务)分别是P1,后跟P2、P3和P4。在一些实施例中,P1、P2、P3和P4是图4(a)的交互405中接收到的具有流类别的通信类型,以及用于通信的虚拟信道的多个信息。因为存储分配是由于存储片而来自公共池,所以这些事务很可能以随机方式占用非连续的条目。在图4(b)的交互407期间,可以建立各种链路以维持多个信息P1、P2、P3和P4的顺序。例如,报头指针(Head ptr)指向P1。如链路421所示,与P1条目相关联的“下一个ptr”指向P2的位置。如链路422所示,与P2相关联的“下一个ptr”指向P3的位置。如链路423中所示,与P3关联的“下一个ptr”指向P4。P4是P FC类别中的最后一个条目,“Tail ptr”也指向P4。这样可以确保按此顺序处理P1、P2、P3和P4。单个位指示事务是否已消耗了包括专用FC类别队列和具有池化信用的共享队列的分层队列中的池信用还是专用FC类别信用。因此,当处理P1并将其从池中删除时,“Head ptr”将指向P2,并且根据发送P1时发送器是使用了池信用还是专用信用将对应于P1的信用在公用池中或在P信用中释放。事务层数据包(TLP)中的单个位可用于指示事务是否使用了池信用。在实施例中,图4(b)中所示的数据结构增强还可以使用单个位来指示该公共池条目是由事务占用还是由进入的事务自由使用。硬件会查询此列表,以便为进入的事务提供空间。每当条目释放时,都会适当地设置池条目的可用性,并在适当的情况下将相应的信用添加到要释放的池中。
图5示出了根据各种实施例的适于用于实践本公开的各个方面的示例设备。设备500可以与本公开的用于通信技术的资源共享结合。如图所示,设备500可以包括一个或多个处理器502,每个处理器具有一个或多个处理器核,或者可选地,具有硬件加速器503(可以是ASIC或FPGA)。在替代实施例中,硬件加速器503可以是处理器502的一部分,或一起集成在SOC上。另外,设备500可以包括可以是许多已知的持久性存储介质中的任何一种的内存504以及包括模块509的数据存储电路508。此外,500可以包括耦合到一个或多个传感器514和一个显示屏513的I/O接口518。
I/O接口518可以包括发送器523和接收器517。此外,设备500可以包括通信电路505,通信电路505包括收发器(Tx)511和网络接口控制器(NIC)512。这些元件可以经由系统总线506彼此耦合,系统总线506可以代表一个或多个总线。在多条总线的情况下,它们可以由一个或多个总线网桥(未示出)桥接。设备531可以耦合到系统总线506,并且设备535可以耦合到计算机总线539。设备531可以包括接口533,并且设备535可以包括接口537。在实施例中,计算机总线506或计算机总线539可以是如图1(a)-1(b)所示的计算机总线105的示例,而耦合到计算机总线506或计算机总线539的各种设备是设备101和103的示例。例如,处理器502、加速器503、内存504、存储器508、设备531、设备518、通信电路505和/或设备535可包括类似于如图1(b)所示的队列142的队列,以及如先前所描述的相关联的逻辑/元件以共享用于通信的队列142中的空间。
在实施例中,处理器502(也称为“处理器电路502”)可以是一个或多个处理元件,被配置为通过执行指令来执行基本的算术、逻辑和输入/输出操作。处理器电路502可以被实现为独立的系统/设备/封装或被实现为现有系统/设备/封装的一部分。处理器电路502可以是一个或多个微处理器、一个或多个单核处理器、一个或多个多核处理器,一个或多个多线程处理器、一个或多个GPU、一个或多个超低电压处理器、一个或多个嵌入式处理器、一个或多个DSP,一个或多个FPD(硬件加速器)(例如FPGA)、结构化ASIC、可编程SoC(PSoC)等,和/或其他处理器或处理/控制电路。处理器电路502可以是SoC的一部分,在SoC中本公开讨论的处理器电路502和其他组件形成为单个IC或单个封装。作为示例,处理器电路502可以包括一个或多个Intel 或处理器;Advanced Micro Devices(AMD)Accelerated Processing Units(APU)、或处理器;Apple Inc.A系列、S系列、W系列等处理器;Qualcomm 处理器;Samsung处理器;等。
在实施例中,处理器电路502可以包括传感器中枢,其可以通过处理从一个或多个传感器514获得的数据而用作协处理器。传感器中枢可以包括被配置为通过执行算术、逻辑和输入/输出操作整合从一个传感器中的每个传感器获得的数据的电路。在实施例中,传感器中枢可能能够对获得的传感器数据加时间戳,响应于对这样的数据的查询而将传感器数据提供给处理器电路502,缓冲传感器数据,将传感器数据连续地流传输到包括一个或多个传感器514中的每个传感器的独立流的处理器电路502,基于预定的阈值或条件/触发和/或其他类似的数据处理功能来报告传感器数据。
在实施例中,内存504(也称为“存储电路504”等)可以是被配置为存储用于操作计算机设备500的数据或逻辑的电路。存储电路504可以包括多个存储器设备,用于提供给定数量的系统存储。作为示例,存储电路504可以是任何合适类型、数量的以任何已知的适合的实现方式配置的易失性存储设备(例如,随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SAM)等)和非易失性存储设备(例如,只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、反熔丝等)数量和/或其组合。在各种实施方式中,各个存储设备可以由任意数量的不同封装类型形成,例如单芯片封装(SDP)、双芯片封装(DDP)或四芯片封装、双列直插式存储器模块(DIMM)(例如microDIMM或MiniDIMM)和/或任何其他类似的存储设备。为了提供例如数据、应用程序、操作系统等信息的持久存储,存储电路504可以包括一个或多个大容量存储设备,例如固态磁盘驱动器(SSDD);闪存卡(例如SD卡、microSD卡、xD图片卡等)以及USB闪存驱动器;与处理器电路502相关联的芯片上存储器或寄存器(例如,在低功率实现中);微型硬盘驱动器(HDD);和等的三维交叉点(3D XPOINT)存储器。
在使用FPD的情况下,处理器电路502和存储电路504(和/或数据存储电路508)可以包括逻辑块或逻辑结构、内存单元、输入/输出(I/O)块以及可以进行编程以执行本公开讨论的示例实施例的各种功能的其他互连资源。内存单元可用于将数据存储在查找表(LUT)中,查找表由处理器电路502使用以实现各种逻辑功能。内存单元可以包括各种级别的包括但不限于EPROM、EEPROM、闪存、SRAM、反熔丝等的存储器/内存的任何组合。
在实施例中,具有共享或相应控制器的数据存储电路508(也称为“存储电路508”等)可以提供诸如模块509,操作系统等的信息的持久存储。数据存储电路508可以被实现为固态驱动器(SSD);固态磁盘驱动器(SSDD);串行AT附件(SATA)存储设备(例如SATA SSD);闪存驱动器;闪存卡(例如SD卡、microSD卡、xD图片卡等),以及USB闪存驱动器;三维交叉点(3D Xpoint)存储设备;与处理器电路502相关联的芯片上存储器或寄存器;硬盘驱动器(HDD);微型HDD;电阻变化存储器;相变存储器;全息存储器或化学存储器等。如图所示,数据存储电路508包括在计算机设备500中。然而,在其他实施例中,数据存储电路508可以被实现为与计算机设备500的其他元件分离的一个或多个设备。
在一些实施例中,数据存储电路508可以包括操作系统(OS)(未示出),该操作系统可以是通用操作系统或专门为计算机设备500编写和定制的操作系统。OS可能包括一个或多个驱动器、库和/或应用程序编程接口(API),它们为模块509和/或控制系统配置提供程序代码和/或软件组件,以控制一个或多个传感器514和/或从中获取数据或处理数据。
模块509可以是用于执行计算机设备500的各种功能的软件模块/组件。在处理器电路502和存储电路504包括硬件加速器(例如,FPGA单元、硬件加速器503)以及处理器核心的实施例中,硬件加速器(例如,FPGA单元)可以使用逻辑预先配置(例如,使用适当的位流、逻辑块/结构等)以执行本公开中实施例的某些功能(代替采用由处理器核执行的编程指令)。例如,模块509可以包括用于关于显示屏513、发送器523和接收器517讨论的对应实体的逻辑。
计算机设备500的组件可以通过总线506彼此通信。总线506可以包括多种技术,例如本地互连网络(LIN);行业标准架构(ISA);扩展ISA(EISA);PCI;PCI扩展(PCIx);PCIe;集成电路间(I2C)总线;并行小型计算机系统接口(SPI)总线;通用应用程序编程接口(CAPI);点对点接口;电力总线;专有总线(例如,超路径接口(UPI),加速器链接(IAL)或基于SoC的接口中使用的其他专有总线);或许任何他技术。在一些实施例中,总线506可以是控制器局域网(CAN)总线系统、时间触发协议(TTP)系统或FlexRay系统,其可以允许各种设备(例如,一个或多个传感器514等)使用消息或框架相互通信。
通信电路505可以包括用于与无线网络或有线网络进行通信的电路。例如,通信电路505可以包括收发器(Tx)511和网络接口控制器(NIC)512。通信电路505可以包括专用于特定无线通信协议的一个或多个处理器(例如,基带处理器、调制解调器等)。
可以包括NIC 512以提供到网络和/或其他设备的有线通信链路。有线通信可以提供以太网连接、USB上的以太网等等,或者可以基于其他类型的网络,例如DeviceNet、ControlNet、Data Highway+、PROFIBUS或PROFINET等。可以包括附加的NIC 512以允许连接到第二网络(未示出)或其他设备,例如,第一NIC 512通过以太网向网络提供通信,第二NIC512通过例如包括个人计算机(PC)设备的个人局域网(PAN)的另一种类型的网络向其他设备提供通信。在一些实施例中,设备500的各种组件,例如一个或多个传感器514等,可以经由上文讨论的NIC 512而不是经由下文讨论的I/O电路518连接到处理器502。
Tx 511可以包括一个或多个无线电以与网络和/或其他设备进行无线通信。Tx511可以包括硬件设备,硬件设备能够通过固态或非固态介质使用调制的电磁辐射与有线网络和/或其他设备进行通信。这样的硬件设备可以包括开关、滤波器、放大器、天线元件等,以通过产生或以其他方式产生无线电波以将数据发送到一个或多个其他设备并将接收到的信号转换为可用信息来促进空中通信(OTA),可用信息例如是可以提供给计算机设备500的一个或多个其他组件的数字数据。在一些实施例中,设备500的各个组件(例如一个或多个传感器514等)可以经由上文讨论的Tx 511而不是经由下文讨论的I/O电路518连接到设备500。在一示例中,一个或多个传感器514可以经由短距离通信协议耦合到设备500。
Tx 511可以包括与任何数量的3GPP(第3代合作伙伴计划)规范,尤其是长期演进(LTE)、高级长期演进(LTE-A)、高级长期演进Pro(LTE-A Pro)和第五代(5G)新无线电(NR)兼容的一个或多个无线电。应当注意,可以选择与许多其他固定的、移动的或卫星通信技术和标准兼容的无线电。这些可以包括例如任何蜂窝广域无线通信技术,其一般可以包括例如5G通信系统、全球移动通信系统(GSM)无线电通信技术、通用数据包无线电服务(GPRS)无线电通信技术或GSM演进增强数据速率(EDGE)无线电通信技术。可以使用的其他第3代合作伙伴计划(3GPP)无线电通信技术包括UMTS(通用移动电信系统)、FOMA(多媒体访问自由)、3GPP LTE(长期演进)、3GPP LTE高级(高级长期演进)、3GPP LTE高级Pro(长期演进高级专业版)、CDMA2000(码分多址2000)、CDPD(蜂窝数字数据包数据)、Mobitex、3G(第3代)、CSD(电路交换数据)、HSCSD(高速电路交换数据)、UMTS(3G)(通用移动电信系统(第3代))、W-CDMA(UMTS)(宽带码分多址(通用移动电信系统))、HSPA(高速数据包接入)、HSDPA(高速下行链路数据包接入)、HSUPA(高速上行链路数据包接入)、HSPA+(高速数据包接入Plus)、UMTS-TDD(通用移动电信系统-时分双工)、TD-CDMA(时分-码分多址)、TD-SCDMA(时分-同步码分多址)、3GPP Rel.8(Pre-4G)(第3代合作伙伴计划版本8(Pre-4th Generation))、3GPPRel.9(第3代合作伙伴计划版本9)、3GPP Rel.10(第3代合作伙伴计划版本10)、3GPPRel.11(第3代合作伙伴计划版本11)、3GPP Rel.12(第3代合作伙伴计划版本12)、3GPPRel.13(第3代合作伙伴计划版本13)3GPP Rel.14(第3代合作伙伴计划版本14)、3GPP LTEExtra、LTE许可辅助访问(LAA)、UTRA(UMTS地面无线电接入)、E-UTRA(演进的UMTS地面无线电接入)、LTE高级(4G)(高级长期演进(第4代))、cdmaOne(2G)、CDMA2000(3G)(码分多址2000(第3代))、EV-DO(经过优化的演进数据或仅演进数据)、AMPS(1G)(高级移动电话系统(第1代))、TACS/ETACS(总访问通信系统/扩展总访问通信系统)、D-AMPS(2G)(数字AMPS(第二代))、PTT(即按即说)、MTS(移动电话系统)、IMTS(改进的移动电话系统)、AMTS(高级移动电话系统)、OLT(挪威语为Offentlig Landmobil Telefoni,公共陆地移动电话)、MTD(瑞典语为Mobiltelefonisystem D或移动电话系统D的缩写)、Autotel/PALM(公共自动陆地移动设备)、ARP(芬兰语为Autoradiopuhelin,“汽车收音机”)、NMT(北欧移动电话)、Hicap(NTT(日本电报和电话)的大容量版本)、CDPD(蜂窝数字数据包数据)、Mobitex、DataTAC、iDEN(集成数字增强网络)、PDC(个人数字蜂窝)、CSD(电路交换数据)、PHS(个人手持电话系统)、WiDEN(宽带集成数字增强网络)、iBurst、未许可移动访问(UMA,也称为3GPP通用访问网络或GAN标准))、无线千兆联盟(WiGig)标准、mmWave标准(在10-90GHz和高于10-90GHz运行的无线系统,例如WiGig,IEEE 802.11ad、IEEE 802.11ay等)。除了上文列出的标准之外,任何数量的卫星上行链路技术都可以用于上行链路收发器,例如,包括符合ITU(国际电信联盟)或ETSI(欧洲电信标准协会)发布的标准的无线电等。因此,本公开提供的示例被理解为可应用于现有的和尚未制定的各种其他通信技术。前述协议的实现、组件和细节可以是本领域中已知的,并且为了简洁起见在此省略。
输入/输出(I/O)接口518可以包括例如外部扩展总线(例如,通用串行总线(USB)、FireWire、Thunderbolt、PCI/PCIe/PCIx等),用于将计算机设备500与诸如一个或多个传感器514等的外部组件/设备连接的电路。I/O接口电路518可以包括任何合适的接口控制器和连接器,以互连处理器电路502、内存电路504、数据存储电路508、通信电路505和计算机设备500的其他组件中的一个或多个。接口控制器可以包括,但不限于内存控制器、存储控制器(例如,独立磁盘冗余阵列(RAID)控制器、基板管理控制器(BMC)、输入/输出控制器、主机控制器等)。连接器可以包括例如总线(例如,总线506)、端口、插槽、跳线、互连模块、插座、模块化连接器等。I/O电路518可以经由有线连接(例如,使用USB、FireWire、Thunderbolt、RCA、视频图形阵列(VGA)、数字视觉接口(DVI)和/或迷你-DVI、高清多媒体接口(HDMI)、S-Video等)将设备500与一个或多个传感器514等耦接。
一个或多个传感器514可以是被配置为检测事件或环境变化,将检测到的事件转换为电信号和/或数字数据,以及将信号/数据传输/发送到计算机设备500的任何设备。一个或多个传感器514可以是用于提供计算机生成的感官输入的传感器。一个或多个传感器514中的一些可以是用于运动和/或物体检测的传感器。这种一个或多个传感器514的示例可以尤其包括电荷耦合器件(CCD)、互补金属-氧化物-半导体(CMOS)有源像素传感器(APS)、无透镜图像捕获设备/相机、热成像(红外)相机、光成像检测与测距(LIDAR)系统等。在一些实施方式中,一个或多个传感器514可以包括具有孔径元件的阵列的无透镜图像捕获机构,其中穿过孔径元件的阵列的光限定图像的像素。在实施例中,一个或多个运动检测传感器514可以与光产生装置耦合或相关联,例如,一个或多个红外投影仪以将一格红外光投射到场景上,在场景中红外相机可以记录反射的红外光以计算深度信息。
一个或多个传感器514中的一些可以用于位置和/或方向检测、周围/环境状况检测等。这种一个或多个传感器514的示例可以尤其包括具有压电、压阻和/或电容组件的微机电系统(MEMS),其可以用于确定与计算机设备500有关的环境条件或位置信息。在实施例中,MEMS可以包括3轴加速度计、3轴陀螺仪和/或磁力计。在一些实施例中,一个或多个传感器514还可包括一个或多个重力计、高度计、气压计、接近传感器(例如,红外辐射检测器等)、深度传感器、环境光传感器、热传感器(温度计)、超声波收发器等)。
这些元件中的每一个,例如一个或多个处理器502、硬件加速器503、内存504、包括模块509的数据存储电路508、输入/输出接口518、一个或多个传感器514、包括Tx 511的通信电路505、NIC 512、系统总线506、计算机总线539、设备531、设备535可以执行其在本领域中已知的常规功能。另外,如结合图1-4所描述的,它们可以被用来存储和托管实现与跨多个流控制类别和计算机总线中的虚拟信道的资源共享相关联的操作的编程指令的执行,和/或提供当前公开中描述的实施例的能力的其他功能。多种元件可以由由处理器502支持的汇编指令或可以被编译成这样的指令的高级语言(例如,C语言)来实现。未以软件实现的与设备500相关联的操作可以例如经由硬件加速器503以硬件实现。
这些元件502-539的数量、能力和/或容量可以根据设备500被配置为支持的其他设备的数量而变化。否则,元件502-539的构造是已知的,因此将不再进一步描述。
如本领域技术人员将理解的,本公开可以体现为方法或计算机程序产品。因此,除了如先前描述的以硬件实现之外,本公开还可以采取完全软件实施例(包括固件、常驻软件、微代码等)或可以将软件和通常都被称为“电路”、“模块”或“系统”的硬件方面结合的实施例的形式。
此外,本公开可以采取体现在任何有形或非暂时性表达介质中的计算机程序产品的形式,该介质中体现有计算机可用程序代码。图6示出了示例计算机可读非暂时性存储介质,该示例计算机可读非暂时性存储介质可以适合于用于存储指令,响应于装置执行该指令而导致装置实施本公开的所选方面。如图所示,非暂时性计算机可读存储介质602可以包括多个编程指令604。编程指令604可以被配置为响应于编程指令的执行而使例如设备600的设备能够执行例如,如图1-5所示与跨多个流控制类别和计算机总线中的虚拟信道资源共享相关联的各种操作。
在替代实施例中,可将编程指令604替代地设置在多个计算机可读非暂时性存储介质602上。在替代实施例中,编程指令604可以被设置在诸如信号之类的计算机可读暂时性存储介质602上。可以利用一种或多种计算机可用或计算机可读介质的任意组合。计算机可用或计算机可读介质可以是例如但不限于电、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体示例(非详尽列表)将包括以下内容:具有一根或多根电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM),只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CDROM)、光学存储设备、传输介质(例如支持互联网或局域网的介质)或磁存储设备。应注意,计算机可用或计算机可读介质甚至可以是纸或在其上打印程序的其他合适介质,因为可以例如经由光学扫描纸或其他介质来电子地捕获程序,然后对其进行编译、解译或必要时以其他适当方式处理,然后存储在计算机内存中。在本公开的上下文中,计算机可用或计算机可读介质可以是可以包含、存储、通信、传播或传输供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合的程序的任何介质。计算机可用介质可以在基带中或作为载波的一部分包括传播的数据信号,计算机可用程序代码在数据信号中实现。可以使用任何适当的介质(包括但不限于无线、有线、光纤电缆、RF等)来传输计算机可用程序代码。
用于执行本公开的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,所述编程语言包括诸如Java、Smalltalk、C++之类的面向对象的编程语言以及诸如“C”编程语言或类似的编程语言的常规程序编程语言。程序代码可以完全在用户计算机上、部分在用户计算机上、作为独立软件包、部分在用户计算机上并且部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以与外部计算机建立连接(例如,通过使用互联网服务提供者的互联网)。
参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本公开。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的方框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,从而使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图方框中指定的功能/动作的模块。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机或其他可编程数据处理装置以特定方式工作,从而使得存储在计算机可读介质中的指令产生包括指令模块的制品,该指令模块实现在流程图和/或框图方框中指定的功能/动作。
计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上,以使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图方框中指定的功能/动作的过程。
附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或框图中的每个方框可以代表代码的模块、区段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。还应注意,在一些替代实施方式中,方框中指出的功能可以不按图中指出的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图图示的每个方框以及框图和/或流程图图示中的方框的组合可以通过执行指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令组合来实现。如本公开所使用的,“计算机实现的方法”可以指由一个或多个处理器、具有一个或多个处理器的计算机系统、诸如智能电话、平板电脑、膝上型计算机、机顶盒、游戏机等的移动设备(可以包括一个或多个处理器)执行的任何方法。
实施例可以被实现为计算机过程、计算系统或诸如计算机可读介质的计算机程序产品之类的制品。该计算机程序产品可以是计算机系统可读并且编码用于执行计算机过程的计算机程序指令的计算机存储介质。
下文权利要求中的所有模块或步骤加上功能元件的对应结构、材料、动作和等同物旨在包括用于与指定所要求保护的其他元件组合地执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本公开的描述,但是其并不旨在是穷举的或将本公开限于所公开的形式。在不脱离本公开的范围和精神的情况下,许多修改和变型对于本领域技术人员将是显而易见的。选择和描述实施例是为了最好地解释本公开的原理和实际应用,并使本领域的其他普通技术人员能够理解本公开的具有适于预期的特定用途的各种修改的实施例。
因此,已经描述了本公开的各种示例实施例,其包括但不限于:
示例
示例1可以包括一种用于通信的装置,该装置包括:具有多个存储空间的队列,其中队列包括第一空间和第二空间,第一空间用于存储:用于具有第一流类别的第一业务类型以及用于在第一通信实体与第二通信实体之间通信的第一虚拟信道的第一信息,第一通信实体与第二通信实体经由该装置和经由通信总线与装置耦接的另一装置进行通信,第二空间用于存储用于具有第二流类别的第二业务类型和用于在第三通信实体与第四通信实体之间通信的第二虚拟信道的第二信息,第三通信实体与第四通信实体经由两个装置进行通信,并且其中第一业务类型与第二业务类型不同,第一流类别与第二流类别不同,或第一虚拟信道与第二虚拟信道不同;以及控制器,耦合到队列以管理队列的操作。
示例2可以包括示例1和/或本公开的一些其他示例的装置,其中第一业务类型或第二业务类型包括数据业务或控制业务;并且其中,第一流类别或第二流类别包括发布类别、非发布类别、完成类别或服务质量类别。
示例3可以包括示例1和/或本公开的一些其他示例的装置,其中第一通信实体或第二通信实体中的一个和第三通信实体或第四通信实体中的一个是相同的通信实体。
示例4可以包括示例1和/或本公开的一些其他示例的装置,其中第一虚拟信道或第二虚拟信道包括通信总线的多个链路。
示例5可以包括示例1和/或本公开的一些其他示例的装置,其中,第一通信实体和第二通信实体之间的通信包括多个虚拟信道。
示例6可以包括示例1和/或本公开的一些其他示例的装置,其中,队列是第一队列,并且其中,装置还包括第二队列,并且其中,第二队列被预留以存储用于第三业务类型、第三流类别或用于经由通信总线在第五通信实体与第六通信实体之间通信的第三虚拟信道的第三信息。
示例7可以包括示例6和/或本公开的一些其他示例的装置,其中第一队列用于数据业务,并且第二队列用于控制业务。
示例8可以包括示例1和/或本公开的一些其他示例的装置,其中,为了管理队列的操作,控制器被配置为:监视队列的未使用容量;预留多个空间,其中每个空间可释放以存储用于具有流类别的业务类型,以及用于信道的虚拟通信的信息;释放多个空间中的两个,以用作第一空间和第二空间;或者将队列的状态与设置在其他装置中的相应队列的状态进行同步。
示例9可以包括示例8和/或本公开中的一些其他示例的装置,其中预留和未释放的空间是未使用的空间,并且该装置还包括:一个或多个计数器,其中基于一个或多个计数器中的信息控制器用于执行操作以监视未使用的空间,留出一定数量的预留的空间,释放多个空间中的两个或同步队列的状态。
示例10可以包括示例8和/或本公开中的一些其他示例的装置,其中,控制器还被配置为:向其他装置发送用于在其他装置中设置一定数量的队列的预留的和未释放的空间的请求。
示例11可以包括示例10和/或本公开的一些其他示例的装置,其中控制器还被配置为:响应发送的请求,接收设置在其他装置中的一定数量的队列中的预留的和未释放的空间的指示。
示例12可以包括示例10和/或本公开中的一些其他示例的装置,其中,控制器还被配置为:接收具有流类别的业务类型和用于通信的虚拟信道的多个信息;以及维持具有流类别的业务类型和用于虚拟信道的多个信息的顺序。
示例13可以包括示例1和/或本公开中的一些其他示例的装置,其中,该装置包括发送器或接收器;并且其中第一通信实体或第二通信实体包括中央处理器单元(CPU)、处理器核心、鼠标、磁盘、键盘、存储设备或输入/输出控制器,并且其中第一通信实体和第二通信实体在同一计算机上。
示例14可以包括示例1和/或本公开的一些其他示例的装置,其中,第一信息或第二信息包括用于选自于物理层、链路层、事务层、路由层、传输层或应用层的协议层的消息、数据包或位信息。
示例15可以包括示例1和/或本公开的一些其他示例的装置,其中,通信总线是PCI总线、PCI扩展总线(PCI-X)、PCI express总线、通用串行总线(USB)、并行高级技术附件(PATA)总线、串行ATA(SATA)总线、互连集成电路(I2C)总线、IEEE 1394接口(FireWire)总线、小型计算机系统接口(SCSI)总线、可缩放一致性接口(SCI)总线。
示例16可以包括一种通信方法,该方法包括:由发送器向接收器发送用于在具有多个存储空间的接收器中的队列的一定数量的预留的存储空间的请求,每个存储空间用于存储用于具有流类别的业务类型和用于在发送器与接收器之间进行通信的虚拟信道的信息,发送器与接收器经由总线彼此耦合;响应于发送的请求,由发送器从接收器接收一定数量的预留空间的指示。
示例17可以包括示例16和/或本公开的一些其他示例的方法,该方法还包括:由发送器向接收器发送指示,以指示已在发送器中设置的队列中已预留一定数量的空间,以存储用于具有流类别的业务类型,以及用于发送器与接收器之间通信的虚拟信道的信息。
示例18可以包括示例17和/或本公开的一些其他示例的方法,该方法还包括:由发送器监视设置在发送器中的队列的未使用容量;或由发送器将发送器中设置的队列的状态与在接收器中设置的队列的状态进行同步。
示例19可以包括示例16和/或本公开的一些其他示例的方法,该方法还包括:由发送器接收具有流类别的业务类型,以及用于通信的虚拟信道的多个信息;以及由发送器维持具有流类别的业务类型,以及用于虚拟信道的多个信息的顺序。
示例20可以包括示例16和/或本公开的一些其他示例的方法,其中,发送器或接收器包括中央处理器单元(CPU)、处理器核、鼠标、磁盘、键盘、存储设备或输入/输出控制器,并且其中总线是PCI总线、PCI扩展总线(PCI-X)、PCI express总线、通用串行总线(USB)、并行高级技术附件(PATA)总线、串行ATA(SATA)总线、集成电路(I2C)总线、IEEE 1394接口(FireWire)总线、小型计算机系统接口(SCSI)总线、可缩放一致性接口(SCI)总线。
示例21可以包括一种用于进行计算的装置,该装置包括:印刷电路板(PCB),具有在外围组件互连(PCI)总线、PCI扩展总线(PCI-X)或PCI Express总线中选定的一种总线;第一总线代理,设置在PCB上并耦合到总线;第二总线代理,设置在PCB上并耦合到总线,并且其中,第一总线代理或第二总线代理中选定的至少一个总线代理包括:具有多个存储空间的队列,队列包括第一空间和第二空间,第一空间用于存储用于具有第一流类别的第一业务类型以及用于在第一总线代理与第二总线代理之间通信的第一虚拟信道的第一信息,第二空间用于存储用于具有第二流类别的第二业务类型以及用于在第一总线代理与第二总线代理之间通信的第二虚拟信道的第二信息,其中第一业务类型与第二业务类型不同,第一流类别与第二流类别不同,或第一虚拟信道与第二虚拟信道不同;以及控制器,耦合到队列以管理队列的操作。
示例22可以包括示例21和/或本公开的一些其他示例的装置,其中队列是第一队列,并且其中,第一总线代理或第二总线代理中选定的一个总线代理还包括第二队列,并且其中,第二队列被预留以存储用于具有第三流类别的第三业务类型或用于经由计算机总线在第一总线代理和第二总线代理之间通信的第三虚拟信道的第三信息。
示例23可以包括示例21和/或本公开的一些其他示例的装置,其中,为了管理队列的操作,控制器被配置为:监视队列的未使用的容量;或预留多个空间,其中每个空间是可释放的以存储用于具有第三流类别的第三业务类型以及用于通信的第三虚拟信道的第三信息。
示例24可以包括示例21和/或本公开中的一些其他示例的装置,其中,控制器还被配置为:接收具有第一流类别或第二流类别的第一业务类型或第二业务类型的,以及用于通信的第一虚拟信道或通信的第二虚拟信道的多个信息;以及维持具有第一流类别或第二流类别的第一业务类型或第二业务类型的,以及用于第一虚拟信道或第二虚拟信道的多个信息的顺序。
示例25可以包括示例21和/或本公开的一些其他示例的装置,其中,第一业务类型或第二业务类型包括数据业务或控制业务;并且其中第一流类别或第二流类别包括发布类别、非发布类别、完成类别或服务质量类别。
示例26可以包括一种装置,该装置包括:用于管理跨多个流控制类别和计算机总线中的虚拟信道的资源共享的装置。
示例27可以包括示例26和/或本公开的一些其他示例的装置,其中资源共享包括跨多个流控制类别共享队列空间和VC。
示例28可以包括一种装置,该装置包括用于执行在本公开的任何示例中描述或与本公开的任何示例相关的方法,或本公开描述的任一其他方法或过程。
示例29可以包括一种或多种非暂时性计算机可读介质,其包括指令,以在由电子设备的一个或多个处理器执行该指令后,使该电子设备执行本公开任何示例中描述的或与本公开任何示例相关的方法,或本公开的任何其他方法或过程的一个或多个要素。
示例30可以包括一种装置,该装置包括逻辑、模块或电路,以执行本公开任何示例描述的或与本公开任何示例相关的方法,或本公开描述的任何其他方法或过程中的一个或多个元素。
示例31可以包括如本公开中的任何示例中所描述的或与本公开中的任何示例相关的方法、技术或过程,或其部分。
示例32可以包括一种装置,该装置包括:一个或多个处理器和一个或多个计算机可读介质,该计算机可读介质包括指令,这些指令在由一个或多个处理器执行时使一个或多个处理器执行在本公开的任何示例中描述的或与之相关的方法、技术或过程或其部分。
示例33可以包括如本公开中的任何示例所描述的或与之相关的信号,或其部分。
对一个或多个实施方式的前述描述提供了说明和描述,但并不旨在穷举或将实施方式的范围限制为所公开的精确形式。鉴于以上教导,修改和变化是可能的,或者修改和变化可以从各种实施例的实践中获得。
Claims (25)
1.一种用于通信的装置,包括:
具有多个存储空间的队列,其中所述队列包括第一空间和第二空间,所述第一空间用于存储用于具有第一流类别的第一业务类型以及用于在第一通信实体与第二通信实体之间通信的第一虚拟信道的第一信息,所述第一通信实体与所述第二通信实体经由所述装置以及经由通信总线与所述装置耦接的另一装置进行通信,所述第二空间用于存储:用于具有第二流类别的第二业务类型以及用于在第三通信实体与第四通信实体之间通信的第二虚拟信道的第二信息,所述第三通信实体与所述第四通信实体经由所述两个装置进行通信,并且其中,所述第一业务类型与所述第二业务类型不同,所述第一流类别与所述第二流类别不同,或所述第一虚拟信道与所述第二虚拟信道不同;以及
控制器,耦合到所述队列以管理所述队列的操作。
2.根据权利要求1所述的装置,其中,所述第一业务类型或所述第二业务类型包括数据业务或控制业务;并且其中,所述第一流类别或所述第二流类别包括发布类别、非发布类别、完成类别或服务质量类别。
3.根据权利要求1-2任意一项所述的装置,其中,所述第一通信实体或所述第二通信实体中的一个和所述第三通信实体或所述第四通信实体中的一个是相同的通信实体。
4.根据权利要求1-2任意一项所述的装置,其中,所述第一虚拟信道或所述第二虚拟信道包括所述通信总线的多个链路。
5.根据权利要求1-2任意一项所述的装置,其中,所述第一通信实体与所述第二通信实体之间的通信包括多个虚拟信道。
6.根据权利要求1-2任意一项所述的装置,其中,所述队列是第一队列,并且其中,所述装置还包括第二队列,并且其中,所述第二队列被预留以存储用于第三业务类型、第三流类别或用于经由所述通信总线在第五通信实体与第六通信实体之间通信的第三虚拟信道的第三信息。
7.根据权利要求6所述的装置,其中,所述第一队列用于数据业务,并且所述第二队列用于控制业务。
8.根据权利要求1-2任意一项所述的装置,其中,为了管理所述队列的操作,所述控制器被配置为:
监视所述队列的未使用容量;
预留多个空间,其中每个空间是可释放的以存储具有流类别的业务类型和用于通信的虚拟信道的信息;
释放所述多个空间中的两个,以用作第一空间和第二空间;或
将所述队列的状态与设置在其他装置中的队列中的相应队列的状态进行同步。
9.根据权利要求8所述的装置,其中,所述预留的和未释放的空间是未使用的空间,并且所述装置还包括:
一个或多个计数器,其中基于一个或多个计数器中的信息所述控制器用于执行操作以:监视未使用的空间,留出一定数量的预留的空间,或者释放所述多个空间中的两个或同步所述队列的状态。
10.根据权利要求8所述的装置,其中,所述控制器还被配置为:
向所述其他装置发送用于在所述其他装置中设置的一定数量的所述队列的预留的和未释放的空间的请求。
11.根据权利要求10所述的装置,其中,所述控制器还被配置为:
响应所述发送的请求,接收设置在所述其他装置中的一定数量的所述队列中的预留的和未释放的空间的指示。
12.根据权利要求10所述的装置,其中,所述控制器还被配置为:
接收具有流类别的业务类型和用于通信的虚拟信道的多个信息;以及
维持具有所述流类别的业务类型和用于所述虚拟信道的多个信息的顺序。
13.根据权利要求1-8任意一项所述的装置,其中,所述装置包括发送器或接收器;并且其中所述第一通信实体或所述第二通信实体包括中央处理器单元(CPU)、处理器核心、鼠标、磁盘、键盘、存储设备或输入/输出控制器,并且其中所述第一通信实体和所述第二通信实体在同一计算机上。
14.根据权利要求1-8任意一项所述的装置,其中,所述第一信息或所述第二信息包括用于选自于物理层、链路层、事务层、路由层、传输层或应用层的协议层的消息、数据包或位信息。
15.根据权利要求1-8任意一项所述的装置,其中,所述通信总线是PCI总线、PCI扩展总线(PCI-X)、PCI express总线、通用串行总线(USB)、并行高级技术附件(PATA)总线、串行ATA(SATA)总线、互连集成电路(I2C)总线、IEEE 1394接口(FireWire)总线、小型计算机系统接口(SCSI)总线、可缩放一致性接口(SCI)总线。
16.一种用于通信的方法,包括:
由发送器向接收器发送用于在具有多个存储空间的所述接收器中的队列的一定数量的预留的存储空间的请求,每个存储空间用于存储用于具有流类别的业务类型和用于在所述发送器与所述接收器之间进行通信的虚拟信道的信息,所述发送器与所述接收器经由总线彼此耦合;
响应于所述发送的请求,由所述发送器从所述接收器接收一定数量的预留空间的指示。
17.根据权利要求16所述的方法,还包括:
由所述发送器向所述接收器发送指示,以指示已在所述发送器中设置的队列中已预留所述一定数量的空间,以存储用于具有流类别的业务类型和用于所述发送器与所述接收器之间通信的虚拟信道的信息。
18.根据权利要求17所述的方法,还包括:
由所述发送器监视设置在所述发送器中的队列的未使用容量;或
由所述发送器将所述发送器中设置的队列的状态与在所述接收器中设置的队列的状态进行同步。
19.根据权利要求16-18任意一项所述的方法,还包括:
由所述发送器接收具有所述流类别的业务类型和用于所述通信的虚拟信道的多个信息;以及
由所述发送器维持具有所述流类别的业务类型和用于所述虚拟信道的多个信息的顺序。
20.根据权利要求16-18任意一项所述的方法,其中,所述发送器或所述接收器包括中央处理器单元(CPU)、处理器核、鼠标、磁盘、键盘、存储设备或输入/输出控制器,并且其中所述总线是PCI总线、PCI扩展总线(PCI-X)、PCI express总线、通用串行总线(USB)、并行高级技术附件(PATA)总线、串行ATA(SATA)总线、集成电路(I2C)总线、IEEE 1394接口(FireWire)总线、小型计算机系统接口(SCSI)总线、可缩放一致性接口(SCI)总线。
21.一种用于计算的装置,包括:
印刷电路板(PCB),具有在外围组件互连(PCI)总线、PCI扩展总线(PCI-X)或PCIExpress总线中选定的一种总线;
第一总线代理,设置在所述PCB上并耦合到所述总线;
第二总线代理,设置在所述PCB上并耦合到所述总线,并且
其中,所述第一总线代理或所述第二总线代理中选定的至少一个总线代理包括:
具有多个存储空间的队列,所述队列包括第一空间和第二空间,所述第一空间用于存储用于具有第一流类别的第一业务类型以及用于在所述第一总线代理与所述第二总线代理之间通信的第一虚拟信道的第一信息,所述第二空间用于存储用于具有第二流类别的第二业务类型以及用于在所述第一总线代理与所述第二总线代理之间通信的第二虚拟信道的第二信息,其中所述第一业务类型与所述第二业务类型不同,所述第一流类别与所述第二流类别不同,或所述第一虚拟信道与所述第二虚拟信道不同;以及
控制器,耦合到所述队列以管理所述队列的操作。
22.根据权利要求21所述的装置,其中,所述队列是第一队列,并且其中,所述第一总线代理或所述第二总线代理中选定的一个总线代理还包括第二队列,并且其中,所述第二队列被预留以存储用于具有第三流类别的第三业务类型或用于经由所述计算机总线在所述第一总线代理和所述第二总线代理之间通信的第三虚拟信道的第三信息。
23.根据权利要求21-22任意一项所述的装置,其中,为了管理所述队列的操作,所述控制器被配置为:
监视所述队列的未使用的容量;或
预留多个空间,其中每个空间是可释放的以存储用于具有第三流类别的第三业务类型和用于通信的第三虚拟信道的第三信息。
24.根据权利要求21-22任意一项所述的装置,其中,所述控制器还被配置为:
接收具有所述第一流类别或所述第二流类别的所述第一业务类型或所述第二业务类型的和用于所述第一通信的虚拟信道或所述第二通信的虚拟信道的多个信息;以及
维持具有所述第一流类别或所述第二流类别的所述第一业务类型或所述第二业务类型的和用于所述第一虚拟信道或所述第二虚拟信道的多个信息的顺序。
25.根据权利要求21-22任意一项所述的装置,其中所述第一业务类型或所述第二业务类型包括数据业务或控制业务;并且其中,所述第一流类别或所述第二流类别包括发布类别、非发布类别、完成类别或服务质量类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111515264.7A CN114185829B (zh) | 2019-04-26 | 2020-03-26 | 用于多种通信业务的共享的资源 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962839471P | 2019-04-26 | 2019-04-26 | |
US62/839,471 | 2019-04-26 | ||
US16/525,329 US11088967B2 (en) | 2019-04-26 | 2019-07-29 | Shared resources for multiple communication traffics |
US16/525,329 | 2019-07-29 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111515264.7A Division CN114185829B (zh) | 2019-04-26 | 2020-03-26 | 用于多种通信业务的共享的资源 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858439A true CN111858439A (zh) | 2020-10-30 |
Family
ID=68532388
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010221725.9A Pending CN111858439A (zh) | 2019-04-26 | 2020-03-26 | 用于多种通信业务的共享的资源 |
CN202111515264.7A Active CN114185829B (zh) | 2019-04-26 | 2020-03-26 | 用于多种通信业务的共享的资源 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111515264.7A Active CN114185829B (zh) | 2019-04-26 | 2020-03-26 | 用于多种通信业务的共享的资源 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11088967B2 (zh) |
EP (2) | EP3731105A1 (zh) |
CN (2) | CN111858439A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022048419A1 (zh) * | 2020-09-02 | 2022-03-10 | 华为技术有限公司 | 用于usb传输的方法和电子设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112020002497T5 (de) | 2019-05-23 | 2022-04-28 | Hewlett Packard Enterprise Development Lp | System und verfahren zur dynamischen zuweisung von reduktionsmotoren |
CN113438354B (zh) * | 2020-03-06 | 2022-09-02 | 华为技术有限公司 | 数据传输方法、装置、电子设备和存储介质 |
US11449447B2 (en) | 2020-12-31 | 2022-09-20 | Texas Instruments Incorporated | Latency and jitter for traffic over PCIe |
US11824795B2 (en) | 2021-08-31 | 2023-11-21 | Apple Inc. | Communication channels with both shared and independent resources |
US11836103B1 (en) * | 2021-11-16 | 2023-12-05 | Amazon Technologies, Inc. | Traffic separation in a multi-chip system |
US11880327B1 (en) | 2021-12-07 | 2024-01-23 | Amazon Technologies, Inc. | Non-coherent and coherent connections in a multi-chip system |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389031B1 (en) * | 1997-11-05 | 2002-05-14 | Polytechnic University | Methods and apparatus for fairly scheduling queued packets using a ram-based search engine |
US20050246549A1 (en) * | 1999-06-09 | 2005-11-03 | Andres Torrubia-Saez | Methods and apparatus for secure distribution of software |
US6834053B1 (en) * | 2000-10-27 | 2004-12-21 | Nortel Networks Limited | Distributed traffic scheduler |
US7283468B1 (en) * | 2002-03-15 | 2007-10-16 | Packeteer, Inc. | Method and system for controlling network traffic within the same connection with different packet tags by varying the policies applied to a connection |
US7620693B1 (en) * | 2004-03-29 | 2009-11-17 | Sun Microsystems, Inc. | System and method for tracking infiniband RDMA read responses |
US7623519B2 (en) * | 2004-06-21 | 2009-11-24 | Brocade Communication Systems, Inc. | Rule based routing in a switch |
US7925756B1 (en) * | 2005-09-30 | 2011-04-12 | Packeteer, Inc. | Partition configuration and creation mechanisms for network traffic management devices |
CN101257581A (zh) * | 2008-03-26 | 2008-09-03 | 香港应用科技研究院有限公司 | 感光传感器及图像捕捉装置 |
US7852757B1 (en) | 2009-03-10 | 2010-12-14 | Xilinx, Inc. | Status based data flow control for chip systems |
US8340120B2 (en) * | 2009-09-04 | 2012-12-25 | Brocade Communications Systems, Inc. | User selectable multiple protocol network interface device |
US9154455B1 (en) * | 2013-08-30 | 2015-10-06 | Qlogic, Corporation | Method and system for determining drop eligibility of network information |
US9954792B2 (en) | 2014-12-20 | 2018-04-24 | Intel Corporation | Shared flow control credits |
US10120809B2 (en) * | 2015-09-26 | 2018-11-06 | Intel Corporation | Method, apparatus, and system for allocating cache using traffic class |
US10079695B2 (en) * | 2015-10-28 | 2018-09-18 | Citrix Systems, Inc. | System and method for customizing packet processing order in networking devices |
CN105959195B (zh) * | 2016-06-23 | 2020-02-21 | 北京东土科技股份有限公司 | 工业互联网现场层宽带总线技术实现方法 |
US10628547B1 (en) * | 2017-06-30 | 2020-04-21 | Xilinx, Inc. | Routing circuit designs for implementation using a programmable network on chip |
US20190044809A1 (en) * | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
US10437758B1 (en) * | 2018-06-29 | 2019-10-08 | Apple Inc. | Memory request management system |
US11093425B2 (en) * | 2018-08-20 | 2021-08-17 | Apple Inc. | Systems and methods for arbitrating traffic in a bus |
US10785674B2 (en) * | 2019-01-23 | 2020-09-22 | Verizon Patent And Licensing, Inc. | Allocation of data radio bearers for quality of service flows |
-
2019
- 2019-07-29 US US16/525,329 patent/US11088967B2/en active Active
-
2020
- 2020-03-18 EP EP20163935.8A patent/EP3731105A1/en not_active Withdrawn
- 2020-03-18 EP EP21216097.2A patent/EP4033369A1/en active Pending
- 2020-03-26 CN CN202010221725.9A patent/CN111858439A/zh active Pending
- 2020-03-26 CN CN202111515264.7A patent/CN114185829B/zh active Active
-
2021
- 2021-07-13 US US17/374,545 patent/US11818058B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022048419A1 (zh) * | 2020-09-02 | 2022-03-10 | 华为技术有限公司 | 用于usb传输的方法和电子设备 |
CN114201432A (zh) * | 2020-09-02 | 2022-03-18 | 华为技术有限公司 | 用于usb传输的方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20210409351A1 (en) | 2021-12-30 |
CN114185829B (zh) | 2024-04-26 |
EP3731105A1 (en) | 2020-10-28 |
US11818058B2 (en) | 2023-11-14 |
US20190356611A1 (en) | 2019-11-21 |
EP4033369A1 (en) | 2022-07-27 |
CN114185829A (zh) | 2022-03-15 |
US11088967B2 (en) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669481B2 (en) | Enabling sync header suppression latency optimization in the presence of retimers for serial interconnect | |
CN114185829B (zh) | 用于多种通信业务的共享的资源 | |
US11743109B2 (en) | Link layer communication by multiple link layer encodings for computer buses | |
US11216404B2 (en) | Mechanism for device interoperability of switches in computer buses | |
EP3706005B1 (en) | Secure stream protocol for serial interconnect | |
US20200151362A1 (en) | Integrity and data encryption (ide) over computer buses | |
US11593529B2 (en) | Device interface security management for computer buses | |
US11533170B2 (en) | Hardware mechanisms for link encryption | |
US20190052539A1 (en) | Programmable tester for master-slave device networks | |
CN113498595A (zh) | 一种基于PCIe的数据传输方法及装置 | |
US11770138B2 (en) | Encoder and decoder of forward error correction (FEC) codec | |
WO2020163977A1 (en) | Virtual flash | |
KR20050080704A (ko) | 프로세서간 데이터 전송 장치 및 방법 | |
US11789891B2 (en) | Multi-device read protocol using a single device group read command |
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 |