CN105868136A - 处理多个命令/命令帧的电子装置及命令帧处理方法 - Google Patents
处理多个命令/命令帧的电子装置及命令帧处理方法 Download PDFInfo
- Publication number
- CN105868136A CN105868136A CN201610074983.2A CN201610074983A CN105868136A CN 105868136 A CN105868136 A CN 105868136A CN 201610074983 A CN201610074983 A CN 201610074983A CN 105868136 A CN105868136 A CN 105868136A
- Authority
- CN
- China
- Prior art keywords
- frame
- electronic installation
- interdictum duplex
- command
- duplex frame
- 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.)
- Withdrawn
Links
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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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
-
- 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/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
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)
- Software Systems (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种处理多个命令/命令帧的电子装置及命令帧处理方法。本发明的电子装置处理多个命令,包含控制电路,将多个命令打包在一个复合命令帧中,以及总线接口,通过电子装置和另一电子装置之间的总线与另一电子装置通信,其中总线接口更将复合命令帧打包在单一分组中,并通过总线传送单一分组。本发明的处理多个命令/命令帧的电子装置及命令帧处理方法可以降低在不同电子装置之间传输的每一分组的开销。
Description
【交叉引用】
本申请要求申请日为2015年2月6日,美国临时申请号为62/112,662的美国临时申请案的优先权,上述临时申请案的内容一并并入本申请。
【技术领域】
本发明有关于命令传输及执行,更具体来说,有关于处理多个命令/命令帧的电子装置及命令帧处理方法。
【背景技术】
总线通常用来允许一个电子装置与另一个电子装置通信。举例来说,第一电子装置可以产生用于配置第二电子装置的命令至第二电子装置。在传统设计中,单一的分组用于通过总线传送一个命令。换句话说,一个命令被视作上述单一分组的有效载荷。然而,除了有效载荷之外,单一分组也被要求用于传送附加信息,例如报头信息(header information)。附加信息是每个分组传输的开销。在分组中一个命令的长度小于相同分组中附加信息的长度的常见情况下,由于命令仅仅是分组的一小部分的关系,命令传输效率很低。
因此,存在创新性的命令传输设计的需求,能够降低在不同电子装置之间传输的每一分组的开销。
【发明内容】
有鉴于此,本发明特提供以下技术方案:
本发明实施例提供一种电子装置,处理多个命令。电子装置包含控制电路,将多个命令打包在一个复合命令帧中;以及总线接口,通过电子装置和另一电子装置之间的总线与另一电子装置通信,其中总线接口更将复合命令帧打包在单一分组中,并通过总线传送单一分组。
本发明实施例提供一种电子装置,处理多个命令。电子装置包含总线接口,通过电子装置和另一电子装置之间的总线与另一电子装置通信,其中总线接口更自总线接收单一分组,单一分组中包含具有多个命令打包于其中的复合命令帧;以及控制电路,解码复合命令帧并顺序执行打包在复合命令帧中的多个命令。
本发明实施例又提供一种电子装置,处理命令帧。电子装置包含存储装置;控制电路,产生命令帧,并对存储装置执行轮询操作以检查与命令帧的执行相关的状态;以及总线接口,通过电子装置以及另一电子装置之间的总线与另一电子装置通信,其中总线接口更将命令帧打包在单一分组中,并通过总线将单一分组传送至另一电子装置。
本发明实施例又提供一种电子装置,处理命令帧。电子装置包含总线接口,通过电子装置和另一电子装置之间的总线与另一电子装置通信,其中总线接口更自总线接收单一分组,单一分组中包含命令帧;以及控制电路,解码并执行命令帧,并通过总线推送与命令帧的执行相关的状态至另一电子装置的存储装置。
本发明实施例又提供一种命令帧处理方法,包含将多个命令打包在复合命令帧中;将复合命令帧储存入存储装置;通过总线发送复合命令帧的地址指针以及长度标志;以及对存储装置执行轮询操作,以检查与复合命令帧的执行相关的状态。
本发明实施例又提供一种命令帧处理方法,包含接收复合命令帧的地址指针及长度标志;决定待被解码和执行的当前命令的当前地址指针;依据当前命令的当前地址指针自本地存储装置撷取复合命令帧中的当前命令;解码当前命令以找出当前命令的长度;解码并执行当前命令;将当前命令的响应状态/执行结果推送到远程存储装置;检查是否复合命令帧的最后一个命令已经被解码及执行;以及决定打包于复合命令帧中的下一命令的起始地址。
本发明的处理多个命令/命令帧的电子装置及命令帧处理方法可以降低在不同电子装置之间传输的每一分组的开销。
【附图说明】
图1是依据本发明一个实施例的计算机系统的示意图。
图2是依据本发明一个实施例的复合命令帧的架构的示意图。。
图3展示了范例的“推到主机”轮询方法的示意图。
图4展示了依据本发明一个实施例撷取复合命令帧、执行打包在复合命令帧中的命令以及更新响应状态及执行状态的操作的示意图。
图5是依据本发明一个实施例的在一个电子装置上的复合命令处理操作的流程示意图。
图6是依据本发明一个实施例的在另一个电子装置上的复合命令处理操作的流程示意图。
图7是当控制电路是多核处理器的情况下,存储装置的示例性布置的示意图。
【具体实施方式】
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。
图1是依据本发明一个实施例的计算机系统的示意图。计算机系统100包含多个电子装置,例如电子装置102和104。在本实施例中,计算机系统100可为网络系统,电子装置102可为主机,而电子装置104可为由主机管理/编程的交换机。如图1所示,电子装置(例如,主机)102包含控制电路(例如,中央处理单元(CPU))112、存储装置(例如,动态随机存取存储器(DRAM)114),以及总线接口116;而电子装置(例如,交换机)104包含具有直接存储器存取(directmemory access)控制器(标记为“DMA”)124的控制电路(例如,微处理器)122、总线接口126、存储装置128,以及其他交换机模块,例如入口阶段(ingressstage)132、流量管理器134以及出口阶段(egress stage)136。由于本发明着眼于命令传输及执行,且本领域技术人员应已经了解交换机模块的功能和操作,为简洁起见,交换机模块的细节在此省略。请注意,图1中仅显示了与本发明相关的元件。在实际中,电子装置102和104可包含实现其他功能的附加元件。
电子装置102的总线接口116通过电子装置102和104之间的总线103连接到电子装置104的总线接口126。因此,总线接口116和126允许电子装置102和104通过总线103相互通信。在本实施例中,控制电路112将多个命令CMD打包到复合命令帧TLVS_CMD中,并将复合命令帧TLVS_CMD储存到存储装置114中。控制电路112可发送地址指针SP和长度标志LI至电子装置104。此外,存储装置114还可以储存复合命令帧TLVS_CMD相关的状态(例如,复合命令帧TLVS_CMD的执行状态STA及/或复合命令帧TLVS_CMD中每一命令CMD的响应状态RSP)。此外,总线接口116将复合命令帧TLVS_CMD打包成单一分组,并将单一分组传输到总线103,而总线接口126自总线103接收单一分组(包含复合命令帧TLVS_CMD)。在本实施例中,总线103可为外围组件快速互连(PeripheralComponent Interconnect Express,简写为PCIe)总线,而复合命令帧TLVS_CMD可为单一PCIe分组的有效载荷。
PCIe分组可采用如下的范例的分组架构。
类型 | 大小(单位:字节) |
分组开始(STP) | 1 |
序列号(SN) | 2 |
报头 | 12 |
有效载荷 | X |
端到端循环冗余校验(ECRC) | 4 |
链路层CRC(LCRC) | 4 |
结束 | 1 |
在上述实施例中,控制电路112将多个分组CMD打包到复合命令帧TLVS_CMD中,并将复合命令帧TLVS_CMD储存到存储装置114中。从而,有效载荷大小X取决于打包在相同复合命令帧TLVS_CMD中的命令CMD的数量。由于单一的PCIe分组传输多于一个命令CMD,命令传输效率可通过PCIe交易中较长的突发传输(longer burst)得到极大改善。
图2是依据本发明一个实施例的复合命令帧的架构的示意图。在本实施例中,采用了TLVS帧架构,其中“T”代表命令类型,“L”代表命令长度,“V”代表命令值,而“S”代表多个命令。一个复合命令帧(TLVS帧)以TLVS报头开始,其中TLVS报头后跟随多个命令,每个命令具有TLV命令格式。在本范例中,三个命令CMD1、CMD2和CMD3被打包在同一个复合命令帧中。一个命令的TLV命令格式包含至少类型和长度域(记作CMD(TL)),并可取决于命令的实际设计而选择性的包含命令值(记作CMD数据(V))。换句话说,打包在相同复合命令帧TLVS_CMD中的多个命令CMD的每一个必须具有记录命令类型和命令长度的一个类型和长度域。
在命令具有附随的命令值的情况下,命令的命令长度等于类型和长度域的长度加上值域的长度。在命令不具有附随的命令值的情况下,命令的命令长度等于类型和长度域的长度。记录在当前命令的类型和长度域中的命令长度可被用于识别下一命令的起始地址。TLVS报头可记录打包在同一复合命令帧中的命令的数量信息,打包在同一复合命令帧中的命令的序列号值的信息,等等。可通过检查复合命令帧的长度来识别复合命令帧的结束,其中复合命令帧的长度可由长度标志指示。
在控制电路112产生并储存复合命令帧TLVS_CMD(包含多于一个命令打包于其中)之后,控制电路112发送地址指针SP和长度标志LI至电子装置104,其中地址指针SP指示复合命令帧TLVS_CMD在存储装置114中的位置,长度标志LI指示复合命令帧TLVS_CMD的长度。通过使用在总线103上传输的至少一个分组,地址指针SP和长度标志LI可自电子装置102的总线接口116传输至电子装置104的总线接口126。在本实施例中,控制电路122被配置为DMA控制器124,以支持对存储装置114的远程DMA存取。举例来说,在控制电路122在总线接口126接收地址指针SP以及长度标志LI之后,DMA控制器124可操作来依据接收到的地址指针SP及长度标志LI自存储装置114撷取复合命令帧TLVS_CMD。举例来说,DMA控制器124可将复合命令帧TLVS_CMD储存至电子装置104的存储装置(例如,交换机存储器)128中,从而控制电路122可执行自电子装置104的存储装置(例如,交换机存储器)128中撷取的命令。换个角度说,由于存储设备114的远程DMA存取,零拷贝(zero copy,简写为ZC)模式被启用。以这种方式,复合命令帧TLVS_CMD可被自存储装置114读取,并在没有控制电路112介入的情况下,在总线103上传输。
随后,控制电路122解码所撷取的复合命令帧TLVS_CMD,并顺序执行打包在所撷取的复合命令帧TLVS_CMD中的多个命令CMD。举例来说,多个命令CMD中的每一个被执行以存取电子装置104中的表格或寄存器。如上所述,控制电路122可参考记录在当前命令的类型和长度域中的命令长度来识别下一命令的起始地址。从而,控制电路122顺序执行复合命令帧TLVS_CMD中的命令CMD,直至复合命令帧TLVS_CMD中的最后一个命令CMD被执行。
若控制电路112(其发布命令CMD)对控制电路122(其执行控制电路112发布的命令CMD)执行轮询(polling)操作,轮询操作将消耗电子装置102和104之间的总线103的大量带宽。为减少由轮询操作导致的带宽消耗,计算机系统100可采用“推到主机(Push-to-Host)”轮询方法。图3展示了范例的“推到主机”轮询方法的示意图。主机301的CPU 312产生命令CMD至装置302,并随后轮询映射的存储器314,以检查命令CMD的响应状态。装置302执行命令CMD,并将命令CMD的响应状态推送到映射的存储器314。如图3所示,CPU 312在主机301内执行轮询操作。以这种方式,由CPU 312执行的轮询操作并不会消耗主机301和装置302之间的总线带宽。
在本实施例中,控制电路112对存储装置114执行轮询操作,以检查与复合命令帧TLVS_CMD相关的状态(例如,复合命令帧TLVS_CMD的执行状态STA及/或复合命令帧TLVS_CMD中每一命令CMD的响应状态RSP),且控制电路122将与复合命令帧TLVS_CMD相关的状态(例如,复合命令帧TLVS_CMD的执行状态STA及/或复合命令帧TLVS_CMD中每一命令CMD的响应状态RSP)推送至存储装置114。举例来说,当打包于复合命令帧TLVS_CMD中的一个命令CMD由控制电路122执行时,控制电路122将命令CMD的响应状态RSP推送到存储装置114。命令CMD的响应状态RSP可指示电子装置104的状态。另一个例子,在打包于复合命令帧TLVS_CMD中的最后一个命令CMD由控制电路122执行之后,控制电路122将复合命令帧TLVS_CMD的执行状态STA推送到存储装置114。复合命令帧TLVS_CMD的执行状态STA可指示是否同一复合命令帧TLVS_CMD中的所有命令CMD被无错误的成功执行。当至少一个响应状态RSP在存储装置114中被更新,而执行状态STA尚未在存储装置114中被更新时,控制电路112可通过轮询存储装置114获取该至少一个响应状态。类似地,在所有响应状态RSP和执行状态STA在存储装置114中被更新之后,控制电路112可通过存储装置114获取所有响应状态RSP及执行状态STA。
图4展示了依据本发明一个实施例撷取复合命令帧、执行打包在复合命令帧中的命令以及更新响应状态及执行状态的操作的示意图。复合命令帧TLVS_CMD储存于存储装置(例如,主机存储器)114中。在第一阶段,复合命令帧TLVS_CMD的地址指针SP及长度标志LI自控制电路(例如,主机CPU)112发送至控制电路(例如,交换机微处理器)122。在第二阶段,控制电路(例如,交换机微处理器)122参考所接收的地址指针SP及长度标志LI自存储装置(例如,主机存储器)114撷取复合命令帧TLVS_CMD并随后将撷取的整个复合命令帧TLVS_CMD储存入存储装置(例如,交换机存储器)128中,并随后顺序执行复合命令帧TLVS_CMD中的多个命令。在第三阶段,当打包在复合命令帧TLVS_CMD中的命令之一的执行结束时,控制电路122将相应的响应状态RSP更新到由地址指针*RSP指向的位置(例如,主机存储器中的存储地址)。在第四阶段,在复合命令帧TLVS_CMD中的最后一个命令的执行结束之后,控制电路122将相应的执行状态STA更新到由地址指针*STA指向的位置(例如,主机存储器中的存储地址)。举例来说,地址指针*RSP和*STA的设置可由控制电路(例如,主机CPU)112配置,并可由复合命令帧TLVS_CMD执行。
图5是依据本发明一个实施例的在一个电子装置(例如,主机)上的复合命令处理操作的流程示意图。假设结果基本相同,则图5中的步骤不需要依照图中所示的精确的顺序执行。在一个电子装置(例如,主机)上的复合命令处理操作可由图1所示的控制电路112执行,并可简要概述如下。
步骤502:将多个命令打包在复合命令帧中。
步骤504:将复合命令帧储存入存储装置(例如,主机存储器)。
步骤506:通过总线发送复合命令帧的地址指针以及长度标志。
步骤508:对存储装置(例如,主机存储器)执行轮询操作,以检查与复合命令帧的执行相关的状态(例如,复合命令帧的执行状态及/或复合命令帧中的每一命令的响应状态)。
由于本领域技术人员在读过上述段落后能够很容易了解图5所示步骤的细节,为简洁起见,不再详述。
图6是依据本发明一个实施例的在另一个电子装置(例如,交换机)上的复合命令处理操作的流程示意图。假设结果基本相同,则图6中的步骤不需要依照图中所示的精确的顺序执行。在另一个电子装置(例如,交换机)上的复合命令处理操作可由图1所示的控制电路122执行,并可简要概述如下。
步骤600:开始解码以及执行具有多个命令打包于其内的一个复合命令帧的流程。
步骤601:自总线接收复合命令帧的地址指针及长度标志。举例来说,地址指针和长度标志可被参考来以DMA方式自远程存储装置(例如,主机存储器)撷取复合命令帧,以使整个复合命令帧在本地存储装置(例如,交换机存储器)中可用。
步骤602:决定待被解码和执行的当前命令的当前地址指针。由于地址指针指向复合命令帧的起始地址,且TLVS报头的预定长度已知,指向第一命令的起始地址的当前地址指针可被决定。
步骤604:依据当前命令的当前地址指针自本地存储装置(例如,交换机存储器)撷取复合命令帧中的当前命令。
步骤606:解码当前命令以找出当前命令的长度。
步骤608:解码并执行当前命令。
步骤610:将当前命令的响应状态/执行结果推送到存储装置(例如,主机存储器)。
步骤612:检查是否复合命令帧的最后一个命令已经被解码及执行。若是,转至步骤616;否则,转至步骤614。
步骤614:决定打包于复合命令帧中的下一命令的起始地址。举例来说,下一地址指针=当前地址指针+当前命令长度。转至步骤604。
步骤616:结束解码及执行一个复合命令帧的流程。
步骤618:检查存储装置(例如,主机存储器)是否仍然具有待处理的更多复合命令帧。若是,转至步骤600;否则,转至步骤620。
步骤620:等待新复合命令帧。转至步骤618。
若存储装置(例如,主机存储器)中存在任何未处理的复合命令帧可用,未处理的复合命令帧被自存储装置(例如,主机存储器)中撷取并随后被执行(步骤618及620)。请注意图6中步骤606和608的执行顺序仅用作展示。可选地,步骤606及608可被交换,使得步骤608先于步骤606执行。某些情况下,步骤606可以和步骤608合并。由于本领域技术人员在读过上述段落后能够很容易了解图6所示步骤的细节,为简洁起见,不再详述。
在某些实施例中,在一个分组传输中撷取整个复合命令帧,并且随后复合命令帧被储存至电子装置(例如,交换机存储器)本地存储器,从而减小了频繁存取另一电子装置(例如,主机存储器)的远程存储器消耗的带宽。以这种方式,打包在同一复合分组帧中的命令可依据命令相应的地址指针一个接一个的自电子装置(例如,交换机存储器)的本地存储器被撷取。
在一个范例性的设计中,控制电路112可使用单核处理器来实施。从而,存储装置114可具有分配给单核处理器的单一命令队列,使得产生自单核处理器的每一复合命令帧TLVS_CMD被储存于单一命令队列中。在另一范例性设计中,控制电路112可使用多核处理器实施。图7是当控制电路112是多核处理器的情况下,存储装置114的示例性布置的示意图。举例来说,但并非本发明的限制,控制电路112可为具有四个处理器核心Core_1-Core_4的四核处理器。存储装置114因而具有分别分配给处理器核心Core_1-Core_4的四个命令队列CQ1-CQ4。从而,处理器核心Core_1产生复合命令帧TLVS_CMD至命令队列CQ1;处理器核心Core_2产生复合命令帧TLVS_CMD至命令队列CQ2;处理器核心Core_3产生复合命令帧TLVS_CMD至命令队列CQ3;而处理器核心Core_4产生复合命令帧TLVS_CMD至命令队列CQ4。由于命令队列CQ1-CQ4在电子装置102(例如,主机的DRAM)的存储装置114中被分配,而非在电子装置104(例如,装置的静态随机存取存储器,statistic random access memory,简写为SRAM)的存储装置中被分配,命令队列的大小并不受装置的SRAM限制,而可由主机的CPU弹性的决定。此外,控制电路122(例如,装置的微处理器)的远程DMA功能可通过仲裁器702在存储装置114中自命令队列CQ1-CQ4中的一个获取一个复合命令帧TLVS_CMD。
以上所述仅为本发明的较佳实施例,本领域相关的技术人员依据本发明的精神所做的等效变化与修改,都应当涵盖在权利要求书内。
Claims (24)
1.一种电子装置,处理多个命令,其特征在于,所述电子装置包含:
控制电路,将多个命令打包在复合命令帧中;以及
总线接口,通过所述电子装置和另一电子装置之间的总线与所述另一电子装置通信,其中所述总线接口更将所述复合命令帧打包在单一分组中,并通过所述总线传送所述单一分组。
2.根据权利要求1所述的电子装置,其特征在于,打包在所述复合命令帧中的所述多个命令中的每一个包含至少类型以及长度域。
3.根据权利要求1所述的电子装置,其特征在于,更包含:
存储装置,储存所述复合命令帧;
其中所述复合命令帧读取自所述存储装置,且在没有所述控制电路介入的情况下通过所述总线传输。
4.根据权利要求3所述的电子装置,其特征在于,所述控制电路更发送指示所述复合命令帧在所述存储装置中的位置的地址指针以及指示被传送至所述另一电子装置的所述复合命令帧的长度的长度标志。
5.根据权利要求3所述的电子装置,其特征在于,所述控制电路是具有多个处理器核心的多核处理器,所述存储装置具有分别被分配给所述多个处理器核心的多个命令队列,且产生自处理器核心的所述复合命令帧储存于对应命令队列之内。
6.根据权利要求1所述的电子装置,其特征在于,更包含:
存储装置;
其中所述控制电路更对所述存储装置执行轮询操作,以检查与所述复合命令帧有关的状态。
7.根据权利要求6所述的电子装置,其特征在于,与所述复合命令帧有关的所述状态包含所述复合命令帧的执行状态或所述复合命令帧中的所述多个命令的每一个的响应状态。
8.根据权利要求1所述的电子装置,其特征在于,所述电子装置是主机,而所述另一电子装置是交换机。
9.根据权利要求1所述的电子装置,其特征在于,所述总线是外围组件快速互连总线。
10.一种电子装置,处理多个命令,其特征在于,所述电子装置包含:
总线接口,通过所述电子装置和另一电子装置之间的总线与所述另一电子装置通信,其中所述总线接口更自所述总线接收单一分组,所述单一分组中包含具有多个命令打包于其中的复合命令帧;以及
控制电路,解码所述复合命令帧并顺序执行打包在所述复合命令帧中的所述多个命令。
11.根据权利要求10所述的电子装置,其特征在于,打包在所述复合命令帧中的所述多个命令中的每一个包含至少类型以及长度域。
12.根据权利要求10所述的电子装置,其特征在于,所述控制电路包含直接存储器存取控制器,通过所述总线接口自所述另一电子装置的存储装置撷取所述复合命令帧。
13.根据权利要求12所述的电子装置,其特征在于,所述控制电路更接收指示所述复合命令帧在所述存储装置中的位置的地址指针以及指示来自于所述另一电子装置的所述复合命令帧的长度的长度标志。
14.根据权利要求12所述的电子装置,其特征在于,所述存储装置具有分别被分配给多个处理器核心的多个命令队列,且所述控制电路自所述多个命令队列之一撷取所述复合命令帧。
15.根据权利要求10所述的电子装置,其特征在于,所述控制电路更通过所述总线推送与所述复合命令帧相关的状态至所述另一电子装置的存储装置。
16.根据权利要求15所述的电子装置,其特征在于,与所述复合命令帧有关的所述状态包含所述复合命令帧的执行状态或所述复合命令帧中的所述多个命令的每一个的响应状态。
17.根据权利要求10所述的电子装置,其特征在于,所述电子装置是交换机,而所述另一电子装置是主机。
18.根据权利要求10所述的电子装置,其特征在于,所述总线是外围组件快速互连总线。
19.一种电子装置,处理命令帧,其特征在于,所述电子装置包含:
存储装置;
控制电路,产生命令帧,并对所述存储装置执行轮询操作以检查与所述命令帧的执行相关的状态;以及
总线接口,通过所述电子装置以及另一电子装置之间的总线与所述另一电子装置通信,其中所述总线接口更将所述命令帧打包在单一分组中,并通过所述总线将所述单一分组传送至所述另一电子装置。
20.一种电子装置,处理命令帧,其特征在于,所述电子装置包含:
总线接口,通过所述电子装置和另一电子装置之间的总线与所述另一电子装置通信,其中所述总线接口更自所述总线接收单一分组,所述单一分组中包含命令帧;以及
控制电路,解码并执行所述命令帧,并通过所述总线推送与所述命令帧的执行相关的状态至所述另一电子装置的存储装置。
21.一种命令帧处理方法,其特征在于,包含:
将多个命令打包在复合命令帧中;
将所述复合命令帧储存入存储装置;
通过总线发送所述复合命令帧的地址指针以及长度标志;以及
对所述存储装置执行轮询操作,以检查与所述复合命令帧相关的状态。
22.根据权利要求21所述的命令帧处理方法,其特征在于,与所述复合命令帧相关的状态包括所述复合命令帧的执行状态及/或所述复合命令帧中的每一命令的响应状态。
23.一种命令帧处理方法,其特征在于,包含:
接收复合命令帧的地址指针及长度标志;
决定待被解码和执行的当前命令的当前地址指针;
依据当前命令的所述当前地址指针自本地存储装置撷取所述复合命令帧中的所述当前命令;
解码所述当前命令以找出所述当前命令的长度;
解码并执行所述当前命令;
将所述当前命令的响应状态/执行结果推送到远程存储装置;
检查是否所述复合命令帧的最后一个命令已经被解码及执行;以及
决定打包于所述复合命令帧中的下一命令的起始地址。
24.根据权利要求23所述的命令帧处理方法,其特征在于,更包含:
检查所述远程存储装置是否仍然具有待处理的更多复合命令帧。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562112662P | 2015-02-06 | 2015-02-06 | |
US62/112,662 | 2015-02-06 | ||
US14/934,085 US9846657B2 (en) | 2015-02-06 | 2015-11-05 | Electronic device for packing multiple commands in one compound command frame and electronic device for decoding and executing multiple commands packed in one compound command frame |
US14/934,085 | 2015-11-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105868136A true CN105868136A (zh) | 2016-08-17 |
Family
ID=56565967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610074983.2A Withdrawn CN105868136A (zh) | 2015-02-06 | 2016-02-03 | 处理多个命令/命令帧的电子装置及命令帧处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9846657B2 (zh) |
CN (1) | CN105868136A (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058931B (zh) * | 2019-04-19 | 2022-03-22 | 上海兆芯集成电路有限公司 | 用以任务调度的处理系统及其加速方法 |
CN110046053B (zh) | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 用以分配任务的处理系统及其访存方法 |
CN110083387B (zh) | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 使用轮询机制的处理系统及其访存方法 |
CN110032453B (zh) | 2019-04-19 | 2022-05-03 | 上海兆芯集成电路有限公司 | 用以任务调度与分配的处理系统及其加速方法 |
US11669271B2 (en) | 2020-04-15 | 2023-06-06 | Advanced Micro Devices, Inc. | Memory operations using compound memory commands |
US20200241927A1 (en) * | 2020-04-15 | 2020-07-30 | Intel Corporation | Storage transactions with predictable latency |
US11956311B2 (en) * | 2020-06-29 | 2024-04-09 | Marvell Asia Pte Ltd | Method and apparatus for direct memory access of network device |
US12118281B2 (en) * | 2022-06-07 | 2024-10-15 | Dell Products L.P. | LCS orchestrator device/expansion device secondary circuit board system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535418A (en) * | 1992-06-30 | 1996-07-09 | Canon Kabushiki Kaisha | Information processing system with selection of input/output processing control according to precalculated input/output processing time |
US6611883B1 (en) * | 2000-11-16 | 2003-08-26 | Sun Microsystems, Inc. | Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system |
US20100322265A1 (en) * | 2009-06-22 | 2010-12-23 | Sandhya Gopinath | Systems and methods for receive and transmission queue processing in a multi-core architecture |
CN101939731A (zh) * | 2008-02-14 | 2011-01-05 | 国际商业机器公司 | 在i/o处理系统内的控制单元中处理变长设备命令字 |
US20140068120A1 (en) * | 2012-08-30 | 2014-03-06 | Kabushiki Kaisha Toshiba | Host system, storage device and communication method |
US20140129753A1 (en) * | 2012-11-06 | 2014-05-08 | Ocz Technology Group Inc. | Integrated storage/processing devices, systems and methods for performing big data analytics |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6351780B1 (en) | 1994-11-21 | 2002-02-26 | Cirrus Logic, Inc. | Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated |
US8374175B2 (en) | 2004-04-27 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | System and method for remote direct memory access over a network switch fabric |
US7742412B1 (en) | 2004-09-29 | 2010-06-22 | Marvell Israel (M.I.S.L.) Ltd. | Method and apparatus for preventing head of line blocking in an ethernet system |
US7693138B2 (en) | 2005-07-18 | 2010-04-06 | Broadcom Corporation | Method and system for transparent TCP offload with best effort direct placement of incoming traffic |
US7721299B2 (en) | 2005-08-05 | 2010-05-18 | Red Hat, Inc. | Zero-copy network I/O for virtual hosts |
US8327039B2 (en) | 2009-08-14 | 2012-12-04 | Cadence Design Systems, Inc. | Integrated DMA processor and PCI express switch for a hardware-based functional verification system |
US9213661B2 (en) * | 2010-06-23 | 2015-12-15 | International Business Machines Corporation | Enable/disable adapters of a computing environment |
EP2801143A1 (en) * | 2012-01-05 | 2014-11-12 | American Power Conversion Corporation | Methods and apparatus for controlling power switches via a digital communication bus |
US8838841B2 (en) * | 2012-07-30 | 2014-09-16 | HGST Netherlands B.V. | Method and structure enabling improved native command queueing in a data storage device |
-
2015
- 2015-11-05 US US14/934,085 patent/US9846657B2/en active Active
-
2016
- 2016-02-03 CN CN201610074983.2A patent/CN105868136A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535418A (en) * | 1992-06-30 | 1996-07-09 | Canon Kabushiki Kaisha | Information processing system with selection of input/output processing control according to precalculated input/output processing time |
US6611883B1 (en) * | 2000-11-16 | 2003-08-26 | Sun Microsystems, Inc. | Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system |
CN101939731A (zh) * | 2008-02-14 | 2011-01-05 | 国际商业机器公司 | 在i/o处理系统内的控制单元中处理变长设备命令字 |
US20100322265A1 (en) * | 2009-06-22 | 2010-12-23 | Sandhya Gopinath | Systems and methods for receive and transmission queue processing in a multi-core architecture |
US20140068120A1 (en) * | 2012-08-30 | 2014-03-06 | Kabushiki Kaisha Toshiba | Host system, storage device and communication method |
US20140129753A1 (en) * | 2012-11-06 | 2014-05-08 | Ocz Technology Group Inc. | Integrated storage/processing devices, systems and methods for performing big data analytics |
Also Published As
Publication number | Publication date |
---|---|
US20160232111A1 (en) | 2016-08-11 |
US9846657B2 (en) | 2017-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105868136A (zh) | 处理多个命令/命令帧的电子装置及命令帧处理方法 | |
CN102065569B (zh) | 一种适用于wlan的以太网mac子层控制器 | |
KR102173089B1 (ko) | 인터페이스 회로 및 그것의 패킷 전송 방법 | |
CN101320361B (zh) | 一种多cpu通讯方法及系统 | |
CN110941582B (zh) | 一种bmc芯片的usb总线结构及其通信方法 | |
CN112836453B (zh) | Sas控制器帧缓冲区结构设计方法 | |
CN102404414B (zh) | 基于mmc/sd接口的以太网通信系统及方法 | |
WO2015084506A1 (en) | System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface | |
CN103517085B (zh) | 一种基于视频解码设计实现远程服务器管理的方法 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
CN107066413A (zh) | 一种用于处理多个总线设备数据的方法、及其总线系统 | |
CN101304362B (zh) | 重传缓冲装置及传输数据的方法 | |
US20080183921A1 (en) | Serial advanced technology attachment (SATA) frame information structure (FIS) processing | |
CN104486365A (zh) | 双控之间通信方法和系统 | |
WO2024037076A1 (zh) | 数据交互方法、装置、系统、电子设备和存储介质 | |
US20150199298A1 (en) | Storage and network interface memory share | |
CN202282789U (zh) | 一种伺服驱动器的soe通信转换卡 | |
CN105022591B (zh) | 数据存储系统中基于元数据的数据对齐 | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 | |
CN102336355A (zh) | 电梯监控系统 | |
EP2726992B1 (en) | Network control model driver | |
CN202272595U (zh) | 电梯监控系统 | |
CN206479978U (zh) | 一种用于处理多个总线设备数据的总线系统 | |
CN103905499A (zh) | 利用共享磁盘构建通信通道的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20160817 |