CN111124971A - 算术处理装置和算术处理装置的控制方法 - Google Patents
算术处理装置和算术处理装置的控制方法 Download PDFInfo
- Publication number
- CN111124971A CN111124971A CN201911017840.8A CN201911017840A CN111124971A CN 111124971 A CN111124971 A CN 111124971A CN 201911017840 A CN201911017840 A CN 201911017840A CN 111124971 A CN111124971 A CN 111124971A
- Authority
- CN
- China
- Prior art keywords
- packet
- channel
- delay
- channels
- cycle
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 185
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000003111 delayed effect Effects 0.000 claims abstract description 60
- 230000008569 process Effects 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 29
- 238000012790 confirmation Methods 0.000 description 15
- 238000009432 framing Methods 0.000 description 11
- 101150098958 CMD1 gene Proteins 0.000 description 10
- 101100382321 Caenorhabditis elegans cal-1 gene Proteins 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- WANLLPADDCXPGO-WMKJBNATSA-N (6r,9s,12s)-3-[(2s)-butan-2-yl]-6-[(4-methoxyphenyl)methyl]-9-[6-(oxiran-2-yl)-6-oxohexyl]-1,4,7,10-tetrazabicyclo[10.4.0]hexadecane-2,5,8,11-tetrone Chemical compound C([C@@H]1C(=O)NC(C(N2CCCC[C@H]2C(=O)N[C@@H](CCCCCC(=O)C2OC2)C(=O)N1)=O)[C@@H](C)CC)C1=CC=C(OC)C=C1 WANLLPADDCXPGO-WMKJBNATSA-N 0.000 description 4
- WANLLPADDCXPGO-UHFFFAOYSA-N Cyl-2 Natural products N1C(=O)C(CCCCCC(=O)C2OC2)NC(=O)C2CCCCN2C(=O)C(C(C)CC)NC(=O)C1CC1=CC=C(OC)C=C1 WANLLPADDCXPGO-UHFFFAOYSA-N 0.000 description 4
- HHNFORCFJOVQNF-UHFFFAOYSA-N cyl-1 Chemical compound N1C(=O)C(CCCCCC(=O)C2OC2)NC(=O)C2CCCN2C(=O)C(C(C)CC)NC(=O)C1CC1=CC=C(OC)C=C1 HHNFORCFJOVQNF-UHFFFAOYSA-N 0.000 description 4
- 108010063406 Cyl-2 Proteins 0.000 description 3
- 101000626112 Homo sapiens Telomerase protein component 1 Proteins 0.000 description 3
- 102100024553 Telomerase protein component 1 Human genes 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 101100457838 Caenorhabditis elegans mod-1 gene Proteins 0.000 description 2
- 101150110972 ME1 gene Proteins 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 101100117391 Arabidopsis thaliana DPB2 gene Proteins 0.000 description 1
- 101100025691 Arabidopsis thaliana NAGLU gene Proteins 0.000 description 1
- 101150020445 CYLC1 gene Proteins 0.000 description 1
- 101150080636 CYLC2 gene Proteins 0.000 description 1
- 101100441844 Caenorhabditis elegans cyl-1 gene Proteins 0.000 description 1
- 102100036233 Cylicin-1 Human genes 0.000 description 1
- 102100024257 Cylicin-2 Human genes 0.000 description 1
- 101100382953 Mus musculus Ccnd1 gene Proteins 0.000 description 1
- 101100441845 Oryza sativa subsp. japonica CYL1 gene Proteins 0.000 description 1
- 101100441847 Oryza sativa subsp. japonica CYL2 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- 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/0026—PCI express
Abstract
本发明涉及算术处理装置和算术处理装置的控制方法。一种算术处理装置,包括:延迟与交换处理电路,其用于当检测到从第一信道的输入侧接收的第一分组的结束与从第二信道的输入侧接收的具有单分组长度的第二分组的起始在同一周期中交叠时通过使第二信道的输出侧延迟一个周期来将第二信道的输出侧置于延迟状态中;以及分组处理电路,其被用于对从延迟与交换处理电路的两个信道输入的分组执行处理。
Description
技术领域
本文中的公开内容涉及算术处理装置和算术处理装置的控制方法。
背景技术
PCIe(高速外围部件互连)是点对点串行链接,并且用于主板级别、扩展卡接口等的相互连接。PCIe能够利用1个、2个、4个、8个、12个、16个或32个通道在两点之间建立相互连接,并且单个通道由4个信号线构成,在这4个信号线中,每个发送和接收分配有差分对。在PCIe中,定义了包括软件层、事务层、数据链路层和物理层的分层结构,以用于控制和管理信息传输。
发送侧处的软件层向事务层发送生成TLP(事务层分组)所需的信息(事务类型、地址、发送数据量等),以请求进行读取和写入。接收侧处的软件层从事务层接收由事务层接收到的TLP中包括的信息(事务类型、地址、接收数据量等)。
事务层基于从软件层接收到的信息生成包括报头、有效载荷(在写入请求的情况下)和ECRC(端到端CRC)的TLP,并且将生成的TLP发送至数据链路层。报头包括地址、TLP类型、传输大小、请求方ID或完成方ID、标签等。在这种情况下,请求方ID被包括在从请求侧发送的请求TLP中,而完成方ID被包括在从对该请求作出响应的响应侧发送的完成TLP中。请求TLP和完成TLP使用相同的标签。接收侧处的事务层检查从数据链路层接收到的TLP中的ECRC错误。在既不存在错误也不存在任何其他缺陷的情况下,事务层将报头中包括的信息和有效载荷发送至软件层。发送侧处的事务层核对请求发送期间的请求TLP的标签和响应接收期间的完成TLP的标签,以检查是否已接收到预期响应(完成检查)。
发送侧处的数据链路层向TLP附加序列号和LCRC(链路CRC),并且将附加有序列号和LCRC的TLP发送至物理层。此外,TLP的副本将保存在重试缓冲区中。接收侧处的数据链路层基于序列号检查经由物理层接收到的TLP的分组丢失和重复接收,并且此外还检查LCRC错误。在不存在错误的情况下,接收侧处的数据链路层生成ACK-DLLP(数据链路层分组)并将该ACK-DLLP发送至发送侧,并且将已去除其中的TLP序列号和LCRC的TLP发送至事务层。发送侧处的数据链路层通过接收到来自接收侧的ACK-DLLP来检查TLP的发送完成,并且清空重试缓冲区。另一方面,在发送侧处的数据链路层从接收侧接收到指示错误发生的NAK-DLLP的情况下,发送侧处的数据链路层重新发送保存在重试缓冲区中的TLP。
物理层向从数据链路层接收到的TLP或DLLP附加指示起始和结束的成帧字符(即成帧符号或成帧令牌)。根据规格和条件,仅附加指示起始的成帧字符,而不附加指示结束的成帧字符。经由链路将附有成帧字符的分组发送至接收侧。当物理层从链路接收到分组时,该分组被发送至数据链路层。成帧字符用于检测分组的起始和结束。当链路中存在多个通道时,将从物理层发送至链路的分组以字节为单位按顺序分配给多个通道。
在经由PCIe的链路进行信息的发送和接收时,执行基于信用的流量控制。通过在事务层中周期性地发送用于流量控制的DLLP来进行流量控制,并且执行控制以使得如果在接收侧处的缓冲区中不存在用于接收TLP的空间,则不从发送侧发送TLP。
[相关文献]
[专利文献]
[专利文献1]日本公开专利公报第H9-200239号
[专利文献2]日本公开专利公报第2012-128809号
[专利文献3]日本公开专利公报第H11-85969号
发明内容
根据实施方式的一方面,一种算术处理装置包括:延迟与交换处理电路,其用于在检测到从第一信道的输入侧接收的第一分组的结束与从第二信道的输入侧接收的具有单分组长度的第二分组的起始在同一周期中交叠时,通过使第二信道的输出侧延迟一个周期来将第二信道的输出侧置于延迟状态;以及分组处理电路,其用于对由延迟与交换处理电路从两个信道输出的分组执行处理。
将借助于权利要求书中特别指出的元素和组合来实现和达成本实施方式的目的和优点。应当理解,前面的总体描述和下面的详细描述都是示例性和说明性的,而并非是对所要求保护的本发明的限制。
附图说明
图1是示出在8通道情况下的数据传输的分组布置的示例的图;
图2是示出在16通道情况下的数据传输的分组布置的示例的图;
图3是示出PCIe的发送与接收系统的配置示例的图;
图4是示出PCIe接收电路的配置示例的图;
图5是示出设置有延迟与交换处理单元的数据链路层单元(接收侧)的配置示例的图;
图6是示出事务层单元(接收侧)的配置示例的图;
图7是示出设置有延迟与交换处理单元的事务层单元(接收侧)的配置示例的图;
图8是示出在事务层单元(接收侧)中设置有延迟与交换处理单元的情况下数据链路层单元(接收侧)的配置示例的图;
图9A和图9B是示出延迟与交换处理的第一示例的时序图;
图10A和图10B是示出延迟与交换处理的第二示例的时序图;
图11A和图11B是示出延迟与交换处理的第三示例的时序图;
图12A和图12B是示出延迟与交换处理的第四示例的时序图;
图13A和图13B是示出延迟与交换处理的第五示例的时序图;
图14是示出与分组同步的命令的示例的图;
图15是示出执行延迟与交换处理单元的处理的逻辑电路的第一部分的图;
图16A和图16B是示出执行延迟与交换处理单元的处理的逻辑电路的第二部分的图;
图17是示出用于执行延迟与交换处理单元的处理的逻辑电路的第三部分的图;
图18是示出用于执行延迟与交换处理单元的处理的逻辑电路的第四部分的图;
图19是示出用于执行延迟与交换处理单元的处理的逻辑电路的第五部分的图;
图20是示出用于执行延迟与交换处理单元的处理的逻辑电路的第六部分的图;
图21是示出图15至图20所示的每个信号的状态变化的时序图;以及
图22是示出由延迟与交换处理单元执行的延迟与交换操作的处理流程的流程图。
具体实施方式
在下文中,将参照附图描述本发明的实施方式。在这些附图中,相同或相应的元素由相同或相应的附图标记来表示,并且将适当地省略其描述。
图1是示出以8通道进行数据传输的分组布置的示例的图。分组布置201示出了分配到物理层的8通道(通道0至通道7)的分组布置的示例。向一个通道分配一个字节(8位)的信息,并且将要发送的分组以字节为单位按顺序分配给8个通道(通道0至通道7)。在如图1所示的分组布置201中,在单个框中共同示出了四个通道,并且所示出的一个框表示4个字节长度的信息。分组布置201中的一行(一个水平行)对应于一个符号的周期。
例如,为了在PCIe-Gen3的情况下发送TLP,将从数据链路层提供的关于TLP的信息布置在stp令牌(指示TLP的起始的成帧令牌)之后的每个通道中。stp令牌具有4个字节的长度,并且关于TLP的信息包括具有3个或4个双字(12个或16个字节)的报头HDR和有效载荷DT0至DTPx(x是正整数)。有效载荷可以仅包括DT0。在每个通道中,通过128b/130b编码将128位信息转换为130位,并且串行传输经转换的信息。
分组布置202示出了布置示例,其中,当在物理层中接收到分组布置201中示出的多个分组时,去除每个分组中的成帧令牌stp,并且剩余信息(在数据链路层中使用的信息)被布置在宽度为8个字节的并行总线中。在经由具有8个通道的链路发送和接收信息的情况下,数据链路层以及该层之上的层使用具有8个字节宽度的并行总线在一个时钟周期内传送一个符号。在图1中,示出了分组布置201被划分成两组,每组具有4个字节的宽度,并且因此,分组布置202以四个字节为单位组织而成并且被示为被划分为高阶4字节[63:32]和低阶4字节[31:0]。
在数据链路层中,考虑到下游处理的简便性,将每个分组的起始与高阶4字节[63:32]对齐(即,与图1的左侧对齐),并且不留任何间隙地连续布置单个分组中包括的信息。在由于如上所述在数据链路层中布置分组而使分组的结束位于高阶4字节[63:32]处的情况下,低阶4字节[31:0]保持空白。
在图1所示的第一时钟周期中,在分组布置201中接收stp和HDR203,但是如果该HDR 203被布置成在分组布置202的第一时钟周期中左对齐,则低阶4字节变为空白空间。因此,在分组布置202中,HDR 203被布置成在第二时钟周期中左对齐,并且在分组布置201中的第二时钟周期中接收的HDR 204被布置到分组布置202中的第二时钟周期的低阶4字节侧。同样,当物理层中接收到的分组布置201的每个分组被布置在数据链路层中的8字节并行总线中时,获得如图1中的分组布置202所示的布置。
在已生成数据链路层中的分组布置202的并行数据的情况下,去除在物理层中接收到的每个分组中的4个字节的stp令牌。如上所述,由于因将分组的起始向左对齐而生成的空白空间最多为4字节,因此可以通过去除4个字节的stp令牌来补偿由于提供该空白空间而引起的延迟。因此,在将分配给物理层中的8个通道的分组布置在数据链路层中的8字节的并行总线中时,不会使时序逐渐延迟。换句话说,这不会使接收侧无法接收从发送侧发送的信息。
图2是示出以16通道进行数据传输的分组布置的示例的图。分组布置211示出了分配到物理层的16通道(通道0至通道15)的分组布置的示例。向一个通道分配关于一个字节(8位)的信息,并且将要发送的分组以字节为单位按顺序分配给16个通道(通道0至通道15)。在如图2所示的分组布置211中,在单个框中共同示出了四个通道,并且所示出的一个框表示4个字节长度的信息。分组布置211中的一行(一个水平行)对应于一个符号的周期。每个分组的配置和经由链路进行信息传输的方式与图1中的配置和方式相似。在数据链路层中将每个分组的起始布置成与高阶4字节对齐以及不留任何间隙地连续布置单个分组中包括的信息的原理与图1中的情况相同。
在已根据物理层中接收到的分组布置211生成数据链路层中的并行数据的情况下,去除接收到的每个分组中的4个字节的stp令牌。然而,在16通道配置的情况下,由于将分组的起始向左对齐而生成的空白空间最多为12字节(4字节×3个空白),并且因此,无法通过去除4个字节的stp令牌来补偿由于提供该空白空间而引起的延迟。因此,在将分配给物理层中16个通道的分组布置在数据链路层中具有16字节宽度的单个并行总线中时,会使时序逐渐延迟。
如图2右侧处所示的分组布置212和分组布置213是将在分组布置211中接收的多个分组布置为数据链路层中的并行数据的布置的示例。分组布置212和分组布置213对应于各自具有16字节宽度的两个并行总线(两个信道)。通过去除分组布置211所示出的分组中的成帧令牌stp而获得的剩余信息(在数据链路层中使用的信息)被布置在这两个信道中。
在图1所示的8通道配置的情况下,数据链路层中的具有8个字节宽度的单个并行总线就足够了。然而,在图2所示的16通道配置的情况下,如上所述最多会生成12个字节的空白空间,并且因此,数据链路层中的具有16个字节宽度的单个并行总线是不够的。更具体地,在将分配给物理层中的16个通道的分组布置在数据链路层中的16个字节的单个并行总线中时,会使时序逐渐延迟,这使得无法接收从发送侧发送的信息。因此,如图2所示的分组布置212和分组布置213中那样,分组被布置在各自具有16个字节宽度的两个信道中,从而可以无损地接收到从发送侧发送的信息。
从图2可以理解,在大多数时钟周期中,分组布置212与分组布置213之间不存在分组彼此交叠。仅在任何给定分组的结束和后续分组的起始位于同一时钟周期中时,分组才在两个信道之间彼此交叠。通常,在接收侧中,在分组的起始处执行的处理与在分组的结束处执行的处理不同。因此,即使在任何给定分组的结束与后续分组的起始彼此交叠的情况下也不必提供重复的资源以用于接收处理。然而,某些分组的长度为一个时钟周期。在同一时钟周期中接收这样的单周期分组的起始和结束。
在前一分组的结束与后续分组的起始彼此交叠并且后续分组是单周期分组的情况下,前一分组的结束与后续分组的结束可以在同一时钟周期中交叠。在这种情况下,如果不重复提供用于在分组结束处执行的处理的资源,则接收侧可能无法赶上该处理。
由于在分组的结束处确认了LCRC,因此会在分组的结束处执行LCRC检查。此外,由于会在分组的结束处确认该分组正常,因此自然希望在结束处确认序列号的检查结果。此外,由于在分组的结束处确认了该分组的长度,因此会在结束处检查分组的长度。此外,由于在分组的结束处确认了ECRC,因此会在分组的结束处执行ECRC检查。如上所述,在分组结束时执行的处理量非常高。因此,如果重复地提供用于在分组结束时执行的处理的资源,则会多余地提供大量资源以增加成本。
图3是示出PCIe的发送与接收系统的配置示例的图。在图3和图3之后的类似附图中,分别由块表示的一个电路或功能块与另一电路或功能块之间的边界基本上指示功能边界,而不一定对应于物理位置的分离、电信号的分离、控制逻辑的分离等。每个电路或功能块可以是在某种程度上与另一块物理地分开的硬件模块,或者可以指示与另一块物理地集成的硬件模块的功能。
如图3所示的发送与接收系统包括通过具有16个通道的链路耦接的第一部件10和第二部件300。第一部件10包括发送电路11、PCIe接收电路12和数据处理单元13。
发送电路11发送要从第一部件10向第二部件300发送的信息。PCIe接收电路12接收从第二部件300向第一部件10发送的信息。当数据处理单元13接收到来自PCIe接收电路12的接收通知时,数据处理单元13通过向PCIe接收电路12施加控制信号来从PCIe接收电路12接收接收数据。
图4是示出PCIe接收电路12的配置示例的图。PCIe接收电路12包括物理层单元21、数据链路层单元22、事务层单元23和接收缓冲区24。PCIe接收电路12用作用于对接收到的分组执行各种处理的处理装置。物理层单元21经由由16个通道构成的链路来接收诸如TLP和DLLP的分组。物理层单元21经由各自为具有16个字节的并行总线的两个信道CH0和CH1向数据链路层单元22提供接收分组中的在数据链路层中使用的信息(例如,附加有序列号和LCRC的TLP)。
物理层单元21通过检测在每个通道中接收到的数据中的成帧字符来检测分组的起始和结束,并且将检测到的分组发送至两个信道CH0和CH1。在这种情况下,物理层单元21可以例如以与参照图2说明的布置方法类似的方式将从具有16个通道的链路接收的分组布置到数据链路层22的两个信道中。在图4所示的示例中,假设了具有16个通道的链路和各自具有16个字节宽度的两个信道,但是关于通道数目和信道宽度的配置不限于该示例中所示的配置。本实施方式适用于在将串行接收的分组布置在并行总线中时使用多个信道并且分组的起始和结束在多个信道之间交叠的配置。
数据链路层单元22基于序列号对接收到的TLP执行分组的丢失和重复接收检查,并且检查LCRC错误。数据链路层单元22经由各自为具有16个字节的并行总线的两个信道CH0和CH1将已去除其中的序列号和LCRC的TLP发送至事务层单元23。当数据链路层单元22接收到ACK-DLLP时,数据链路层单元22检查TLP的发送完成,并且清空发送电路11中包括的数据链路层(发送侧)中的重试缓冲区(未示出)。在数据链路层单元22(发送侧)接收到指示错误发生的NAK-DLLP的情况下,数据链路层单元22(发送侧)重新发送保存在重试缓冲区中的TLP。
事务层单元23根据需要检查从数据链路层接收的TLP中的ECRC错误。此外,事务层单元23检查报头信息以及报头信息与TLP中的数据之间的完整性。当不存在错误时,事务层单元23将接收通知和报头中包括的信息发送至与软件层对应的数据处理单元13(图3),并将有效载荷存储到接收缓冲区24中。在接收TLP是完成TLP的情况下,事务层单元23核对请求发送期间的请求TLP的标签和响应接收期间的完成TLP的标签,以执行关于是否已接收到预期响应的完成检查。报头包括地址、TLP类型、传输大小、请求方ID或完成方ID、标签等。
图5是示出数据链路层单元22的配置示例的图。如图5所示,数据链路层单元22包括延迟与交换处理单元31、信道选择单元32、序列号检查单元33、比较单元34、LCRC计算单元35-1和35-2、信道选择单元36和检查结果确认单元37。对于信道CH0和CH1中的每一个,数据链路层单元22从物理层单元21接收序列号SQN、TLP、LCRC和删除指令DEL(根据需要)。删除指令DEL(EDB:EnD Bad)是例如当在传输期间在数据中检测到错误时被发送以使第二部件300取消发送数据的指令。会与分组结束同步地发送该删除指令DEL。因此,在结束处确定是否接收到分组并将其发送至后续阶段。
为了实现两个信道之间的交叠分组处理同时抑制下游阶段中的分组接收处理资源的成本,延迟与交换处理单元31使信道中的一个的数据时序延迟,并且根据需要执行两个信道之间的数据交换。稍后将对该延迟与交换处理进行说明。
如参照图2所说明的,分组在两个信道之间交叠的情况仅在任何给定分组的结束与后续分组的起始在同一时钟周期中交叠时发生。此外,在后续分组是单周期分组的情况下,分组的结束在两个信道之间交叠。应当注意,分组的起始不会在两个信道之间交叠。换句话说,在前一分组的结束与后续分组的起始交叠的情况下,前一分组是具有多周期长度的分组。
延迟与交换处理单元31执行用于解决分组的结束在两个信道之间交叠的状态的处理。换句话说,在从延迟与交换处理单元31输出的两个信道中,调整任何给定信道中的分组结束的时序和另一信道中的另一分组结束的时序以使其不交叠。此外,分组的起始也不会在两个信道之间彼此交叠。然而,即使起始彼此不交叠而且结束彼此不交叠,也存在起始与结束彼此交叠的状态。
由于设置了延迟与交换处理单元31,因此PCIe接收电路12中在延迟与交换处理单元31的下游阶段中处理分组的分组处理单元(事务层单元23等)不必处理其结束在两个信道之间彼此交叠的分组。因此,在两个信道之间交叠的分组能够得到处理,同时避免了分组处理单元中的处理的复杂化和处理资源的重复。
当信道选择单元32在从延迟与交换处理单元31输出的两个信道中的任何一个中检测到分组的起始时,信道选择单元32将该分组的序列号SQN发送至序列号检查单元33。此外,当信道选择单元32在从延迟与交换处理单元31输出的两个信道中的任何一个中检测到分组的结束时,信道选择单元32将该分组的LCRC发送至比较单元34。
序列号检查单元33通过将当前保存的序列号与当前接收的序列号进行比较来检查分组的接收是否有丢失、是否重复接收分组等。每当正常接收到分组时,在分组结束的时序处根据来自检查结果确认单元37的指令使得序列号检查单元33所保存的序列号增加1。
比较单元34将从信道选择单元32接收的LCRC与从信道选择单元36接收的LCRC计算值进行比较,并向检查结果确认单元37通知比较结果。从信道选择单元36输出的LCRC计算值是由LCRC计算单元35-1和35-2计算的。由于LCRC计算单元35-1和35-2连续地计算构成分组的每个字节的CRC(替选地,多字节长度的数据部分),因此在两个信道中并行地执行LCRC计算。在延迟与交换处理单元31的输出中,两个信道之间的分组交叠并未被完全解决,并且因此,并行地设置了LCRC计算单元35-1和35-2。信道选择单元36选择并输出要被比较的信道的LCRC计算值。
检查结果确认单元37基于来自比较单元34的比较结果来检查是否存在LCRC错误。在来自比较单元34的比较结果指示LCRC匹配的情况下,检查结果确认单元37确定不存在LCRC错误。在序列号检查中不存在问题、LCRC检查中不存在问题并且没有接收到分组删除指令DEL的情况下,于是检查结果确认单元37命令使序列号增加,并且输出从延迟与交换处理单元31提供并且已去除其中的LCRC的TLP以及未改变其值的删除指令DEL。当存在错误时,删除指令DEL变为指示删除的值。这些确认处理和输出处理是针对两个信道CH0和CH1独立执行的。
在数据链路层单元22中设置了延迟与交换处理单元31,使得分组结束在两个信道之间不交叠。如果分组结束交叠,则不仅是LCRC计算单元35-1和35-2,还有比较单元34都需要重复设置。此外,序列号检查单元33中的序列号更新处理会变得更加复杂。例如,在同一时钟周期中同时接收到两个结束的情况下,需要进行与通常不同的控制——在序列号的更新处理中使序列号增加2而不是增加1。同样,在下游阶段的事务层单元23中,需要提供重复的处理资源并使处理复杂化。如图5的配置那样,延迟与交换处理单元31允许处理在两个信道之间交叠的分组,同时避免了数据链路层单元22中的分组处理单元和后续阶段中的处理资源的重复和处理的复杂化。
图6是示出事务层单元23的配置示例的图。如图6所示的事务层单元23包括信道选择单元41、报头保存单元42、报头信息检查单元43、完成检查单元44以及选择确认单元45。对于信道CH0和CH1中的每一个,事务层单元23从数据链路层单元22接收TLP和删除指令DEL(根据需要)。
当信道选择单元41在从延迟与交换处理单元31输出的两个信道中的任何一个中检测到分组的起始时,信道选择单元41将该分组的报头发送至报头保存单元42和完成检查单元44。此外,当信道选择单元41在从延迟与交换处理单元31输出的两个信道中的任何一个中检测到分组的结束时,信道选择单元41将关于该结束的信息发送至完成检查单元44。
报头信息检查单元43基于关于保存在报头保存单元42中的报头的信息来执行各种检查。在接收分组是读取请求完成的情况下,完成检查单元44执行所发送的请求与所接收的完成之间的对应性确认。报头信息包括报头长度、指示是否包括数据的格式信息、指示请求类型的类型信息、分组长度信息等。在接收分组是读取请求完成的情况下,报头中还包括完成状态信息等。在存在不一致(例如,无法获得接收分组与请求之间的对应的情况、分组长度信息与实际分组长度不同的情况、完成状态信息与格式信息之间的组合涉及问题的情况等)的情况下会报告错误。此外,在所请求的类型不受支持的情况下也会报告具有此含义的错误。错误报告从报头信息检查单元43或完成检查单元44被发送至选择确认单元45。
在检查结果中不存在问题的情况下,选择确认单元45与在其中检测到分组结束的信道中的一个同步地发送接收通知。此外,选择确认单元45向接收缓冲区24附加写入指令WE,并且将从数据链路层单元22接收的TLP的有效载荷DT写入接收缓冲区24。
如果在图5中未设置延迟与交换处理单元31,则在图6的事务层单元23中需要重复设置报头保存单元42、报头信息检查单元43、完成检查单元44和选择确认单元45。正如图5所示的配置中那样,数据链路层单元22中设置的延迟与交换处理单元31允许处理在两个信道之间交叠的分组,同时避免了事务层单元23中处理资源的重复和处理的复杂化。
在上述配置中,延迟与交换处理单元31被设置在数据链路层单元22中,但是设置延迟与交换处理单元的位置也可以在事务层单元23中。在下文中,将说明延迟与交换处理单元31被设置在事务层单元23A中的配置。
图7是示出设置有延迟与交换处理单元31A的事务层单元23A的配置示例的图。如图7所示,事务层单元23A包括延迟与交换处理单元31A、报头保存单元42、报头信息检查单元43、完成检查单元44和选择确认单元45。对于信道CH0和CH1中的每一个,事务层单元23A从数据链路层单元22接收TLP和删除指令DEL(根据需要)。
为了实现两个信道之间的交叠分组处理同时抑制下游阶段中的分组接收处理资源的成本,延迟与交换处理单元31A使信道中的一个的数据时序延迟,并且根据需要在两个信道之间执行数据交换。延迟与交换处理单元31A的配置和操作与上述延迟与交换处理单元31的配置和操作相同。在从延迟与交换处理单元31A输出的两个信道中,调整任何给定信道中的分组结束的时序和另一信道中的另一分组结束的时序以使其不交叠。分组的起始也不会在两个信道之间彼此交叠。然而,即使起始彼此不交叠而且结束彼此不交叠,也存在起始与结束彼此交叠的状态。图7所示的报头保存单元42、报头信息检查单元43、完成检查单元44和选择确认单元45的配置和操作可以与图6所示的对应单元的配置和操作相同。
如果不设置延迟与交换处理单元31A,则需要重复设置报头保存单元42、报头信息检查单元43、完成检查单元44和选择确认单元45。在图7所示的配置中,在事务层单元23A中设置的延迟与交换处理单元31A允许处理在两个信道之间交叠的分组,同时避免了处理资源的重复和处理的复杂化。
图8是示出在将延迟与交换处理单元31A设置在事务层单元23A中的情况下数据链路层单元22A的配置示例的图。图8所示的数据链路层单元22A包括信道选择单元32A、序列号检查单元33A、比较单元34-1和34-2、LCRC计算单元35-1和35-2以及检查结果确认单元37A。
在图8所示的数据链路层单元22A中未设置图5所示的延迟与交换处理单元31,因此,会出现分组结束在两个信道之间交叠的状态。在分组结束交叠时,不仅是LCRC计算单元35-1和35-2,还有比较单元34-1和34-2都需要重复设置。在图8所示的配置中,并行地设置有比较单元34-1和34-2。
当信道选择单元32A检测到接收分组的起始时,信道选择单元32A将该分组的序列号SQN发送至序列号检查单元33A。序列号检查单元33A通过将当前保存的序列号与当前接收的序列号进行比较来检查分组的接收是否有任何丢失、是否重复接收分组等。在分组结束的时序处根据来自检查结果确认单元37A的指令将序列号检查单元33A所保存的序列号更新为增加了1的数目。然而,在两个信道中同时检测到接收分组的结束的情况下,执行与通常不同的控制,并且序列号检查单元33A在更新期间使保存的序列号增加2而不是增加1。
设置比较单元34-1和34-2以分别对应于两个信道CH0和CH1。比较单元34-1和34-2中的每一个将对应信道中的接收分组中包括的LCRC与从LCRC计算单元35-1和35-2中的对应计算单元接收的LCRC计算值进行比较,并且向检查结果确认单元37A通知比较结果。检查结果确认单元37A基于来自比较单元34-1或34-2的比较结果来确认对应信道中存在或不存在LCRC错误。在来自比较单元34-1或34-2的比较结果指示LCRC匹配的情况下,检查结果确认单元37A确定对应信道中不存在LCRC错误。在序列号检查中不存在问题、LCRC检查中不存在问题并且没有接收到分组删除指令DEL的情况下,于是检查结果确认单元37A输出从物理层单元21提供并且已去除其中的LCRC的TLP以及未改变其值的删除指令DEL。所述比较处理、确认处理和输出处理是针对两个信道CH0和CH1独立执行的。
在下文中将说明由延迟与交换处理单元31执行的延迟处理和交换处理。如参照图2所说明的,仅当任何给定分组的结束和后续分组的起始位于同一时钟周期中时,分组会在两个信道之间彼此交叠。在前一分组的结束与后续分组的起始彼此交叠并且后续分组是单周期分组的情况下,前一分组的结束与后续分组的结束在同一时钟周期中交叠。在这种情况下,如果不重复设置用于在分组结束处执行的处理的资源,则接收侧可能无法赶上该处理。
在具有多周期长度的第一分组的结束与具有单周期长度的第二分组的结束在两个信道的输入侧处交叠的情况下,延迟与交换处理单元31开启如下状态:在从中接收到第二分组的信道的输出侧处使数据延迟一个周期。因此,可以在输出侧处解决前一分组的结束与后续分组的结束在同一时钟周期中交叠的状态。
在其中任何一个信道在该信道的输出侧处被延迟一个周期的延迟状态期间,当出现在信道的输入侧处任何信道中都不存在分组的周期时,交换处理单元31终止该信道的延迟状态。因此,可以终止延迟状态,并且可以恢复原始时序。如果在延迟状态存续的状态期间再次发生分组结束交叠的事件,这将导致每当发生此类事件时延迟量都增加。因此,优选的是在不损失适当机会的情况下终止延迟状态。
图9A和图9B是示出延迟与交换处理的第一示例的时序图。图9A示出了输入到延迟与交换处理单元31中的两个信道CH0和CH1中的分组。
图9B示出了从延迟与交换处理单元31输出的两个信道CH0和CH1中的分组。
在图9A所示的示例中,在周期T1中,第一信道CH0中的具有多周期长度的分组51的结束与第二信道CH1中的具有单周期长度的分组52的结束交叠。从该周期T1起,延迟与交换处理单元31开启如下状态:使针对分组52的第二信道CH1中的数据延迟一个周期。因此,如图9B所示,具有单周期长度的分组52延迟一个周期因而从周期T1转移到周期T2。
如图9A所示,在周期T2中出现了输入侧处的任何一个信道中都不存在分组的周期。如图9B所示,当该周期T2在第二信道CH1被延迟的状态期间到来时,在周期T2中终止第二信道CH1的延迟状态。
图10A和图10B是示出延迟与交换处理的第二示例的时序图。图10A示出了输入到延迟与交换处理单元31中的两个信道CH0和CH1中的分组。图10B示出了从延迟与交换处理单元31输出的两个信道CH0和CH1中的分组。
在图10A所示的示例中,在周期T3中,第一信道CH0中的具有多周期长度的分组53的结束与第二信道CH1中的具有单周期长度的分组54的结束交叠。从该周期T3起,延迟与交换处理单元31开启如下状态:使针对分组54的第二信道CH1中的数据延迟一个周期。因此,如图10B所示,具有单周期长度的分组54、具有多周期长度的分组55以及其后具有单周期长度的分组56均延迟了一个周期。
如图10A所示,在周期T4中出现了任何一个信道中都不存在分组的周期。如图10B所示,当该周期T4在第二信道CH1被延迟的状态期间到来时,在周期T4中终止第二信道CH1的延迟状态。
此外,作为又一控制操作,延迟与交换处理单元31还执行以下操作。当具有多周期长度的第三分组的结束与具有多周期长度的第四分组的结束在处于延迟状态的任何给定信道中的输入侧处连续时,延迟与交换处理单元31终止信道的延迟状态,并且在输出侧处开始信道之间的数据交换。如上所述,通过用于将第四分组传递到存在空位的信道的数据交换,可以终止延迟状态,并且可以在输出侧处在将第四分组保持在非延迟状态下的同时恢复原始时序。当检测到在输入侧处不存在具有多周期长度的第五分组的结束与具有另一多周期长度的分组的起始在信道之间交叠的状况时,在单个结束出现时终止信道之间的数据交换。因此,在适当的时刻,可以终止信道之间的数据交换,并且可以恢复原始时序。术语“单一结束”是指如下任一给定分组的结束:在存在该给定分组的结束的周期中该分组不与另一信道中的另一分组交叠。
图11A和图11B是示出延迟与交换处理的第三示例的时序图。图11A示出了输入到延迟与交换处理单元31中的两个信道CH0和CH1中的分组。图11B示出了从延迟与交换处理单元31输出的两个信道CH0和CH1中的分组。
在图11A示出的示例中,在周期T5中,第一信道CH0中的具有多周期长度的分组57的结束与第二信道CH1中的具有单周期长度的分组58的结束交叠。从该周期T5起,延迟与交换处理单元31开启如下状态:使针对分组58的第二信道CH1中的数据延迟一个周期。因此,如图11B所示,具有单周期长度的分组58以及其后的具有多周期长度的分组59延迟了一个周期。
如图11A所示,在周期T6中,具有多周期长度的分组59的结束和具有多周期长度的分组60的起始在输入侧处连续。应当注意,分组59是第三分组的示例,并且分组60是第四分组和第五分组的示例。如图11B所示,当该周期T6在第二信道CH1被延迟的状态期间到来时,终止第二信道CH1的延迟状态,并且开始信道之间的数据交换。作为信道之间的数据交换的结果,在相对于原始时序没有任何延迟的情况下使分组60从第二信道CH1移动到第一信道CH0。第二信道CH1中的延迟状态也被终止。在满足多周期长度分组60的结束与另一个多周期长度分组的起始在输入侧处交叠的条件的情况下,继续进行信道之间的数据交换。另一方面,在不满足上述条件的情况下,在这样的单一结束时终止信道之间的数据交换。如上所述,可以终止第二信道CH1中的延迟状态,并且可以在将分组60保持在非延迟状态下的同时恢复原始时序。
图12A和图12B是示出延迟与交换处理的第四示例的时序图。图12A示出了输入到延迟与交换处理单元31中的两个信道CH0和CH1中的分组。图12B示出了从延迟与交换处理单元31输出的两个信道CH0和CH1中的分组。
在图12A所示的示例中,在周期T7中,第一信道CH0中的具有多周期长度的分组61的结束与第二信道CH1中的具有单周期长度的分组62的结束交叠。从该周期T7起,延迟与交换处理单元31开启如下状态:使针对分组62的第二信道CH1中的数据延迟一个周期。因此,如图12B所示,具有单周期长度的分组62以及其后的具有多周期长度的分组63延迟了一个周期。
在图12A的周期T9中,第二信道CH1中的具有多周期长度的分组64的结束与第一信道CH0中的具有单周期长度的分组65的结束交叠。从该周期T9起,延迟与交换处理单元31开启如下状态:使针对分组65的第一信道CH0中的数据延迟一个周期。因此,如图12B所示,具有单周期长度的分组65延迟了一个周期。
如图12A所示,在周期T8中,具有多周期长度的分组63的结束和具有多周期长度的分组64的起始在输入侧处连续。如图12B所示,当该周期T8在第二信道CH1被延迟的状态期间到来时,终止第二信道CH1的延迟状态,并且开始信道之间的数据交换。作为信道之间的数据交换的结果,在相对于原始时序没有任何延迟的情况下使分组64从第二信道CH1移动到第一信道CH0。第二信道CH1中的延迟状态也被终止。由于多周期长度分组64的结束与另一多周期长度分组的起始在输入侧处不交叠,因此信道之间的数据交换在出现单一结束时终止。如上所述,可以终止第二信道CH1中的延迟状态,并且可以在将分组64保持在非延迟状态下的同时恢复原始时序。
如图12A所示,在周期T10中出现了在输入侧处任何一个信道中都不存在分组的周期。如图12B所示,当该周期T10在第一信道CH0被延迟的状态期间到来时,在周期T10中终止第一信道CH0的延迟状态。
图13A和图13B是示出延迟与交换处理的第五示例的时序图。图13A示出了输入到延迟与交换处理单元31中的两个信道CH0和CH1中的分组。图13B示出了从延迟与交换处理单元31输出的两个信道CH0和CH1中的分组。
在图13A所示的示例中,在周期T11中,第一信道CH0中的具有多周期长度的分组71的结束与第二信道CH1中的具有单周期长度的分组72的结束交叠。从该周期T11起,延迟与交换处理单元31开启如下状态:使针对分组72的第二信道CH1中的数据延迟一个周期。因此,如图13B所示,具有单周期长度的分组72以及其后的具有多周期长度的分组73延迟了一个周期。
如图13A所示,在周期T12中,具有多周期长度的分组73的结束和具有多周期长度的分组74的起始在输入侧处连续。如图13B所示,当该周期T12在第二信道CH1被延迟的状态期间到来时,终止第二信道CH1的延迟状态,并且开始信道之间的数据交换。作为信道之间的数据交换的结果,在相对于原始时序没有任何延迟的情况下使分组74从第二信道CH1移动到第一信道CH0。第二信道CH1中的延迟状态也被终止。
由于分组74的结束与多周期长度分组75的起始在输入侧处交叠,因此并不是在分组74的结束处终止而是继续进行信道之间的数据交换。作为信道之间的数据交换的结果,在相对于原始时序没有任何延迟的情况下使分组75从第一信道CH0移动到第二信道CH1。
由于具有多周期长度分组75的结束与后续的多周期长度分组的起始在输入侧处不交叠,因此在周期T13中的单一结束处终止信道之间的数据交换。如上所述,可以终止第二信道CH1中的延迟状态,并且可以在将分组74和分组75保持在非延迟状态下的同时恢复原始时序。
如上文参照图9A和图9B至图13A和图13B所示的示例所说明的,延迟与交换处理单元31执行用于解决两个信道之间的分组结束的交叠的处理。该处理可以通过利用与分组同步的命令和逻辑电路来控制分组数据的延迟和在信道之间的交换来实现。
图14是示出与分组同步的命令的示例的图。与第一信道CH0中的分组同步地提供命令Cmd0。与第二信道CH1中的分组同步地提供命令Cmd1。图14所示的分组和命令的时间变化对应于图13A所示的分组的时间变化。
命令“ST”指示多周期长度分组的起始周期(即,第一周期)。命令“MID”指示多周期长度分组的中间周期(即,第二周期到结束周期之前的周期)。命令“END”指示多周期长度分组的结束周期。命令“1CY”指示其中布置有单周期长度分组的周期。可以将这些命令与诸如TLP、DLLP等的分组同步地从物理层单元21提供给数据链路层单元22。更具体地,当分组被布置在两个信道中时,物理层单元21可以生成这些命令,并且与每个信道中的分组数据同步地发送命令。换句话说,命令Cmd0与第一信道CH0同步发送,并且命令Cmd1与信道CH1同步发送。
图15是示出执行延迟与交换处理单元31的处理的逻辑电路的第一部分的图。图15中示出的逻辑电路包括解码器81、解码器82、“与”电路83、“与”电路84、具有一个负逻辑输入的“与”电路85和具有一个负逻辑输入的“与”电路86。解码器81对指示第一信道CH0的状态的命令Cmd0进行解码,并且使得与解码结果匹配的输出信号线中的一个为高。例如,在命令Cmd0是指示多周期长度分组的结束周期的“END”的情况下,解码器81将与“END”对应的输出信号线设置为高,并且将其他输出信号线设置为低。同样,解码器82对指示第二信道CH1的状态的命令Cmd1进行解码,并且使得与解码结果匹配的输出信号线中的一个为高。
在第一信道CH0是当前周期中的单周期分组并且信道CH1是分组结束的情况下,“与”电路83将延迟设置信号set_delay0的输出设置为高。在其他情况下,延迟设置信号set_delay0被设置为低。在第一信道CH0是当前周期中的分组结束并且信道CH1是单周期分组的情况下,“与”电路84将延迟设置信号set_delay1设置为高。在其他情况下,延迟设置信号set_delay1被设置为低。这些延迟设置信号set_delay0和set_delay1被分别用于设置(开启)信道CH0和CH1中的延迟状态。
具有一个负逻辑输入的“与”电路85在第一信道CH0是单周期分组并且信道CH1是分组结束的周期中生成低Cmd_mod0,而在其他情况下生成与命令Cmd0相等的Cmd_mod0。具有一个负逻辑输入的“与”电路86在第一信道CH0是分组结束并且信道CH1是单周期分组的周期中生成低Cmd_mod1,而在其他情况下生成与命令Cmd1相等的Cmd_mod1。
图16A和图16B是示出执行延迟与交换处理单元31的处理的逻辑电路的第二部分的图。图16A和图16B所示的逻辑电路包括D触发器87-0、87-1、88-0和88-1。每个D触发器与同步于信道CH0和CH1的时钟信号同步地检索输入数据。
因此,D触发器87-0和87-1将命令Cmd0和Cmd1分别延迟一个时钟。延迟了一个时钟的命令被分别表示为命令Cmd0_t1和Cmd1_t1。D触发器88-0和88-1将第一信道CH0中的事务层分组TLP0和第二信道CH1中的事务层分组TLP1分别延迟一个时钟。延迟了一个时钟的分组被分别表示为TLP0_t1和TLP1_t1。如后文所述,当满足预定条件时,可以通过用TLP0_t1和TLP1_t1分别替换TLP0和TLP1来设置延迟一个时钟的延迟状态。
图17是示出用于执行延迟与交换处理单元31的处理的逻辑电路的第三部分的图。如图17所示的逻辑电路包括解码器81和82、负逻辑输入“与”电路90、“或”电路91和92、D触发器93、具有一个负逻辑输入的“与”电路94、“或”电路95和96、D触发器97以及具有一个负逻辑输入的“与”电路98。
解码器81的输出“有效”对应于图15所示的四个输出ST、MID、END和1CY的“或”运算。解码器82的输出“有效”对应于图15所示的输出ST、MID,END和1CY的“或”运算。因此,当解码器81的所有四个输出信号和解码器82的所有四个输出信号都为低时,负逻辑输入“与”电路90(即,“或非”电路)生成为高的输出。如上所述,在信道被延迟的状态下,当出现在输入侧处任何一个信道中都不存在分组的周期时,延迟与交换处理单元31终止该信道的延迟状态。负逻辑输入“与”电路90的输出是检测上述“任何一个信道中都不存在分组的周期”的检测信号。
当在任何给定周期中图15所示的延迟设置信号set_delay0变为高时,作为D触发器93的输出的延迟状态信号delay0从随后的周期起变为高。延迟状态信号delay0的高状态持续直到D触发器93复位。引起该复位并终止延迟状态的条件之一是负逻辑输入“与”电路90的输出变为高,即,出现“任何一个信道中都不存在分组的周期”。
同样,当在任何给定周期中图15中所示的延迟设置信号set_delay1变为高时,作为D触发器97的输出的延迟状态信号delay1从随后的周期起变为高。延迟状态信号delay1的高状态持续直到D触发器97复位。引起所述复位并终止延迟状态的条件之一是负逻辑输入“与”电路90的输出变为高,即,出现“任何一个信道中都不存在分组的周期”。
图18是示出用于执行延迟与交换处理单元31的处理的逻辑电路的第四部分的图。图18所示的逻辑电路包括解码器81和82、各自具有一个负逻辑输入的“与”电路100和101、“或”电路102和103、D触发器104以及具有一个负逻辑输入的“与”电路105。该逻辑电路还包括解码器106、“与”电路107、解码器108以及“与”电路109。
解码器106对第一信道CH0中被延迟一个周期的命令Cmd0_t1进行解码并输出解码结果。“与”电路107得出以下结果的逻辑合取:第一信道CH0中的命令Cmd0的解码结果ST、第一信道CH0中延迟了一个周期的命令Cmd0_t1的解码结果END以及第一信道CH0中的延迟状态信号delay0。当具有多周期长度的任何给定分组的结束和具有多周期长度的另一分组的起始在处于延迟状态的信道CH0中连续时,“与”电路107的输出变为高,使得用于设置信道间数据交换的信号set_crossline0变为高。在随后的时钟周期中,指示信道间数据交换状态的信号crossline变为高。
解码器108对第二信道CH1中延迟了一个周期的命令Cmd1_t1进行解码并输出解码结果。“与”电路109得出以下结果的逻辑合取:第二信道CH1中的命令Cmd1的解码结果ST、第二信道CH1中延迟了一个周期的命令Cmd1_t1的解码结果END以及第二信道CH1中的延迟状态信号delay1。当具有多周期长度的任何给定分组的结束和具有多周期长度的另一分组的起始在处于延迟状态的第二信道CH1中连续时,“与”电路109的输出变为高,使得用于设置信道间数据交换的信号set_crossline1变为高。在随后的时钟周期中,指示信道间数据交换状态的信号crossline变为高。
在处于在第一信道CH0中检测到具有多周期长度的任何给定分组的结束,在第二信道CH1中未检测到具有多周期长度的另一分组的起始的周期的情况下,具有一个负逻辑输入的“与”电路100的输出被设置为高。同样,在处于在第二信道CH1中检测到具有多周期长度的任何给定分组的结束,在第一信道CH0中未检测到具有多周期长度的另一分组的起始的周期的情况下,具有一个负逻辑输入的“与”电路101的输出被设置为高。当“与”电路100或101的输出被设置为高时,数据交换复位信号reset_crossline变为高,并且指示信道间数据交换状态的信号crossline被复位。换句话说,当在输入侧处多周期长度分组的结束与多周期长度分组的起始在信道之间不交叠时,信道间数据交换状态终止。
用于设置信道间数据交换的信号set_crossline0被施加到图17所示的“或”电路91的输入中的一个。因此,在任何给定多周期长度分组的结束和另一多周期长度分组的起始在处于延迟状态的信道CH0中连续的情况下,用于终止信道CH0的延迟状态的延迟状态复位信号reset_delay0被设置为高。当延迟状态复位信号reset_delay0被设置为高时,信道CH0的延迟状态终止。
同样,用于设置信道间数据交换的信号set_crossline1被施加到图17所示的“或”电路95的输入中的一个。因此,当多周期长度分组的结束和多周期长度分组的起始在处于延迟状态的信道CH1中连续时,用于终止信道CH1的延迟状态的延迟状态复位信号reset_delay1被设置为高。当延迟状态复位信号reset_delay1被设置为高时,信道CH1的延迟状态终止。
图19是示出用于执行延迟与交换处理单元的处理的逻辑电路的第五部分的图。图19所示的逻辑电路包括选择器电路110至115。
当延迟状态信号delay0为低时,选择器电路110选择未被延迟的分组TLP0,而当延迟状态信号delay0为高时,选择器电路110选择被延迟一个周期的分组TLP0_t1。然后,选择器电路110输出所选择的分组。同样,当延迟状态信号delay1为低时,选择器电路113选择未被延迟的分组TLP1,而当延迟状态信号delay1为高时,选择器电路113选择被延迟一个周期的分组TLP1_t1。然后,选择器电路113输出所选择的分组。如上所述,通过控制选择器电路110和113来执行延迟与交换处理单元31对信道CH0和CH1的延迟操作。
在执行信道之间的数据交换的时段中,作为施加到选择器电路111和112的选择控制信号的数据交换设置信号set_crossline1和数据交换状态信号crossline中只有一个变为高。更具体地,仅在用于开启(设置)信道间数据交换的周期中使数据交换设置信号set_crossline1变为高,并且在随后的周期中保持数据交换状态信号crossline为高。在这些信号为高的时段中,选择器电路111和112选择信道CH1而不是信道CH0中的分组,并且输出所选择的分组。因此,从输出TLP_out0输出通过执行信道之间的数据交换获得的分组。
在执行信道之间的数据交换的时段中,作为施加到选择器电路114和115的选择控制信号的数据交换设置信号set_crossline0和数据交换状态信号crossline中只有一个变为高。更具体地,仅在用于开启(设置)信道间数据交换的周期中使数据交换设置信号set_crossline0变为高,并且在随后的周期中将数据交换状态信号crossline保持为高。在这些信号为高的时段中,选择器电路114和115选择信道CH0而不是信道CH1中的分组,并且输出所选择的分组。因此,从输出TLP_out1输出通过执行信道之间的数据交换获得的分组。
图20是示出用于执行延迟与交换处理单元31的处理的逻辑电路的第六部分。图20所示的逻辑电路包括选择器电路120至125。图20所示的电路配置和所施加的选择器控制信号与图19所示的电路配置和所施加的选择器控制信号相同,并且不同之处仅在于输入到选择器电路中以供选择的信号不是分组而是命令。图20所示的逻辑电路以类似于图19所示的逻辑电路的方式操作,并且选择器电路120至125根据需要执行每个信道中的命令延迟以及信道之间的命令交换。
图21是示出图15至图20所示的每个信号的状态变化的时序图。信道CH0和CH1中的命令的时间变化被示为图21的最上一行中的命令Cmd0和Cmd1。图12的其他部分示出了在给定命令Cmd0和Cmd1中示出的命令时图15至图20所示的电路的信号部分如何变化。
例如,在周期T11中,信道CH1中具有多周期长度的分组的结束(即命令Cmd1的“END”)与信道CH0中具有单周期长度的另一分组的结束(即命令Cmd0的“1CY”)交叠。因此,在该周期T11中,延迟设置信号set_delay0变为高(图21中画线的区段表示信号值为高的周期)。根据该延迟设置信号set_delay0的设置为高,延迟状态信号delay0在周期T11之后的某个时段(在此示例中为四个周期的时段)保持为高。在该时段中,如命令Cmd_out0所示,信道CH0的命令被延迟一个周期。
此外,在周期T12中,具有多周期长度的分组的结束(Cmd0的“END”)和具有多周期长度的分组的起始(Cmd0的“ST”)在输入侧处连续。因此,在该周期T12中,延迟状态复位信号reset_delay0变为高,并且因此,延迟状态信号delay0的高状态终止。在该周期T12中,数据交换设置信号set_crossline0变高,并且因此,数据交换状态信号crossline在周期T12之后的某个时段(在该示例中为三个周期的时段)保持为高。在该时段中,如命令Cmd_out0和Cmd_out1所示,输出在信道之间交换的命令。
此外,在周期T13中,多周期长度分组的结束(Cmd1的“END”)和另一多周期长度分组的起始在输入侧处不交叠。因此,在该周期T13中,数据交换复位信号reset_crossline变高,并且数据交换状态信号crossline被复位。因此,信道之间的数据交换状态终止。
如上所述,通过使用图15至图21所示的解码器、逻辑电路、延迟电路和选择器电路来实现基于与分组同步的命令的逻辑电路操作,从而可以控制分组数据的延迟和信道之间的交换。因此,可以通过简单的配置高效地实现延迟与交换处理。
图22是示出由延迟与交换处理单元31执行的延迟与交换操作的处理流程的流程图。在图22中,流程图中描述的每个步骤的执行顺序仅是示例,并且本申请所预期的技术范围不限于所描述的执行顺序。例如,即使本申请描述了在步骤A之后执行步骤B,也可能不是只在步骤A之后执行步骤B,就物理和逻辑方面而言在某些情况下也可以在步骤B之后执行步骤A。在这种情况下,应当理解,可以出于本申请的公开内容的技术目的而在步骤B之后执行步骤A,无论以什么顺序执行这些步骤,只要产生流程图的处理的所有结果相同即可。即使本申请描述了在步骤A之后执行步骤B,也并不意味着将上述情况排除在本申请的预期技术范围之外,并且应当理解,这样的情况在本申请的预期技术范围内。
在步骤S1中,延迟与交换处理单元31确定是否同时接收到具有多周期长度的分组的结束和单周期分组。在确定结果为“否”的情况下,延迟与交换处理单元31终止具有图22所示顺序的处理。在确定结果为“是”的情况下,处理进行至步骤S2。
在步骤S2中,延迟与交换处理单元31在出现单周期分组的信道中开启延迟。在步骤S3中,在出现单周期分组的周期CYL1中,延迟与交换处理单元31抑制出现该单周期分组的信道中输出的命令。在步骤S4中,延迟与交换处理单元31从周期CYL1之后的周期起选择出现该单周期分组的信道中的延迟了一个周期的信号(命令和分组)。
在步骤S5中,延迟与交换处理单元31确定是否出现任何一个信道中都不存在分组的周期。在确定结果为“是”的情况下,延迟与交换处理单元31在步骤S6中终止延迟状态,并且此后终止图22所示的过程的处理。在确定结果为“否”的情况下,处理进行至步骤S7。
在步骤S7中,延迟与交换处理单元31确定在被设置为延迟的信道中是否接收到具有多周期长度的分组的起始。在确定结果为“否”的情况下,延迟与交换处理单元31返回至步骤S5并且继续进行后续处理。在确定结果为“是”的情况下,处理进行至步骤S8。
在步骤S8中,在被设置为延迟的信道中,延迟与交换处理单元31在接收到具有多周期长度的分组的起始的周期CYL2中终止延迟状态。在步骤S9中,延迟与交换处理单元31在周期CYL2中断言用于设置信道之间的数据交换的信号。在步骤S10中,延迟与交换处理单元31在周期CYL2中从设置了延迟的信道以外的另一信道中输出具有多周期长度的分组的起始。在步骤S10中,延迟与交换处理单元31从周期CYL2之后的周期起保持信道之间的数据交换状态。
在步骤S12中,延迟与交换处理单元31确定是否接收到具有多周期长度的分组的单一结束。在确定结果为“否”的情况下,延迟与交换处理单元31返回至步骤S12以继续进行后续处理。在确定结果为“是”的情况下,处理进行至步骤S13。在步骤S13中,延迟与交换处理单元31终止信道间数据交换状态。上文已经说明了由延迟与交换处理单元31执行的用于控制分组的延迟和交换的过程。
在上文中已经基于实施方式说明了本发明,但是本发明不限于上述实施方式,并且在权利要求的范围内可以以各种方式对本发明进行修改。
例如,在上述实施方式的说明中,采用PCIe作为示例进行说明。然而,本申请的配置可以应用于出现与上述实施方式类似的问题的任何分组接收系统。更具体地,可以在期望解决前一分组的结束与后续单周期分组的结束在同一周期中在两个信道之间交叠的状态的情境中应用以上实施方式中说明的延迟与交换处理。
根据本申请的公开内容的至少一个实施方式,可以处理在两个信道之间交叠的分组同时抑制分组接收处理资源的成本。
本文所记载的所有示例和条件性语言旨在为了帮助读者理解发明者为深化现有技术而贡献的本发明和构思的教学目的,并且其应当被解释为不限于所具体记述的示例和条件,并且说明书中这些示例的组织方式也不涉及本发明的优势和劣势的展示。尽管已经详细描述了本发明的实施方式,但是应当理解,在不脱离本发明的精神和范围的情况下,可以对本发明作出各种改变、替换和变更。
Claims (7)
1.一种算术处理装置,包括:
延迟与交换处理电路,其用于在检测到从第一信道的输入侧接收的第一分组的结束与从第二信道的输入侧接收的具有单分组长度的第二分组的起始在同一周期中交叠时,通过使所述第二信道的输出侧延迟一个周期来将所述第二信道的输出侧置于延迟状态;以及
分组处理电路,其用于对由所述延迟与交换处理电路从两个信道输出的分组执行处理。
2.根据权利要求1所述的算术处理装置,其中,所述延迟与交换处理电路用于当在所述延迟状态期间出现所述两个信道中的任何一个的输入侧处都不存在分组的周期时终止所述延迟状态。
3.根据权利要求1或2所述的算术处理装置,其中,所述延迟与交换处理电路用于当在所述延迟状态下出现具有多周期长度的第三分组的结束与具有多周期长度的第四分组的起始在所述第二信道的输入侧处连续时,终止所述延迟状态并且在所述两个信道的输出侧处开启用于在所述两个信道之间交换数据的数据交换状态。
4.根据权利要求3所述的算术处理装置,其中,所述延迟与交换处理电路用于当在所述数据交换状态下检测到不存在具有多周期长度的第五分组的结束与另一多周期长度分组的起始在所述两个信道的输入侧处交叠的情况时,在出现所述第五分组的结束的周期中终止所述数据交换状态。
5.根据权利要求1或2所述的算术处理装置,其中,所述延迟与交换处理电路包括:
解码器,其用于对所述两个信道的输入侧处的分组的状态进行解码以得到第一输出;
逻辑电路,其用于对所述第一输出执行逻辑运算以得到第二输出;
延迟电路,其用于使从所述两个信道的输入侧接收的数据延迟;以及
第一选择器电路,其用于根据所述第二输出来选择所述两个信道的输入侧处的数据或者从所述延迟电路输出的数据。
6.根据权利要求5所述的算术处理装置,其中,所述延迟与交换处理电路包括:
第二选择器电路,其用于根据所述第二输出来选择对应于所述第一信道的数据和对应于所述第二信道的数据中的一者;以及
第三选择器电路,其用于根据所述第二输出来选择对应于所述第一信道的数据和对应于所述第二信道的数据中的另一者。
7.一种用于算术处理装置的控制方法,所述算术处理装置对包括第一信道和第二信道的两个信道中的分组进行处理,所述控制方法包括:
在检测到从所述第一信道的输入侧接收的第一分组的结束与从所述第二信道的输入侧接收的具有单分组长度的第二分组的起始在同一周期中交叠时,通过使所述第二信道的输出侧延迟一个周期来将所述第二信道的输出侧置于延迟状态;以及
对所述两个信道的输出侧处的分组执行处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-204083 | 2018-10-30 | ||
JP2018204083A JP7103162B2 (ja) | 2018-10-30 | 2018-10-30 | 演算処理装置及び演算処理装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111124971A true CN111124971A (zh) | 2020-05-08 |
Family
ID=68281303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911017840.8A Pending CN111124971A (zh) | 2018-10-30 | 2019-10-24 | 算术处理装置和算术处理装置的控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11226790B2 (zh) |
EP (1) | EP3647961A1 (zh) |
JP (1) | JP7103162B2 (zh) |
CN (1) | CN111124971A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11726944B2 (en) | 2021-07-22 | 2023-08-15 | Faraday Technology Corporation | Transaction layer circuit of PCIe and operation method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004120587A (ja) * | 2002-09-27 | 2004-04-15 | Matsushita Electric Ind Co Ltd | 同期回路 |
US6813282B1 (en) * | 1999-09-24 | 2004-11-02 | Nec Corporation | Isochronous packet transfer method, computer readable recording media recorded with control program for executing isochronous packet transfer, and bridge and packet transfer control LSI |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09200239A (ja) | 1996-01-19 | 1997-07-31 | Hitachi Ltd | リング接続を用いたデータ転送方法及び情報処理システム |
AUPO648397A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Improvements in multiprocessor architecture operation |
JP4227218B2 (ja) | 1997-04-30 | 2009-02-18 | キヤノン株式会社 | 動的メモリ管理装置及びその制御方法 |
US20070028152A1 (en) * | 2005-08-01 | 2007-02-01 | Mishra Kishore K | System and Method of Processing Received Line Traffic for PCI Express that Provides Line-Speed Processing, and Provides Substantial Gate-Count Savings |
US8234424B2 (en) * | 2006-06-08 | 2012-07-31 | Integrated Device Technology, Inc. | Efficient strip-down and re-alignment of ingressing physical layer/data layer packets in an aggregated PCI-express port having eight lanes |
JP2010238150A (ja) * | 2009-03-31 | 2010-10-21 | Toshiba Corp | PCIExpress通信システム、及びその通信方法 |
JP5549575B2 (ja) | 2010-12-17 | 2014-07-16 | 富士通株式会社 | 並列計算機システム、同期装置、並列計算機システムの制御方法 |
JP5348263B2 (ja) * | 2012-02-29 | 2013-11-20 | 富士通株式会社 | データ伝送装置、データ伝送システムおよびデータ伝送方法 |
US10275388B2 (en) * | 2016-09-26 | 2019-04-30 | International Business Machines Corporation | Simultaneous inbound multi-packet processing |
US20190007153A1 (en) * | 2017-06-29 | 2019-01-03 | Qualcomm Incorporated | Systems and methods for concurrent transmission |
-
2018
- 2018-10-30 JP JP2018204083A patent/JP7103162B2/ja active Active
-
2019
- 2019-10-17 EP EP19203805.7A patent/EP3647961A1/en not_active Withdrawn
- 2019-10-24 CN CN201911017840.8A patent/CN111124971A/zh active Pending
- 2019-10-25 US US16/663,406 patent/US11226790B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6813282B1 (en) * | 1999-09-24 | 2004-11-02 | Nec Corporation | Isochronous packet transfer method, computer readable recording media recorded with control program for executing isochronous packet transfer, and bridge and packet transfer control LSI |
JP2004120587A (ja) * | 2002-09-27 | 2004-04-15 | Matsushita Electric Ind Co Ltd | 同期回路 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11726944B2 (en) | 2021-07-22 | 2023-08-15 | Faraday Technology Corporation | Transaction layer circuit of PCIe and operation method thereof |
Also Published As
Publication number | Publication date |
---|---|
EP3647961A1 (en) | 2020-05-06 |
US20200133634A1 (en) | 2020-04-30 |
US11226790B2 (en) | 2022-01-18 |
JP7103162B2 (ja) | 2022-07-20 |
JP2020072337A (ja) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5107880B2 (ja) | データ転送処理装置及び方法 | |
US7821919B2 (en) | Data processing apparatus and data processing method | |
CN101814060B (zh) | 在背靠背非透明桥中进行系统间协议交换的方法和装置 | |
JP4966695B2 (ja) | マルチマスタのチェーン接続された二線シリアルバス装置及びディジタル状態機械 | |
TWI572166B (zh) | 操作一通訊裝置的方法 | |
TW200530822A (en) | Serial peripheral interface (SPI) apparatus with write buffer for improving data throughput | |
JPH02227765A (ja) | デジタル・コンピユータのデータ転送装置 | |
KR20190134480A (ko) | 제1 클록 도메인과 제2 클록 도메인 사이에서 송신된 주요 신호의 에러 체크 | |
US20200218215A1 (en) | Circuit for coupling a field bus and a local bus | |
CN114286992A (zh) | 菊花链复杂命令 | |
CN111124971A (zh) | 算术处理装置和算术处理装置的控制方法 | |
JP2008282314A (ja) | シミュレータ、シミュレーション方法 | |
US9817784B2 (en) | Multi-port transmitter device for transmitting at least partly redundant data, an associated control system, an associated method and an associated computer program product | |
US20080147906A1 (en) | DMA Transferring System, DMA Controller, and DMA Transferring Method | |
US20230239256A1 (en) | Wide Elastic Buffer | |
US11782636B2 (en) | Method for data processing of an interconnection protocol to support multiple lanes, controller, and storage device | |
JP4447341B2 (ja) | 情報処理装置 | |
KR19980701425A (ko) | 병렬 데이터버스방식에 있어서의 오류검출과 오류정정 | |
CN116745753A (zh) | 用于网络通信链路上的请求分组的标签 | |
US8984193B1 (en) | Line speed sequential transaction packet processing | |
KR20060004829A (ko) | 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 | |
US20100138577A1 (en) | Apparatus and method for writing bitwise data in system on chip | |
JPS63228856A (ja) | 通信制御装置 | |
CN116701084A (zh) | 总线协议验证方法、装置、设备、存储介质及程序产品 | |
JP6384359B2 (ja) | 分散共有メモリを有する情報処理装置、方法、および、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200508 |
|
WD01 | Invention patent application deemed withdrawn after publication |