CN115687221A - 高速周边组件互连的事务层电路及其操作方法 - Google Patents

高速周边组件互连的事务层电路及其操作方法 Download PDF

Info

Publication number
CN115687221A
CN115687221A CN202110830494.6A CN202110830494A CN115687221A CN 115687221 A CN115687221 A CN 115687221A CN 202110830494 A CN202110830494 A CN 202110830494A CN 115687221 A CN115687221 A CN 115687221A
Authority
CN
China
Prior art keywords
message
circuit
transaction layer
layer processing
data
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
Application number
CN202110830494.6A
Other languages
English (en)
Inventor
平步青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhiyuan Microelectronics Suzhou Co ltd
Faraday Technology Corp
Original Assignee
Zhiyuan Microelectronics Suzhou Co ltd
Faraday Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhiyuan Microelectronics Suzhou Co ltd, Faraday Technology Corp filed Critical Zhiyuan Microelectronics Suzhou Co ltd
Priority to CN202110830494.6A priority Critical patent/CN115687221A/zh
Priority to TW110143347A priority patent/TWI763612B/zh
Priority to US17/542,531 priority patent/US11726944B2/en
Publication of CN115687221A publication Critical patent/CN115687221A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明提供高速周边组件互连的事务层电路及其操作方法,具体涉及一种PCIe的事务层电路,所述事务层电路包括多个事务层处理信道、信道选择电路以及融合电路。多个事务层处理信道耦接至数据总线,数据总线用以传输PCIe的数据链路层电路所输出的至少一报文数据。信道选择电路被配置从数据链路层电路接收当前时钟周期的报文始位置信息与报文终位置信息,以及依据报文始位置信息与报文终位置信息将当前时钟周期的至少一报文数据分配给多个事务层处理信道中的至少一个。融合电路耦接至多个事务层处理信道,融合电路基于信道选择电路对当前时钟周期的至少一报文数据至多个事务层处理信道的分配去选择性地融合多个事务层处理信道所输出的事务层处理结果。

Description

高速周边组件互连的事务层电路及其操作方法
技术领域
本发明涉及一种高速周边组件互连(Peripheral Component InterconnectExpress,PCIe)的事务层电路及其操作方法。
背景技术
高速周边组件互连(Peripheral Component Interconnect Express,PCIe)是能够利用一或多个通道执行点对点串行链接,并且用于主板级别、扩展卡接口等的相互连接。在PCIe中,定义了包括软件层、事务层(transaction layer)、数据链路层(data linklayer)和物理层(physical layer)的分层结构,以用于控制和管理信息传输。数据传递过程的错误主要通过循环冗余校验(cyclic redundancy check,CRC)编码来检测。其中数据链路层会产生和校检链路循环冗余校验(Link CRC,LCRC),事务层会产生和校检端到端循环冗余校验(End-to-End CRC,ECRC)。
事务层用以生成事务层报文(Transaction Layer Packet,TLP),主要包括报头(Header)、有效载荷(在写入请求的情况下)以及ECRC三个部分。报头内容包括发送者的相关信息、目标地址、事务类型(如内存读取,内存写入)、发送数据量、请求方ID或完成方ID等等。例如在接收侧处的事务层会检查从数据链路层接收到的TLP中的ECRC错误。在既不存在错误也不存在任何其他缺陷的情况下,事务层将报头中包括的信息和有效载荷发送至软件层。而在发送侧处的事务层会核对请求发送期间的请求TLP的标签和响应接收期间的完成TLP的标签,以检查是否已接收到预期响应(完成检查)。在一些情况下,如果用户的设计中并没有交换器(Switch),例如只是简单的端对端直连(例如Root与Endpoint),则可以不使用ECRC。
在同一个时钟周期中出现多笔TLP的情况时,如何同时处理多笔TLP,是本领域的重大技术课题之一。
发明内容
本发明提供一种高速周边组件互连(Peripheral Component InterconnectExpress,PCIe)的事务层(transaction layer)电路,以在同一个时钟周期中可以同时处理多笔事务层报文(Transaction Layer Packet,TLP)。
根据本发明的实施例,高速周边组件互连的事务层电路包括多个事务层处理信道、信道选择电路以及融合电路。多个事务层处理信道耦接至数据总线,数据总线用以传输高速周边组件互连的数据链路层(data link layer)电路所输出的至少一报文(packet)数据。信道选择电路被配置从数据链路层电路接收当前时钟周期的报文始位置信息与报文终位置信息,以及依据报文始位置信息与报文终位置信息将当前时钟周期的至少一报文数据分配给多个事务层处理信道中的至少一个。融合电路耦接至多个事务层处理信道。融合电路基于信道选择电路对当前时钟周期的至少一报文数据至多个事务层处理信道的分配去选择性地融合多个事务层处理信道所输出的事务层处理结果。
根据本发明的另一实施例,高速周边组件互连的事务层电路的操作方法包括:将多个事务层处理信道耦接至数据总线,其中数据总线用以传输高速周边组件互连的数据链路层电路所输出的至少一报文数据;由信道选择电路从数据链路层电路接收当前时钟周期的位报文始置信息与报文终位置信息;依据报文始位置信息与报文终位置信息,由信道选择电路将当前时钟周期的至少一报文数据分配给多个事务层处理信道中的至少一个;以及基于信道选择电路对当前时钟周期的至少一报文数据至多个事务层处理信道的分配,由融合电路选择性地融合多个事务层处理信道所输出的事务层处理结果。
在根据本发明的实施例的高速周边组件互连的事务层电路中,可以透过信道选择电路将当前时钟周期的一或多个报文数据的每一个分配给多个事务层处理信道中的一个进行事务层处理,以及透过融合电路选择性地融合多个事务层处理信道所输出的事务层处理结果。因此,事务层电路可以在同一时钟周期中同时处理多笔TLP。
附图说明
图1是依照本发明的一实施例的一种高速周边组件互连(Peripheral ComponentInterconnect Express,PCIe)的事务层(transaction layer)电路的电路方块(circuitblock)示意图。
图2是依照本发明的一实施例的一种PCIe的事务层电路的操作方法的流程示意圖。
图3A是依照本发明一实施例的数据传输的布置示意图。
图3B是依照本发明一实施例的数据传输的标记处理示意图。
图3C是依照本发明一实施例的数据传输的信道分配示意图。
图4是依照本发明的一实施例说明图1所示的信道选择电路的电路方块示意图。
图5A是依照本发明一实施例说明图1所示的报头融合电路的电路方块示意图。
图5B是依照本发明一实施例说明图1所示的数据融合电路的电路方块示意图。
附图标记列表
100:事务层电路;101:数据链路层电路;102:接收缓冲器;110:信道选择电路;120:融合电路;121:报头融合电路;122:数据融合电路;310、320:报文数据串流;410:去错电路;411:遮蔽器;420~424:报文始位置搜寻电路;430~434:报文终位置搜寻电路;440:轮循电路;441、630:缓存器;450~458:信道分配电路;610:报头融合单元;620:数据融合单元;CH0~CH3:事务层处理信道;DATA0~DATA1、Data_CH0~Data_CH3:数据;DL:数据总线;HEAD0~HEAD2、Header_CH0~Header_CH3:报头;EOP:报文终位置信息;EOP[0]~EOP[15]:单元;EOP_enable、EOP_E0~EOP_E3:报文终位置搜寻结果;EOP_L0~EOP_L3、EOP_location:有效报文终位置;EOP_mask:经去错报文终位置信息;EOP_pointer_ns:第二报文终指针;EOP_pointer_r:第一报文终指针;ERR:错数据位置信息;L1:与门;L2~L3:加法器;L4~L5:比较器;L6~L14:多工器;LCRC:校验码;Out_h:报头处理结果;Out_p:数据处理结果;S210~S250:步骤;ST:报文始;STP:报文始位置信息;STP[0]~STP[15]:单元;STP_E0~STP_E3、STP_enable:报文始位置搜寻结果;STP_L0~STP_L3、STP_location:有效报文始位置;STP_pending:待定报文始信息;STP_pointer_ns:第二报文始指针;STP_pointer_r:第一报文始指针;STP_mask:经去错报文始位置信息。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。在图1和图1之后的类似附图中,分别由块表示的一个电路或功能块与另一电路或功能块之间的边界基本上指示功能边界,而不一定对应于物理位置的分离、电信号的分离、控制逻辑的分离等。每个电路或功能块可以是在某种程度上与另一块物理地分开的硬件模块,或者可以指示与另一块物理地集成的硬件模块的功能。
图1是依照本发明的一实施例的一种高速周边组件互连(Peripheral ComponentInterconnect Express,PCIe)的事务层(transaction layer)电路100的电路方块示意图。事务层电路100可以透过数据总线DL与PCIe的数据链路层(data link layer)电路101互连。数据总线DL可以传输数据链路层电路101所输出的至少一报文(packet)数据。于图1所示实施例中,事务层电路100包括信道选择电路110、事务层处理信道CH0~CH3以及融合电路120,其中事务层处理信道CH0~CH3的数量只是一种示范例,本实施例并不设限。
图2是依照本发明的一实施例的一种PCIe的事务层电路100的操作方法的流程示意图。请参照图1与图2。步骤S210将事务层处理信道CH0~CH3耦接至数据总线DL。事务层处理信道CH0~CH3可以耦接至数据总线DL,以接收报文数据。融合电路120可以耦接至事务层处理信道CH0~CH3以及接收缓冲器102,以保持数据传输的顺序。在一些实施例中,融合电路120可以包括报头融合电路121以及数据融合电路122,以接收事务层处理信道CH0~CH3输出的事务层处理结果进行选择性地融合,并将事务层处理结果存放在接收缓冲器102。其中接收缓冲器102可以内建或外接于事务层电路100,本实施例并不设限。
于步骤S220中,信道选择电路110可以从数据链路层电路101接收当前时钟周期的报文始位置信息STP与报文终位置信息EOP。在一些实施例中,信道选择电路110可以依据当前时钟周期的报文始位置信息STP与报文终位置信息EOP,计数在当前时钟周期中报文始位置信息STP所表示有效报文始位置的数量与报文终位置信息EOP所表示有效报文终位置的数量。在一些实施例中,信道选择电路110可以依据报文始位置信息STP与报文终位置信息EOP,将当前时钟周期的至少一报文数据分配给事务层处理信道CH0~CH3中的至少一个。
举例而言,图3A是依照本发明一实施例说明数据链路层电路101的报文数据传输的布置示意图。图3A所示纵轴表示时间,亦即每一个行(row)表示一个时钟周期。图3A所示横轴表示PCIe规范的数据处理基本单元,亦即每一个列(column)表示一个双字(Dword),一个双字有4个字节(byte)。于图3A所示实施例中,以数据宽度为512位(bit)、每一个数据单元位宽为一个双字(DWORD)的32位为例,在一个时钟周期中有16个双字(图3A所示单元0~单元15)被传输于不同层之间。图3A所示报文数据串流310表示物理层(physical layer)传输给数据链路层电路101的多个报文数据。在报文数据串流310中,一个报文(packet)数据的组成包含报文始ST、报头HEAD0~HEAD2、有效载荷(可能包含图3A所示数据DATA0~DATA2)以及校验码LCRC。依照实际传输,一个报文数据中不一定存在所述有效载荷。校验码LCRC可以視為一个报文数据的报文终。在经过数据链路层电路101的处理后,数据链路层电路101会去除报文始ST与校验码LCRC,如报文数据串流320所示。图3A所示报文数据串流320表示数据链路层电路101传输给事务层电路100的多个报文数据。数据链路层电路101输出至事务层100的报文数据可以視為一个事务层报文(Transaction Layer Packet,TLP)。
图3B是依照本发明一实施例说明数据链路层电路101的位置信息传输的布置示意图。图3B所示纵轴表示时间,亦即每一个行(row)表示一个时钟周期。图3B所示横轴表示位置信息的不同位,其中位置信息的一个位对应于在报文数据串流320中的一个双字(Dword)。举例来说,报文始位置信息STP的第0位STP[0]与报文终位置信息EOP的第0位EOP[0]都对应于在报文数据串流320中的单元0,而报文始位置信息STP的第15位STP[15]与报文终位置信息EOP的第15位EOP[15]都对应于在报文数据串流320中的单元15。于图3B所示实施例中,事务层处理信道CH0~CH3可以透过数据总线DL从数据链路层电路101接收图3A所示的报文数据串流320,并且信道选择电路110可以从数据链路层电路101得到当前时钟周期的报文始位置信息STP以及报文终位置信息EOP。在图3B所示实施例中,报文始位置信息STP中任何一个逻辑值1的位表示,在报文数据串流320的当前时钟周期中一个报文的始位置。同理可推,报文终位置信息EOP中任何一个逻辑值1的位表示,在报文数据串流320的当前时钟周期中一个报文的终位置。在其他实施例中,报文始位置信息STP与报文终位置信息EOP也可以使用其他数值来标记,本实施例并不设限。
请参照图1与图2。于步骤S230中,依据报文始位置信息STP与报文终位置信息EOP,信道选择电路110可以用轮循(round-robin)方式或固定优先级方式将当前时钟周期的报文数据分配给事务层处理信道CH0~CH3中的至少一个。举例来说,在一些实施例中,信道选择电路110可以计数在当前时钟周期中报文始位置信息STP的逻辑值1的位(表示有效报文始位置)的数量与报文终位置信息EOP的逻辑值1的位(表示有效报文终位置)的数量,并设定用以指示将当前报文数据分配给事务层处理信道CH0~CH3的分配开始位置与终止位置的报文始指针与报文终指针,以依据报文始指针与报文终指针将当前时钟周期的报文数据分配给事务层处理信道CH0~CH3中的至少一个,再依据有效报文始位置的数量去更新所述报文始指针,以及依据有效报文终位置的数量去更新所述报文终指针。
举例而言,图3C是依照本发明一实施例的事物务层处理信道CH0~CH3的信道分配示意图。请参照图3A至图3C。于图3C所示实施例中,信道选择电路110可以用如图3C上半部所示的轮循方式(逆时针方向,并以事务层处理信道CH0为起始信道),将当前时钟周期的报文数据串流320依序分配给事务层处理信道CH0~CH3中的至少一个。依据图3B所示始帧位置信息STP与终帧位置信息EOP,图3A所示报文数据串流320的每一个报文数据可以被分配给事务层处理信道CH0~CH3中的至少一个,如图3C下半部所示。轮循的方向与事务层处理信道CH0~CH3的数量与排列方式只是一种示范例,本实施例并不设限。其中依据报文始位置信息STP与报文终位置信息EOP来进行轮循与选择及分配事务层处理信道CH0~CH3的实施方式,在后续的实施例中会有更详细的说明。
再举例而言,信道选择电路110也可以不使用如图3C上半部所示的轮循方式。例如,信道选择电路110可以使用固定优先级方式,将当前时钟周期的报文数据串流的每一个报文数据分配给事务层处理信道CH0~CH3中的至少一个。例如在一些实施例中,可以预先设定事务层处理信道CH0~CH3的优先级顺序(例如优先级由高至低分别为事务层处理信道CH0、CH1、CH2以及CH3)。在每次接收到报文数据串流(例如报文数据串流320)中的每一个报文数据时,均依据优先级的顺序将报文数据分配给空闲(当前未处理报文数据)的事务层处理信道CH0~CH3。举例来说,在分配报文数据时,信道选择电路110均先检查最高优先级的事务层处理信道(例如为事务层处理信道CH0)是否空闲。若确定事务层处理信道CH0空闲时,信道选择电路110可以将报文数据分配给所述最高优先级的事务层处理信道CH0。当最高优先级的事务层处理信道CH0正在忙碌(正在处理其他报文数据)时,则信道选择电路110继续检查第二优先级的事务层处理信道(例如为事务层处理信道CH1)是否空闲,依此类推。又例如,当先前接收到的报文数据串流中的最后一笔报文数据为未完整数据(未完成的TLP)且被分配给其中一个事务层处理信道(例如为事务层处理信道CH2)时,则当前接收到的报文数据串流中第一笔未完整数据(接续先前的最后一笔报文数据)可以被分配给所述事务层处理信道(事务层处理信道CH2),以及下一笔报文数据继续使用所述固定优先级方式从最高优先级的事务层处理信道(事务层处理信道CH0)开始进行检查与分配的动作。
于图2所示步骤S240中,基于信道选择电路110对当前时钟周期的报文数据至事务层处理信道CH0~CH3的分配,融合电路120可以选择性地融合事务层处理信道CH0~CH3所输出的事务层处理结果。在步骤S250中,融合电路120可以将事务层处理信道CH0~CH3的事务层处理结果存放在接收缓冲器102。
图4是依照本发明的一实施例说明图1所示的信道选择电路110的电路方块示意图。信道选择电路110可以从数据链路层电路101接收当前时钟周期的报文始位置信息STP与报文终位置信息EOP。在图4所示实施例中,信道选择电路110还可以从数据链路层电路101接收当前时钟周期的错数据位置信息ERR。其中错数据位置信息ERR的实施方式可以参考报文始位置信息STP或終报文位置信息EOP的设置方式加以类推。错数据位置信息ERR可以标示出在报文数据串流320的当前时钟周期中具有无效数据的位置。
在图4所示实施例中,信道选择电路110包括去错电路410、报文始位置搜寻电路420、报文终位置搜寻电路430、轮循电路440以及信道分配电路450。去错电路410可以接收当前时钟周期的报文始位置信息STP、错数据位置信息ERR以及报文终位置信息EOP,并依据错数据位置信息ERR去遮蔽报文始位置信息STP中的无效报文始位置而产生经去错报文始位置信息STP_mask,以及依据错数据位置信息ERR去遮蔽报文终位置信息EOP中的无效报文终位置而产生经去错报文终位置信息EOP_mask。
在图4所示实施例中,去错电路410可以包括与门L1与遮蔽器411。其中与门L1的非反相输入端与反相输入端可以分别接收报文始位置信息STP与错数据位置信息ERR。与门L1的输出端可以输出经去错报文始位置信息STP_mask给遮蔽器411与报文始位置搜寻电路420。例如,假设在当前时钟周期中,报文始位置信息STP在某一位置为逻辑值1且对应的错数据位置信息ERR亦为逻辑值1(代表有无效数据)时,则经去错报文始位置信息STP_mask在该位置为逻辑值0。反之,当报文始位置信息STP在另一位置为逻辑值1而对应的错数据位置信息ERR为逻辑值0(代表数据未发生错误)时,则经去错报文始位置信息STP_mask在该位置为逻辑值1。遮蔽器411的第一输入端与第二输入端可以分别接收错数据位置信息ERR与报文终位置信息EOP。遮蔽器411的输出端可以输出经去错报文终位置信息EOP_mask。在一些实施例中,遮蔽器411的实施方式可以参考与门L1的相关说明加以类推。在一些实施例中,遮蔽器411还可以接收经去错报文始位置信息STP_mask以及待定报文始信息STP_pending,以更新经去错报文终位置信息EOP_mask。在其他实施例中,去错电路410也可以采用其他实施方式,本实施例并不设限。
报文始位置搜寻电路420与报文终位置搜寻电路430可以分别耦接至去错电路410,以接收经去错报文始位置信息STP_mask以及经去错报文终位置信息EOP_mask。其中,报文始位置搜寻电路420用以搜寻在当前时钟周期的经去错报文始位置信息STP_mask中的任何有效报文始位置,以产生有效报文始位置STP_location和报文始位置搜寻结果STP_enable。报文终位置搜寻电路430用以搜寻在当前时钟周期的经去错报文终位置信息EOP_mask中的任何有效报文终位置,以产生有效报文终位置EOP_location和报文终位置搜寻结果EOP_enable。其中报文始位置搜寻结果STP_enable与报文终位置搜寻结果EOP_enable可以传送至轮循电路440,以依据有效报文始位置STP_location的数量与有效报文终位置EOP_location的数量更新第一报文始指针STP_pointer_r与第一报文终指针EOP_pointer_r。有效报文始位置STP_location、报文始位置搜寻结果STP_enable、有效报文终位置EOP_location、报文终位置搜寻结果EOP_enable、第一报文始指针STP_pointer_r以及第一报文终指针EOP_pointer_r可以传送至信道分配电路450,以指示当前时钟周期的至少一报文数据至事务层处理信道CH0~CH3的分配方式。
在本实施例中,报文始位置搜寻电路420可以包括报文始位置搜寻电路421、422、423和424,以将经去错报文始位置信息STP_mask的数据量分为四个通道来搜寻。例如,若经去错报文始位置信息STP_mask的数据量为16位,则报文始位置搜寻电路421~424可分别搜寻经去错报文始位置信息STP_mask中第0至3位、第4至7位、第8至11位以及第12至15位中的任何有效报文始位置,以产生有效报文始位置STP_location和报文始位置搜寻结果STP_enable。其中报文始位置搜寻电路421~424的数量与数据分配的方式只是一种示范例,本实施例并不设限。
在图4所示实施例中,报文终位置搜寻电路430可以包括报文终位置搜寻电路431、432、433和434,以将经去错报文终位置信息EOP_mask的数据量分为四个通道来搜寻。例如,若经去错报文终位置信息EOP_mask的数据量为16位,则报文终位置搜寻电路431~434可分别用以搜寻经去错报文终位置信息EOP_mask中第0至3位、第4至7位、第8至11位以及第12至15位中的任何有效报文终位置,以产生有效报文终位置EOP_location和报文终位置搜寻结果EOP_enable。其中报文终位置搜寻电路431~434的数量与数据分配的方式只是一种示范例,本实施例并不设限。
轮循电路440可以耦接至报文始位置搜寻电路420与报文终位置搜寻电路430,以接收报文始位置搜寻结果STP_enable与报文终位置搜寻结果EOP_enable。在本实施例中,轮循电路440可以依据报文始位置搜寻结果STP_enable计数在当前时钟周期中有效报文始位置的数量,并依据有效报文始位置的数量去更新第一报文始指针STP_pointer_r。在本实施例中,轮循电路440可以依据报文终位置搜寻结果EOP_enable计数在当前时钟周期中有效报文终位置的数量,并依据有效报文终位置的数量去更新第一报文终指针EOP_pointer_r。
在图4所示实施例中,轮循电路440可以包括加法器L2、加法器L3、比较器L4、比较器L5、多工器L6以及缓存器441。加法器L2可以耦接至报文始位置搜寻电路421~424,以依据报文始位置搜寻结果STP_enable计数在当前时钟周期中有效报文始位置的数量來產生第二报文始指针STP_pointer_ns。加法器L3可以耦接至报文终位置搜寻电路431~434,以依据报文终位置搜寻结果EOP_enable计数在当前时钟周期中有效报文终位置的数量來產生第二报文终指针EOP_pointer_ns。在一些实施例中,加法器L2与加法器L3的输出位数可以设定为2位,使第二报文始指针STP_pointer_ns与第二报文终指针EOP_pointer_ns的数值范围限定于0~3之间。在另一些实施例中,加法器L2与加法器L3的输出位数可以设定为3位,使最高有效位(Most Significant Bit,HSB)可用以做为溢位判断。
在本实施例中,缓冲器441可以耦接至加法器L2与加法器L3。缓冲器441可用以储存第二报文始指针STP_pointer_ns与第二报文终指针EOP_pointer_ns,并输出第一报文始指针STP_pointer_r与第一报文终指针EOP_pointer_r,以指示当前数据分配所指向的事务层处理信道。在本实施例中,第一报文始指针STP_pointer_r可以回授至加法器L2,第一报文终指针EOP_pointer_r可以回授至加法器L3,以在每次轮循进行数据分配时参考前次所指向的事务层处理信道来更新第一报文始指针STP_pointer_r与第一报文终指针EOP_pointer_r。在本实施例中,比较器L4可以耦接至缓冲器441。比较器L4可以比较第一报文始指针STP_pointer_r与第一报文终指针EOP_pointer_r是否相同,并输出待定报文始信息STP_pending以判断当前时钟周期的至少一报文数据是否完整。例如,当第一报文始指针STP_pointer_r与第一报文终指针EOP_pointer_r不相同时,即当前时钟周期的有效报文始位置的数量不等于有效报文终位置的数量,代表在当前时钟周期中具有不完整报文数据(未完成的TLP)。如此一來,当前时钟周期的最后一报文数据所分配到的事务层处理信道(事务层处理信道CH0~CH3的其中一个)必须继续保持指定至下一时钟周期,直到接收到下一个有效报文终位置以表示已接收到完整报文数据后才能释放。在本实施例中,待定报文始信息STP_pending可以回授至去错电路410中的遮蔽器411,使遮蔽器411可以依据经去错报文始位置信息STP_mask以及待定报文始信息STP_pending更新经去错报文终位置信息EOP_mask。
在本实施例中,比较器L5與多工器L6可以耦接在加法器L2、加法器L3与缓存器441之间。比较器L5的第一端输入与第二输入端以及多工器L6的第一输入端与第二输入端可以分别接收第二报文始指针STP_pointer_ns与第二报文终指针EOP_pointer_ns。比较器L5可以比较第二报文始指针STP_pointer_ns与第二报文终指针EOP_pointer_ns是否相同,以判断当前时钟周期的报文数据是否完整。例如,当数量不相同时,比较器L5可以输出逻辑值1,表示在当前时钟周期中,具有不完整数据。多工器L6可以依据比较器L5的输出来选择输出第二报文始指针STP_pointer_ns或第二报文终指针EOP_pointer_ns至缓冲器441存放。例如在本实施例中,当比较器L5输出逻辑值0时,多工器L6可以输出第二报文始指针STP_pointer_ns。在本实施例中,缓冲器441可以储存比较器L5与多工器L6的输出,并可以输出至融合电路120,进而告知融合电路120在当前时钟周期中具有不完整数据,须等到接收到完整数据后再进行融合的动作。
信道分配电路450可以耦接至轮循电路440、报文始位置搜寻电路420以及报文终位置搜寻电路430。信道分配电路450可以依据第一报文始指针STP_pointer_r将报文始位置搜寻结果STP_enable与有效报文始位置STP_location传输给事务层处理信道CH0~CH3中的一个对应事务层处理信道。信道分配电路450可以依据第一报文终指针EOP_pointer_r将报文终位置搜寻结果EOP_enable与有效报文终位置EOP_location传输给事务层处理信道CH0~CH3中的一个对应事务层处理信道。
在图4所示实施例中,信道分配电路450可以包括信道分配电路451、452、453、454、455、456、457和458,以分别将有效报文始位置STP_location以及有效报文终位置EOP_location对应于事务层处理信道CH0~CH3的每一个进行数据分配。其中信道分配电路451~458的数量与事务层处理信道CH0~CH3的对应方式只是一种示范例,本实施例并不设限。
举例而言,下述表1与表2是依照本发明一实施例说明图4所示信道分配电路450的输出内容。表1与表2所示纵轴表示时间,亦即每一个行(row)表示一个时钟周期。表1所示横轴表示分配电路451~454的输出,其中分配电路451输出报文始位置搜寻结果STP_E0与有效报文始位置STP_L0给事务层处理信道CH0,分配电路452输出报文始位置搜寻结果STP_E1与有效报文始位置STP_L1给事务层处理信道CH1,分配电路453输出报文始位置搜寻结果STP_E2与有效报文始位置STP_L2给事务层处理信道CH2,而分配电路454输出报文始位置搜寻结果STP_E3与有效报文始位置STP_L3给事务层处理信道CH3。表2所示横轴表示分配电路455~458的输出,其中分配电路455输出报文终位置搜寻结果EOP_E0与有效报文终位置EOP_L0给事务层处理信道CH0,分配电路456输出报文终位置搜寻结果EOP_E1与有效报文终位置EOP_L1给事务层处理信道CH1,分配电路457输出报文终位置搜寻结果EOP_E2与有效报文终位置EOP_L2给事务层处理信道CH2,而分配电路458输出报文终位置搜寻结果EOP_E3与有效报文终位置EOP_L3给事务层处理信道CH3。表1的有效报文始位置STP_L0~STP_L3栏位和表2的有效报文终位置EOP_L0~EOP_L3栏位是以16进位值来表示位置。
表1:分配电路451~454的输出
STP_E0 STP_L0 STP_E1 STP_L1 STP_E2 STP_L2 STP_E3 STP_L3
1 1 1 6 1 C 0 0
1 8 1 D 0 0 1 3
1 F 0 0 1 2 1 A
0 0 1 5 1 C 0 0
表2:分配电路455~458的输出
EOP_E0 EOP_L0 EOP_E1 EOP_L1 EOP_E2 EOP_L2 EOP_E3 EOP_L3
1 3 1 9 0 0 0 0
1 A 1 F 1 0 1 5
0 0 0 0 1 7 1 C
1 2 1 9 1 E 0 0
请参照图3B、图3C、图4、表1与表2。假设于图3B所示实施例中,报文始位置信息STP与报文终位置信息EOP分别代表当前时钟周期的至少一报文数据的经去错报文始位置信息STP_mask以及经去错报文终位置信息EOP_mask,以及假设使用图3C所示的轮循方式。
在图3B所示的第一个时钟周期中,(经去错)报文始位置信息STP[15:0]为“00010000 0100 0010”以及(经去错)报文终位置信息EOP[15:0]为“0000 0010 0000 1000”。报文始位置搜寻电路421~424搜寻(经去错)报文始位置信息STP[15:0]得知在图3B所示的第一个时钟周期中的有效报文始分别位于(经去错)报文始位置信息STP[1]、STP[6]以及STP[12]三个位置上,因此报文始位置搜寻电路421~424所输出的有效报文始位置STP_location包括“1、6、C”(以十六进制表示)。依据当前第一报文始指针STP_pointer_r(指向事务层处理信道CH0),信道分配电路450将有效报文始位置“1、6、C”分配给事务层处理信道CH0~CH2,亦即将当前时钟周期的报文始位置“1、6、C”作为有效报文始位置STP_L0~STP_L2(如表1所示)。报文终位置搜寻电路431~434搜寻(经去错)报文终位置信息EOP[15:0]得知在图3B所示的第一个时钟周期中的有效报文终分别位于(经去错)报文终位置信息EOP[3]以及EOP[9]两个位置上,因此报文终位置搜寻电路431~434所输出的有效报文终位置EOP_location包括“3、9”。依据当前第一报文终指针EOP_pointer_r(指向事务层处理信道CH0),信道分配电路450将有效报文终位置“3、9”分配给事务层处理信道CH0~CH1,亦即将当前时钟周期的报文终位置“3、9”作为有效报文终位置EOP_L0~EOP_L1(如表2所示)。基于有效报文始位置STP_L0~STP_L3与有效报文终位置EOP_L0~EOP_L3,事务层处理信道CH0~CH2可以在当前时钟周期中从数据总线DL撷取对应位置的数据。此外,轮循电路440可以计数在当前时钟周期中的报文始位置搜寻结果STP_enable与报文终位置搜寻结果EOP_enable,进而更新第一报文始指针STP_pointer_r(由指向事务层处理信道CH0更新为指向事务层处理信道CH3),以及更新第一报文终指针EOP_pointer_r(由指向事务层处理信道CH0更新为指向事务层处理信道CH2)。
以此类推,图3B所示的其他时钟周期可以参照图3B所示的第一个时钟周期的相关说明加以类推,故不再赘述。其他时钟周期的運行結果呈現於图3B、图3C、表1与表2。
图5A是依照本发明一实施例说明图1所示的报头融合电路121的电路方块示意图。图5B是依照本发明一实施例说明图1所示的数据融合电路122的电路方块示意图。请参照图1、图5A与图5B。在一些实施例中,图1所示信道选择电路110可以输出第二报文始指针STP_pointer_ns与第一报文始指针STP_pointer_r,事务层处理信道CH0~CH3可以输出事务层处理结果。其中事务层处理结果可以分为报头Header_CH0~Header_CH3以及数据Data_CH0~Data_CH3。报头融合电路121可以接收第一报文始指针STP_pointer_r与报头Header_CH0~Header_CH3,数据融合电路122可以接收第二报文始指针STP_pointer_ns与数据Data_CH0~Data_CH3,以分别进行选择性地融合处理,并分别输出报头处理结果Out_h与数据处理结果Out_d以作为事务层处理结果。在一些实施例中,第二报文始指针STP_pointer_ns与第一报文始指针STP_pointer_r在时序上可以不同。例如第一报文始指针STP_pointer_r可以为第二报文始指针STP_pointer_ns延迟一个工作周期,以满足报头融合电路121与数据融合电路122在分别进行融合处理时的时序要求。
于图5A所示实施例中,报头融合电路121包括多工器L7、L8、L9与L10以及报头融合单元610相互耦接。报头融合单元610可以透过多工器L7~L10分别接收由事务层处理信道CH0~CH3所发送来的报头Header_CH0~Header_CH3,以保持当前时钟周期的至少一报文数据的报头排列方式进行融合。于图5B所示实施例中,数据融合电路122包括多工器L11、L12、L13与L14与数据融合单元620相互耦接,以及缓存器630耦接至数据融合单元620。数据融合单元620可以透过多工器L11~L14接收由事务层处理信道CH0~CH3所发送来的数据Data_CH0~Data_CH3,以保持当前时钟周期的至少一报文数据的数据排列方式进行融合。在本实施例中,缓存器630可用以存放当前时钟周期的不完整数据,以保留至下一时钟周期,在确定收到完整数据后再透过数据融合单元620进行数据融合。
综上所述,本发明诸实施例所述的PCIe的事务层电路100,可以透过信道选择电路110以轮循方式将当前时钟周期的一或多个报文数据的每一个分配给多个事务层处理信道CH0~CH3中的一个进行事务层处理,以及透过融合电路120选择性地融合多个事务层处理信道CH0~CH3所输出的事务层处理结果。因此,事务层电路可以在同一时钟周期中同时处理多笔事务层报文(Transaction Layer Packet,TLP)。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种高速周边组件互连的事务层电路,其特征在于,所述事务层电路包括:
多个事务层处理信道,耦接至数据总线,其中所述数据总线用以传输所述高速周边组件互连的数据链路层电路所输出的至少一报文数据;
信道选择电路,被配置从所述数据链路层电路接收当前时钟周期的报文始位置信息与报文终位置信息,以及依据所述报文始位置信息与所述报文终位置信息将所述当前时钟周期的所述至少一报文数据分配给所述多个事务层处理信道中的至少一个;以及
融合电路,耦接至所述多个事务层处理信道,其中所述融合电路基于所述信道选择电路对所述当前时钟周期的所述至少一报文数据至所述多个事务层处理信道的分配去选择性地融合所述多个事务层处理信道所输出的事务层处理结果。
2.根据权利要求1所述的事务层电路,其特征在于,所述信道选择电路计数在所述当前时钟周期中所述报文始位置信息所表示有效报文始位置的数量与所述报文终位置信息所表示有效报文终位置的数量,所述信道选择电路依据报文始指针与报文终指针将所述当前时钟周期的所述至少一报文数据分配给所述多个事务层处理信道中的至少一个,所述信道选择电路依据所述有效报文始位置的所述数量去更新所述报文始指针,以及所述信道选择电路依据所述有效报文终位置的所述数量去更新所述报文终指针。
3.根据权利要求1所述的事务层电路,其特征在于,所述信道选择电路包括:
去错电路,被配置从所述数据链路层电路接收所述当前时钟周期的错数据位置信息、所述报文始位置信息与所述报文终位置信息,依据所述错数据位置信息去遮蔽所述报文始位置信息中的无效报文始位置而产生经去错报文始位置信息,以及依据所述错数据位置信息去遮蔽所述报文终位置信息中的无效报文终位置而产生经去错报文终位置信息;
报文始位置搜寻电路,耦接至所述去错电路以接收所述经去错报文始位置信息,用以搜寻在所述当前时钟周期的所述经去错报文始位置信息中的任何有效报文始位置,以产生报文始位置搜寻结果;
报文终位置搜寻电路,耦接至所述去错电路以接收所述经去错报文终位置信息,用以搜寻在所述当前时钟周期的所述经去错报文终位置信息中的任何有效报文终位置,以产生报文终位置搜寻结果;
轮循电路,耦接至所述报文始位置搜寻电路以及所述报文终位置搜寻电路,其中所述轮循电路依据所述报文始位置搜寻结果计数在所述当前时钟周期中所述有效报文始位置的数量,所述轮循电路依据所述有效报文始位置的所述数量去更新报文始指针,所述轮循电路依据所述报文终位置搜寻结果计数在所述当前时钟周期中所述有效报文终位置的数量,以及所述轮循电路据所述有效报文终位置的所述数量去更新报文终指针;以及
信道分配电路,耦接至所述轮循电路、所述报文始位置搜寻电路以及所述报文终位置搜寻电路,其中所述信道分配电路依据所述报文始指针将所述报文始位置搜寻结果中的任一个有效报文始位置传输给所述多个事务层处理信道中的一个对应事务层处理信道,以及所述信道分配电路依据所述报文终指针将所述报文终位置搜寻结果中的任一个有效报文终位置传输给所述多个事务层处理信道中的一个对应事务层处理信道。
4.根据权利要求1所述的事务层电路,其特征在于,所述信道选择电路依据所述报文始位置信息与所述报文终位置信息以轮循方式或固定优先级方式将所述当前时钟周期的所述至少一报文数据分配给所述多个事务层处理信道中的至少一个。
5.根据权利要求1所述的事务层电路,其特征在于,所述融合电路将所述事务层处理结果存放在接收缓冲器。
6.一种高速周边组件互连的事务层电路的操作方法,其特征在于,所述事务层电路包括信道选择电路、融合电路以及多个事务层处理信道,所述操作方法包括:
将所述多个事务层处理信道耦接至数据总线,其中所述数据总线用以传输所述高速周边组件互连的数据链路层电路所输出的至少一报文数据;
由所述信道选择电路从所述数据链路层电路接收当前时钟周期的报文始位置信息与报文终位置信息;
依据所述报文始位置信息与所述报文终位置信息,由所述信道选择电路将所述当前时钟周期的所述至少一报文数据分配给所述多个事务层处理信道中的至少一个;以及
基于所述信道选择电路对所述当前时钟周期的所述至少一报文数据至所述多个事务层处理信道的分配,由所述融合电路选择性地融合所述多个事务层处理信道所输出的事务层处理结果。
7.根据权利要求6所述的操作方法,其特征在于,所述操作方法还包括:
由所述信道选择电路计数在所述当前时钟周期中所述报文始位置信息所表示有效报文始位置的数量与所述报文终位置信息所表示有效报文终位置的数量;
由所述信道选择电路依据报文始指针与报文终指针将所述当前时钟周期的所述至少一报文数据分配给所述多个事务层处理信道中的至少一个;
由所述信道选择电路依据所述有效报文始位置的所述数量去更新所述报文始指针;以及
由所述信道选择电路依据所述有效报文终位置的所述数量去更新所述报文终指针。
8.根据权利要求6所述的操作方法,其特征在于,所述操作方法还包括:
由所述信道选择电路以轮循方式或固定优先级方式将所述当前时钟周期的所述至少一报文数据分配给所述多个事务层处理信道中的至少一个。
9.根据权利要求6所述的操作方法,其特征在于,所述操作方法还包括:
由所述融合电路将所述事务层处理结果存放在接收缓冲器。
CN202110830494.6A 2021-07-22 2021-07-22 高速周边组件互连的事务层电路及其操作方法 Pending CN115687221A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110830494.6A CN115687221A (zh) 2021-07-22 2021-07-22 高速周边组件互连的事务层电路及其操作方法
TW110143347A TWI763612B (zh) 2021-07-22 2021-11-22 高速周邊元件互連的事務層電路及其操作方法
US17/542,531 US11726944B2 (en) 2021-07-22 2021-12-06 Transaction layer circuit of PCIe and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110830494.6A CN115687221A (zh) 2021-07-22 2021-07-22 高速周边组件互连的事务层电路及其操作方法

Publications (1)

Publication Number Publication Date
CN115687221A true CN115687221A (zh) 2023-02-03

Family

ID=82594046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110830494.6A Pending CN115687221A (zh) 2021-07-22 2021-07-22 高速周边组件互连的事务层电路及其操作方法

Country Status (3)

Country Link
US (1) US11726944B2 (zh)
CN (1) CN115687221A (zh)
TW (1) TWI763612B (zh)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2965020B2 (ja) * 1998-01-09 1999-10-18 日本電気株式会社 専用処理インタフェースを持つsar
US8255599B2 (en) * 2006-03-28 2012-08-28 Integrated Device Technology Inc. Packets transfer device having data absorbing buffers with elastic buffer capacities
US8437369B2 (en) * 2006-05-19 2013-05-07 Integrated Device Technology, Inc. Packets transfer device that intelligently accounts for variable egress channel widths when scheduling use of dispatch bus by egressing packet streams
US9047416B2 (en) * 2010-02-22 2015-06-02 Nec Corporation Communication control system, switching node, communication control method and communication control program including PCI express switch and LAN interface
US8694754B2 (en) * 2011-09-09 2014-04-08 Ocz Technology Group, Inc. Non-volatile memory-based mass storage devices and methods for writing data thereto
US9264368B2 (en) * 2012-01-27 2016-02-16 Marvell World Trade Ltd. Chip-to-chip communications
US20160210313A1 (en) * 2015-01-16 2016-07-21 Futurewei Technologies, Inc. System for high-throughput handling of transactions in a data-partitioned, distributed, relational database management system
US10176126B1 (en) * 2015-06-29 2019-01-08 Cadence Design Systems, Inc. Methods, systems, and computer program product for a PCI implementation handling multiple packets
US9794055B2 (en) * 2016-03-17 2017-10-17 Intel Corporation Distribution of forwarded clock
JP7103162B2 (ja) 2018-10-30 2022-07-20 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US11296994B2 (en) * 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
US11762802B2 (en) * 2019-12-05 2023-09-19 Intel Corporation Streaming fabric interface

Also Published As

Publication number Publication date
TW202306367A (zh) 2023-02-01
US20230029065A1 (en) 2023-01-26
TWI763612B (zh) 2022-05-01
US11726944B2 (en) 2023-08-15

Similar Documents

Publication Publication Date Title
CN110147335B (zh) 用于ssd储存器中nvme命令间关联的系统和方法
US8516165B2 (en) System and method for encoding packet header to enable higher bandwidth efficiency across bus links
US9934173B1 (en) Pseudo cut-through architecture between non-volatile memory storage and remote hosts over a fabric
JP6377844B2 (ja) Sfenceを用いずに最適化されたpio書込みシーケンスを用いるパケット送信
EP0080626B1 (en) Memory module selection and reconfiguration apparatus in a data processing system
CN100481043C (zh) 用于处理输入/输出命令的方法、系统和程序
CN100527112C (zh) 用于控制计算机系统内的数据传送的控制器
EP3605331B1 (en) Memory allocation method and server
US8312187B2 (en) Input/output device including a mechanism for transaction layer packet processing in multiple processor systems
US20070147426A1 (en) PCI-Express™ transaction layer packet compression
CN101335606B (zh) 一种高可靠片上网络路由器系统及其设计方法
US20060195639A1 (en) System and method for dynamically allocating inter integrated circuits addresses to multiple slaves
WO2011160094A2 (en) Scalable storage devices
US5293487A (en) Network adapter with high throughput data transfer circuit to optimize network data transfers, with host receive ring resource monitoring and reporting
CN115102780B (zh) 数据传输方法、相关装置、系统及计算机可读存储介质
CN112269752A (zh) 一种PCIe虚拟通道的数据处理方法及相关装置
CN112148629B (zh) 用于在总线上寻址集成电路的方法和对应设备
CN103605478B (zh) 存储地址标示、配置方法和数据存取方法及系统
CN100361108C (zh) 配置总线上的组件进行输入/输出操作的方法、系统和设备
CN113168388A (zh) 总线上的存储器请求链接
US20120303848A1 (en) System and method for allocating transaction id in a system with a plurality of processing modules
CN116126763B (zh) 总线互联系统、数据处理方法、装置、电子设备及介质
CN1705929B (zh) 用于将数据返回给通过总线接收的读请求的方法和系统
CN115687221A (zh) 高速周边组件互连的事务层电路及其操作方法
KR100333584B1 (ko) 데이터 전송 시스템

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