CN116775547A - 一种支持pci-e弱序请求乱序发射的装置 - Google Patents
一种支持pci-e弱序请求乱序发射的装置 Download PDFInfo
- Publication number
- CN116775547A CN116775547A CN202310654508.2A CN202310654508A CN116775547A CN 116775547 A CN116775547 A CN 116775547A CN 202310654508 A CN202310654508 A CN 202310654508A CN 116775547 A CN116775547 A CN 116775547A
- Authority
- CN
- China
- Prior art keywords
- request
- order
- requests
- counter
- strong
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 34
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 3
- 241001522296 Erithacus rubecula Species 0.000 claims 1
- 230000002093 peripheral effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及一种支持PCI‑E弱序请求乱序发射的装置,包括:判断逻辑器,用于判断收到的请求是强序请求还是弱序请求;请求寄存器,用于采用队列的形式存储不满足发射条件的强序请求;译码逻辑器,用于对发出的请求和收到的响应进行解析,确定需要进行操作的计数器;计数器,所述计数器的数目与请求寄存器中的队列数目相同,用于记录已发射请求的数目;判断逻辑器在判断出收到的请求为弱序请求时,直接将弱序请求发往片上网络,在判断出收到的请求为强序请求时,请求寄存器以队列方式保存强序请求,当强序请求处于请求寄存器中的队列头,且对应的计数器的值为零时,强序请求满足发射条件,将强序请求发往片上网络。本发明能够减少硬件资源。
Description
技术领域
本发明涉及高性能处理器技术领域,特别是涉及一种支持PCI-E弱序请求乱序发射的装置。
背景技术
在高性能处理器中,随着处理器复杂程度的不断增加,互连由传统的总线向片上网络转变,I/O带宽的需求也不断增加。PCI-E协议(PeripheralComponentInterconnectExpress),一种高速串行计算机扩展总线标准,基于其高性能、高带宽、伸缩性强(适用多种通道模式)的特性,目前已经成为一种主流的I/O传输协议。
随着技术的发展和处理器性能要求的提高,基于片上网络和PCI-E协议的微处理器体系结构更是受到更多青睐。如图3所示,处理器簇、PCI-E接口、存储设备等通过片上网络进行互连,基于此结构,通过支持各种事务的传输来实现整个系统的正常通信。
在一个处理器中,为保证存储一致性,要求不同事务的写之间必须保证一定的顺序。PCI-E协议中将事务分为强序请求和弱序请求两种类型,弱序请求不受次序限制,强序请求则必须顺序完成,即要求处理器接收请求的次序与PCI-E写入的次序保持一致。而处理器片上网络通常不保证请求的次序,当网络拥塞时,后进入片上网络的请求有可能先被处理器看到。
为了满足序的要求,最简单的方法是串行实现,即无论强序请求还是弱序请求,都保证收到上一请求的响应后才发出下一个请求,但该方式效率低下,不能发挥PCI-E协议高带宽的特点。
现有专利文献CN113076282A中提出了一种提升PCI-E带宽的装置,如图4所示,该装置设置了重发缓冲,正常状态下,请求按照先进先出的方式处理,后发出的请求不会超越之前发出的请求,而在特殊情况下,后发出的请求若超越了在先的请求,则进入重发机制,重新发送缓冲记录的请求以确保次序。这种方式虽然能够提升效率,但设计方案复杂,针对乱序引起的死锁问题还需要进行专门的处理,实现的难度极大,而且需要消耗大量的硬件资源。
发明内容
本发明所要解决的技术问题是提供一种支持PCI-E弱序请求乱序发射的装置,能够在支持PCI-E弱序请求乱序发射的情况下,减少硬件资源。
本发明解决其技术问题所采用的技术方案是:提供一种支持PCI-E弱序请求乱序发射的装置,包括:
判断逻辑器,用于判断收到的请求是强序请求还是弱序请求;
请求寄存器,用于采用队列的形式存储不满足发射条件的强序请求;
译码逻辑器,用于对发出的请求和收到的响应进行解析,确定需要进行操作的计数器;
计数器,所述计数器的数目与所述请求寄存器中的队列数目相同,用于记录已发射请求的数目;所述计数器在发出请求时进行加“1”操作,在收到响应时进行减“1”操作;所述已发射请求的数目作为所述计数器对应的强序请求的发射条件;
所述判断逻辑器在判断出收到的请求为弱序请求时,直接将所述弱序请求发往片上网络,在判断出收到的请求为强序请求时,将所述强序请求送入请求寄存器,所述请求寄存器以队列方式保存所述强序请求,当所述强序请求处于所述请求寄存器中的队列头,且对应的计数器的值为零时,所述强序请求满足发射条件,将所述强序请求发往片上网络。
所述发出的请求和收到的响应中均带有计数器的索引号域,所述计数器的索引号域用于记录所述发出的请求对应的计数器。
所述译码逻辑器基于所述计数器的索引号域确定需要进行操作的计数器。
所述的支持PCI-E弱序请求乱序发射的装置还包括:仲裁逻辑器,用于在弱序请求和强序请求同时申请发射时,通过预设规则进行仲裁。
所述预设规则为强序请求优先或强序请求和弱序请求公平轮转。
所述的支持PCI-E弱序请求乱序发射的装置还包括:与处理器簇连接的响应通道,所述响应通道仅用于传输处理器簇返回的响应。
所述的支持PCI-E弱序请求乱序发射的装置还包括:第一使能寄存器,所述第一使能寄存器在使能时将所有收到的请求直接发往片上网络。
所述的支持PCI-E弱序请求乱序发射的装置还包括:第二使能寄存器,所述第二使能寄存器在使能时将所有收到的请求全部进行串行处理。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过判断逻辑器、译码逻辑器、计数器队列和请求寄存器队列实现了PCI-E弱序请求乱序发射的应用场景需求,不但大幅提升了PCI-E接口的带宽,还避免了重传、死锁解除等其他方法的潜在风险问题。
附图说明
图1是本发明实施方式支持PCI-E弱序请求乱序发射的装置的结构示意图;
图2是本发明实施方式支持PCI-E弱序请求乱序发射的装置与处理器簇的连接示意图;
图3是现有技术中微处理器的体系结构图;
图4是现有技术中PCI-E与Cache一致性片上网络协议转换装置的结构示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种支持PCI-E弱序请求乱序发射的装置,该装置包括一判断逻辑器,用于判断收到的PCI-E事务的请求为强序请求还是弱序请求,当本装置接收到一个PCI-E事务的请求时,首先由该判断逻辑器判断该事务的请求是强序请求还是弱序请求。
本实施方式的装置还设置了一个寄存器和计数器,该寄存器中有1组请求信息缓冲队列,计数器的数目与请求信息缓冲队列的队列数目相同。寄存器的作用是将不满足发射条件的强序请求保存在请求信息缓冲队列中,计数器的作用是用于记录之前发出的请求的数目,该数目用来作为控制强序请求发送的条件。
当本装置收到的PCI-E事务的请求为弱序请求时,在请求报文的计数器索引号域中填入对应的计数器的索引号,然后直接申请发向片上网络;当本装置接收到的PCI-E事务的请求为强序请求时,需要将该强序请求存入信息缓冲队列中,只有该强序请求处于信息缓冲队列的队头且其对应的计数器的值为“0”时,强序请求才能申请发向片上网络。
当本装置向片上网络发送1个强序请求或者弱序请求时,相应的计数器的值会进行加“1”操作,处理器簇收到请求后会返回一个响应,本装置收到响应后,相应的计数器的值会进行减“1”操作。在片上网络正确运行的情况下,发出的请求数目和收到的响应数据应当是一致的,因此,计数器在正常工作状态下的最小值为“0”,不会出现小于“0”的情况。
本实施方式中的计数器的位宽为10位,其计数范围为0~1023,每发出一个请求,计数器的进行加“1”操作,每收到一个在先发出的请求返回的响应,计数器进行减“1”的操作,直至计数器的数值减为“0”。当计数器的值为“0”时,说明在此之前发出的所有的请求均收到了响应,而当计数器的值不为“0”时,则说明在此之前发出的请求还未全部收到响应。强序请求发送的条件为:该强序请求处于信息缓冲队列的队头且其对应的计数器的值为“0”,原因是强序请求要求目标方(也就是处理器簇)收到请求的顺序与源方(PCI-E设备)发出请求的顺序相同,即源方先发出弱序请求再发出强序请求,目标方则必须先收到弱序请求后再收到强序请求,如果接收的顺序颠倒则会出现存储一致性错误。弱序请求则没有上述顺序的要求,即源方先发出了强序请求后发出了弱序请求,目标方无论是先收到强序请求还是弱序请求都符合“PCI-E的序”的要求,不会出现故障。计数器为“0”时,说明此刻所有已发送请求,包括强序请求和弱序请求均已被接收方处理,此时发送强序请求不会超越任何已发送请求,符合PCI-E“序”的要求,可以避免处理器出现错误。
为了确定是对哪一个计数器进行相应的操作,发出的请求和收到的响应中均携带了计数器的索引号域,在本装置发出请求后,会返回加“1”操作的使能位及对应计数器的索引号,在收到响应后,同样会返回减“1”操作的使能位及对应计数器的索引号,本装置收到操作的使能信号后,由译码逻辑器对索引号进行译码,确定具体需要进行操作的计数器,并根据收到的使能位对其进行对应的减“1”操作。
本实施方式的装置还包括1个仲裁逻辑器,其作用是当强序请求和弱序请求同时符合发送条件时,需要根据预设规则对两者进行仲裁,判断先发送哪一类型的请求,预设规则可以是强序请求固定优先,也可以采用二者公平轮转的方式,或者也可以采用其他的仲裁策略,只要能够进行有效的仲裁,均在本发明的保护范围之内。
在实际工作场景下,本装置接收到强序请求后,将其写入信息缓冲队列,待其符合发射条件后进行发射,在此期间,如果后续收到的弱序请求,则将其报文进行相应处理后直接发往片上网络,如果收到的请求为强序请求,则同样将其写入信息缓冲队列,直到信息缓冲队列被全部占用。当信息缓冲队列被全部占用后,本发明的装置就处于等待状态,直到队头的强序请求满足发射条件被发向片上网络。
为了减少本实施方式的装置处于等待状态的时间,提升PCI-E事务的带宽,本装置设置的寄存器和计数器的深度为8,在此深度下,能够完全发挥PCI-E4.0设备的性能。当然,本发明队列的深度不限于8,需要根据实际的应用场景进行调整。只要使用了计数器和信息缓冲队列用于控制强序的PCI-E请求发向片上网络的时机,使其满足PCI-E”序”要求,并且实现了PCI-E弱序事务乱序发射或提升了PCI-E的性能,均落入本发明的保护范围。
优选的,如图2所示,各个处理器簇与本实施方式的装置之间还可以设置专门的响应通道,该响应通道仅用于传输处理器簇返回的响应,如此可以缩短响应传输的延时,从而减少了请求等待的时间,进一步提升了带宽。
本实施方式的装置还设置了使能寄存器0和使能寄存器1,在片上网络能够保证次序的情况下或不关心存储器写的次序的应用场景下,可以由软件配置使能寄存器0使能,这样本实施方式的装置会将所有的请求按照弱序请求处理,进入该装置的请求将全部直接发向Cache一致性片上网络;在对带宽要求不高的使用场景下,可以由软件配置使能寄存器1使能,如此进入本实施方式的装置的请求将全部串行处理,即上一个请求的响应收齐后才能发出下一个请求。
不难发现,本发明通过判断逻辑器、译码逻辑器、计数器队列和请求寄存器队列实现了PCI-E弱序请求乱序发射的应用场景需求,不但大幅提升了PCI-E接口的带宽,还避免了重传、死锁解除等其他方法的潜在风险问题。
Claims (8)
1.一种支持PCI-E弱序请求乱序发射的装置,其特征在于,包括:
判断逻辑器,用于判断收到的请求是强序请求还是弱序请求;
请求寄存器,用于采用队列的形式存储不满足发射条件的强序请求;
译码逻辑器,用于对发出的请求和收到的响应进行解析,确定需要进行操作的计数器;计数器,所述计数器的数目与所述请求寄存器中的队列数目相同,用于记录已发射请求的数目;所述计数器在发出请求时进行加“1”操作,在收到响应时进行减“1”操作;所述已发射请求的数目作为所述计数器对应的强序请求的发射条件;
所述判断逻辑器在判断出收到的请求为弱序请求时,直接将所述弱序请求发往片上网络,在判断出收到的请求为强序请求时,将所述强序请求送入请求寄存器,所述请求寄存器以队列方式保存所述强序请求,当所述强序请求处于所述请求寄存器中的队列头,且对应的计数器的值为零时,所述强序请求满足发射条件,将所述强序请求发往片上网络。
2.根据权利要求1所述的支持PCI-E弱序请求乱序发射的装置,其特征在于,所述发出的请求和收到的响应中均带有计数器的索引号域,所述计数器的索引号域用于记录所述发出的请求对应的计数器。
3.根据权利要求2所述的支持PCI-E弱序请求乱序发射的装置,其特征在于,所述译码逻辑器基于所述计数器的索引号域确定需要进行操作的计数器。
4.根据权利要求1所述的支持PCI-E弱序请求乱序发射的装置,其特征在于,还包括:
仲裁逻辑器,用于在弱序请求和强序请求同时申请发射时,通过预设规则进行仲裁。
5.根据权利要求4所述的支持PCI-E弱序请求乱序发射的装置,其特征在于,所述预设规则为强序请求优先或强序请求和弱序请求公平轮转。
6.根据权利要求1所述的支持PCI-E弱序请求乱序发射的装置,其特征在于,还包括:
与处理器簇连接的响应通道,所述响应通道仅用于传输处理器簇返回的响应。
7.根据权利要求1所述的支持PCI-E弱序请求乱序发射的装置,其特征在于,还包括:
第一使能寄存器,所述第一使能寄存器在使能时将所有收到的请求直接发往片上网络。
8.根据权利要求1所述的支持PCI-E弱序请求乱序发射的装置,其特征在于,还包括:
第二使能寄存器,所述第二使能寄存器在使能时将所有收到的请求全部进行串行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310654508.2A CN116775547A (zh) | 2023-06-05 | 2023-06-05 | 一种支持pci-e弱序请求乱序发射的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310654508.2A CN116775547A (zh) | 2023-06-05 | 2023-06-05 | 一种支持pci-e弱序请求乱序发射的装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775547A true CN116775547A (zh) | 2023-09-19 |
Family
ID=87992229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310654508.2A Pending CN116775547A (zh) | 2023-06-05 | 2023-06-05 | 一种支持pci-e弱序请求乱序发射的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775547A (zh) |
-
2023
- 2023-06-05 CN CN202310654508.2A patent/CN116775547A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4719621A (en) | Packet fastbus | |
US5020020A (en) | Computer interconnect system with transmit-abort function | |
US5948060A (en) | Speeding-up communication rates on links transferring data structures by a method of handing scatter/gather of storage blocks in commanded computer systems | |
US8913616B2 (en) | System-on-chip-based network protocol in consideration of network efficiency | |
US7526593B2 (en) | Packet combiner for a packetized bus with dynamic holdoff time | |
US5193149A (en) | Dual-path computer interconnect system with four-ported packet memory control | |
US7032040B2 (en) | Data transfer method and disk control unit using it | |
US7698478B2 (en) | Managed credit update | |
US5187780A (en) | Dual-path computer interconnect system with zone manager for packet memory | |
US10552367B2 (en) | Network data transactions using posted and non-posted operations | |
US7978705B2 (en) | Self-healing link sequence counts within a circular buffer | |
US6615282B1 (en) | Adaptive messaging | |
US8595401B2 (en) | Input output bridging | |
CN111124993A (zh) | 减小i/o处理时缓存数据镜像时延的方法、设备和程序产品 | |
US5608878A (en) | Dual latency status and coherency reporting for a multiprocessing system | |
CN115481048A (zh) | 一种内存系统及芯片 | |
US20060218334A1 (en) | System and method to reduce memory latency in microprocessor systems connected with a bus | |
CN116775547A (zh) | 一种支持pci-e弱序请求乱序发射的装置 | |
CN114443530B (zh) | 基于TileLink的芯片互联电路及数据传输方法 | |
CN115633098A (zh) | 众核系统的存储管理方法、装置和集成电路 | |
US8386682B2 (en) | Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform | |
US20060015774A1 (en) | System and method for transmitting data in storage controllers | |
CN106909528A (zh) | 一种数据传输的调度方法及装置 | |
CN117749718B (zh) | 基于ack和nop机制的dma传输保序处理方法和装置 | |
CN114153756B (zh) | 面向多核处理器目录协议的可配置微操作机制 |
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 |