一种转换装置、方法以及集成电路与流程

文档序号:30745775发布日期:2022-07-13 07:35阅读:93来源:国知局
一种转换装置、方法以及集成电路与流程

1.本技术涉及网络通信领域,并且更具体地,涉及一种转换装置、转换方法以及集成电路。


背景技术:

2.随着互联网协议(internet protocol,ip)的不断发展,主端设备可以访问从端设备,并与从端设备进行数据交换。作为一个示例,处理器(例如,中央处理器(central processing unit,cpu))作为主端设备可以与作为从端设备的外部设备(例如,芯片或单板)进行数据交换。在上述数据交换的过程中,主端设备和从端设备之间需要满足带宽需求以及实现成本需求。
3.为了满足cpu对外部设备访问的实现成本需求,相关的技术方案中,cpu可以通过pcie协议访问外部设备的本地总线。在这种技术方案中,外部设备仅可以支持单个本地总线接口的访问,并且不支持并发处理多个数据包,使得访问带宽受到限制,数据的传输效率降低。


技术实现要素:

4.本技术提供一种转换装置、转换方法以及集成电路,可以并行的对多个pcie报文进行流水线处理,使得访问带宽较大,提高了数据传输的效率。
5.第一方面,提供了一种转换装置,包括:总线和接口标准pcie报文调度模块,第一pcie报文转换模块和第二pcie报文转换模块,
6.所述pcie报文调度模块,用于接收第一pcie报文和第二pcie报文,并根据调度策略并行向所述第一pcie报文转换模块发送所述第一pcie报文和向所述第二pcie报文转换模块发送所述第二pcie报文;
7.所述第一pcie报文转换模块,用于根据所述第一pcie报文获得第一本地总线报文,所述第一本地总线报文为第一本地总线接口能够识别的报文;
8.所述第二pcie报文转换模块,用于根据所述第二pcie报文获得第二本地总线报文,所述第二本地总线报文为第二本地总线接口能够识别的报文。
9.上述转换装置可以并发的对多个pcie报文进行流水线处理,使得访问带宽较大,提高了数据传输的效率。
10.结合第一方面,在第一方面的某些实现方式中,所述pcie报文调度模块具体用于:根据所述第一pcie报文和所述第二pcie报文的访问地址,并行向所述第一pcie报文转换模块发送所述第一pcie报文和向所述第二pcie报文转换模块发送所述第二pcie报文。
11.结合第一方面,在第一方面的某些实现方式中,所述pcie报文调度模块,还用于根据所述第一pcie报文转换模块的缓存向所述第一pcie报文转换模块发送所述第一pcie报文,以及根据所述第二pcie报文转换模块的缓存向所述第二pcie报文转换模块发送所述第二pcie报文。
12.结合第一方面,在第一方面的某些实现方式中,所述装置还包括:pcie收集模块,
13.所述第一pcie报文转换模块,还用于接收所述第一本地总线接口发送的第一本地总线应答报文,根据所述第一本地总线应答报文获得第一pcie应答报文,并将所述第一pcie应答报文发送给所述pcie收集模块;
14.所述第二pcie报文转换模块,还用于接收所述第二本地总线接口发送的第二本地总线应答报文,根据所述第二本地总线应答报文获得第二pcie应答报文,并将所述第二pcie应答报文发送给所述pcie收集模块;
15.所述pcie收集模块,用于获取并发送所述第一pcie应答报文和所述第二pcie应答报文。
16.结合第一方面,在第一方面的某些实现方式中,所述第一pcie报文转换模块,还用于根据所述pcie收集模块的缓存向所述pcie收集模块发送所述第一pcie应答报文;所述第二pcie报文转换模块,还用于根据所述pcie收集模块的缓存向所述pcie收集模块发送所述第二pcie应答报文。
17.第二方面,提供了一种转换方法,包括:总线和接口标准pcie报文调度模块接收第一pcie报文和第二pcie报文;所述pcie报文调度模块根据调度策略并行向第一pcie报文转换模块发送所述第一pcie报文和向第二pcie报文转换模块发送所述第二pcie报文;所述第一pcie报文转换模块根据所述第一pcie报文获得第一本地总线报文,所述第一本地总线报文为第一本地总线接口能够识别的报文;所述第二pcie报文转换模块根据所述第二pcie报文获得第二本地总线报文,所述第二本地总线报文为第二本地总线接口能够识别的报文。
18.结合第二方面,在第二方面的某些实现方式中,所述pcie报文调度模块根据所述第一pcie报文和所述第二pcie报文的访问地址,并行向所述第一pcie报文转换模块发送所述第一pcie报文和向所述第二pcie报文转换模块发送所述第二pcie报文。
19.结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述pcie报文调度模块根据所述第一pcie报文转换模块的缓存向所述第一pcie报文转换模块发送所述第一pcie报文,以及根据所述第二pcie报文转换模块的缓存向所述第二pcie报文转换模块发送所述第二pcie报文。
20.结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述第一pcie报文转换模块接收所述第一本地总线接口发送的第一本地总线应答报文,根据所述第一本地总线应答报文获得第一pcie应答报文,并将所述第一pcie应答报文发送给所述pcie收集模块;所述第二pcie报文转换模块接收所述第二本地总线接口发送的第二本地总线应答报文,根据所述第二本地总线应答报文获得第二pcie应答报文,并将所述第二pcie应答报文发送给所述pcie收集模块;所述pcie收集模块获取并发送所述第一pcie应答报文和所述第二pcie应答报文。
21.结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述第一pcie报文转换模块根据所述pcie收集模块的缓存向所述pcie收集模块发送所述第一pcie应答报文;所述第二pcie报文转换模块根据所述pcie收集模块的缓存向所述pcie收集模块发送所述第二pcie应答报文。
22.第三方面,提供了一种集成电路,包括:总线和接口标准pcie报文调度电路,第一pcie报文转换电路和第二pcie报文转换电路,
23.所述pcie报文调度电路,用于接收第一pcie报文和第二pcie报文,并根据调度策略并行向所述第一pcie报文转换电路发送所述第一pcie报文和向所述第二pcie报文转换电路发送所述第二pcie报文;
24.所述第一pcie报文转换电路,用于根据所述第一pcie报文获得第一本地总线报文,所述第一本地总线报文为第一本地总线接口能够识别的报文;
25.所述第二pcie报文转换电路,用于根据所述第二pcie报文获得第二本地总线报文,所述第二本地总线报文为第二本地总线接口能够识别的报文。
26.结合第三方面,在第三方面的某些实现方式中,所述pcie报文调度电路具体用于:根据所述第一pcie报文和所述第二pcie报文的访问地址,并行向所述第一pcie报文转换电路发送所述第一pcie报文和向所述第二pcie报文转换电路发送所述第二pcie报文。
27.结合第三方面,在第三方面的某些实现方式中,所述pcie报文调度电路,还用于根据所述第一pcie报文转换电路的缓存向所述第一pcie报文转换电路发送所述第一pcie报文,以及根据所述第二pcie报文转换电路的缓存向所述第二pcie报文转换电路发送所述第二pcie报文。
28.结合第三方面,在第三方面的某些实现方式中,所述集成电路还包括:pcie收集电路,
29.所述第一pcie报文转换电路,还用于接收所述第一本地总线接口发送的第一本地总线应答报文,根据所述第一本地总线应答报文获得第一pcie应答报文,并将所述第一pcie应答报文发送给所述pcie收集电路;
30.所述第二pcie报文转换电路,还用于接收所述第二本地总线接口发送的第二本地总线应答报文,根据所述第二本地总线应答报文获得第二pcie应答报文,并将所述第二pcie应答报文发送给所述pcie收集电路;
31.所述pcie收集电路,用于获取并发送所述第一pcie应答报文和所述第二pcie应答报文。
32.结合第三方面,在第三方面的某些实现方式中,所述第一pcie报文转换电路,还用于根据所述pcie收集电路的缓存向所述pcie收集电路发送所述第一pcie应答报文;所述第二pcie报文转换电路,还用于根据所述pcie收集电路的缓存向所述pcie收集电路发送所述第二pcie应答报文。
33.结合第三方面,在第三方面的某些实现方式中,所述集成电路还包括:pcie接口电路,第一本地总线接口电路,第二本地总线接口电路,
34.所述pcie接口电路,用于向所述pcie报文调度电路发送所述第一pcie报文和所述第二pcie报文;
35.所述第一本地总线接口电路,用于接收所述第一本地总线报文;
36.所述第二本地总线接口电路,用于接收所述第二本地总线报文。
37.可选地,上述集成电路可以是专用集成电路(application-specific integrated circuit,asi c),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
38.第四方面,提供了一种转换装置,包括输入输出接口、处理器和存储器,其中所述处理器用于控制所述输入输出接口收发信息,所述存储器用于存储计算机程序,所述处理器用于从存储器中调用并运行该计算机程序,使得所述转换装置执行第二方面或第二方面任意一种可能的实现方式中所述的方法。
39.可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
40.第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面任意一种可能的实现方式中所述的方法。
41.第六方面,提供了一种计算机可读写介质,所述计算机可读写介质存储有程序代码,待处理数据等。当所述计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面任意一种可能的实现方式中所述的方法。
附图说明
42.图1是本技术实施例提供的一种转换装置100的示意性框图。
43.图2是本技术实施例提供的一种转换方法的示意性流程图。
44.图3是本技术实施例提供的另一种转换装置300的示意性框图。
45.图4是本技术实施例提供的另一种转换装置400的示意性框图。
46.图5是本技术实施例提供的一种集成电路500的示意性框图。
具体实施方式
47.下面将结合附图,对本技术中的技术方案进行描述。
48.随着互联网协议(internet protocol,ip)的不断发展,主端设备可以访问从端设备,并与从端设备进行数据交换。作为一个示例,处理器(例如,中央处理器(central processing unit,cpu))作为主端设备可以与作为从端设备的外部设备(例如,芯片或单板)进行数据交换。在上述数据交换的过程中,主端设备和从端设备之间需要满足带宽需求以及实现成本需求。
49.为了便于描述,下面以主端设备为cpu,从端设备为外部设备为例进行说明。
50.以cpu的读写接口是本地总线(local bus)标准接口为例,cpu可以通过一个local bus接口访问外部设备。如果cpu需要访问多个外部设备,无论该cpu是单核cpu还是多核cpu,由于只有一个local bus接口,因此,该cpu只能通过时分复用的方式通过该local bus接口访问多个外部设备。这样,总线访问周期较长,本地总线带宽无法满足系统外部设备访问带宽的需求。以cpu的读写接口是总线和接口标准(peripheral component interface express,pcie)为例,cpu可以通过pcie访问外部设备。pcie是一种高速串行接口协议,其特点是高速串行点对点传输,拥有较高的带宽。在这种实现方式中,外部设备需要支持pcie接口,其实现成本较高。
51.为了满足cpu对外部设备访问的实现成本需求,相关的技术方案中,cpu可以通过
pcie协议访问外部设备的本地总线。在这种技术方案中,外部设备仅可以支持单个本地总线接口的访问,并且不支持并发处理多个数据包,使得访问带宽受到限制,数据的传输效率降低。
52.有鉴于此,本技术实施例提供了一种转换装置,可以同时满足主端设备对从端设备访问的实现成本需求以及带宽需求。下面结合图1,对本技术实施例提供的转换装置进行详细描述。
53.图1是本技术实施例提供的一种转换装置100的示意性框图。如图1所示,该转换装置100可以包括pcie报文调度模块110、第一pcie报文转换模块120以及第二pcie报文转换模块130。
54.pcie报文调度模块110,用于获取第一pcie报文和第二pcie报文,并基于调度策略并行向所述第一pcie报文转换模块发送所述第一pcie报文和向所述第二pcie报文转换模块发送所述第二pcie报文。一个示例,pcie报文调度模块110可以基于第一pcie报文和所述第二pcie报文的访问地址,并行向所述第一pcie报文转换模块发送所述第一pcie报文和向所述第二pcie报文转换模块发送所述第二pcie报文。另一个示例,pcie报文调度模块110还可以基于加权轮询(weighted round robin,wrr)的调度策略,将第一pcie报文和所述第二pcie报文在第一pcie报文转换模块120以及第二pcie报文转换模块130的端口之间进行公平的并行调度,没有优先级之分。另一个示例,pcie报文调度模块110还可以基于严格先验(strict prior,sp)的调度策略,区分第一pcie报文转换模块120以及第二pcie报文转换模块130的优先级,对实时性要求较高的第一pcie报文转换模块120的优先级高于实时性要求较低的第二pcie报文转换模块130的优先级。另一个示例,pcie报文调度模块110还可以基于wrr+sp的调度策略,将第一pcie报文和所述第二pcie报文在第一pcie报文转换模块120以及第二pcie报文转换模块130的端口之间公平的并行调度,同时还可以解决实时性的问题。
55.可选地,pcie报文调度模块110还可以根据所述第一pcie报文转换模块的缓存向所述第一pcie报文转换模块发送所述第一pcie报文。根据所述第二pcie报文转换模块的缓存向所述第二pcie报文转换模块发送所述第二pcie报文。这种上级模块(例如,pcie报文调度模块110)根据下级模块(例如,第一pcie报文转换模块120和/或第二pcie报文转换模块130)的缓存来控制是否向下级模块发送报文,可以使得pcie能力达到最大化。
56.第一pcie报文转换模块120,可以和第二pcie报文转换模块130并行处理接收到的pcie报文。在pcie报文的发送方向,在接收到第一pcie报文后,用于缓存第一pcie报文,并将第一pcie报文转换为第一本地总线接口可以识别的第一本地总线报文,并将该第一本地总线报文发送给第一本地总线接口。例如,第一pcie报文转换模块120可以基于pcie协议,获取第一pcie报文的关键访问信息,该关键访问信息可以包括但不限于:主端设备访问从端设备的起始地址、访问长度、读写命令类型、first dw be/last dw be等pcie访问的关键信息。并将第一pcie报文的关键访问信息转换为第一本地总线访问所需要的格式(第一本地总线报文),例如,访问起始地址和结束地址,字节/字/双字访问属性,访问数据长度,本地总线访问次数,读写命令等关键信息。在pcie报文的接收方向,第一pcie报文转换模块120还用于缓存从第一本地总线接口接收到的第一本地总线应答报文。该第一本地总线应答报文包括第一本地总线接口读取的数据,pcie访问状态,以及对应的pcie报文返回所需
要的3dw/4dw等信息。第一pcie报文转换模块120还可以根据该第一本地总线应答报文获取第一pcie应答报文,并发送该第一pcie应答报文。
57.第二pcie报文转换模块130,可以和第一pcie报文转换模块120并行处理接收到的pcie报文。例如,在pcie报文的发送方向,在接收到第二pcie报文后,用于第二pcie报文的缓存及将第二pcie报文转换为第一本地总线接口可以识别的第二本地总线报文,并将该第二本地总线报文发送给第二本地总线接口。在pcie报文的接收方向,第二pcie报文转换模块130还用于缓存从第二本地总线接口接收到的第二本地总线应答报文。该第二本地总线应答报文包括第二本地总线接口读取的数据,pcie访问状态,以及对应的pcie报文返回所需要的3dw/4dw等信息。第二pcie报文转换模块130还可以根据第二本地总线应答报文获取第二pcie应答报文,并发送该第二pcie应答报文。
58.可选地,上述转换装置100还包括:pcie收集模块140,该pcie收集模块140用于从所述第一pcie报文转换模块120获取第一pcie应答报文,从所述第而pcie报文转换模块130获取第二pcie应答报文,并向pcie接口发送所述第一pcie应答报文和所述第二pcie应答报文。
59.可选地,在pcie报文的接收方向,第一pcie报文转换模块120还用于根据所述pcie收集模块140的缓存向所述pcie收集模块发送所述第一pcie应答报文。
60.可选地,在pcie报文的接收方向,第二pcie报文转换模块130还用于根据所述pcie收集模块的缓存向所述pcie收集模块140发送所述第二pcie应答报文。
61.下面结合图2,对本技术实施例提供的一种转换方法进行详细描述。如图2所示,该方法可以包括步骤210-240,下面分别对步骤210-240进行详细描述。
62.步骤210:总线和接口标准pcie报文调度模块110接收第一pcie报文和第二pcie报文。
63.pcie报文调度模块110可以从pcie从端标准接口接收第一pcie报文和第二pcie报文。作为示例,该第一pcie报文和第二pcie报文可以是主端设备向所述pcie从端标准接口发送的。
64.应理解,pcie从端标准接口是pcie接口标准部分,用于实现pcie底层协议,使得转换装置100可以作为pcie的从端设备工作。具体的,可以接收主端设备发送的第一pcie报文和第二pcie报文。应理解,第一pcie报文和第二pcie报文可以是pcie写报文,或者也可以是pcie读报文,本技术对此不做具体限定。其中,pcie写报文表示需要将数据写入从端设备中,pcie读报文表示需要读取从端设备中存储的数据。
65.步骤220:所述pcie报文调度模块110根据调度策略并行向第一pcie报文转换模块120发送所述第一pcie报文和向第二pcie报文转换模块130发送所述第二pcie报文。
66.pcie报文调度模块110获取所述第一pcie报文和第二pcie报文后,可以基于调度策略并行向所述第一pcie报文转换模块120发送所述第一pcie报文和向所述第二pcie报文转换模块130发送所述第二pcie报文。一个示例,pcie报文调度模块110可以基于第一pcie报文和所述第二pcie报文的访问地址,并行向所述第一pcie报文转换模块120发送所述第一pcie报文和向所述第二pcie报文转换模块130发送所述第二pcie报文。其他的调度策略请参见上文中对pcie报文调度模块110的描述,此处不再赘述。
67.步骤230:所述第一pcie报文转换模块120根据所述第一pcie报文获得第一本地总
线报文,所述第一本地总线报文为第一本地总线接口能够识别的报文。
68.第一pcie报文转换模块120获取到第一pcie报文后,可以缓存第一pcie报文。将第一pcie报文转换为第一本地总线接口可以识别的第一本地总线报文,并将所述第一本地总线报文发送给第一本地总线接口。具体的根据第一pcie报文获得第一本地总线报文的具体实现方式请参见上文中对第一pcie报文转换模块120的描述,此处不再赘述。
69.应理解,第一本地总线接口获取到所述第一本地总线报文后,可以确定每次本地总线写操作(或者称为每个时序)所需要的信息,例如,每个时序对应的访问起始地址和结束地址,字节/字/双字访问属性,访问数据长度,读写命令等关键信息,从而进行字节/字/双字任意长度的本地总线访问。并基于每个时序所需要的上述信息完成本地总线的写操作,直至第一pcie报文的所有写数据处理完毕。
70.步骤240:所述第二pcie报文转换模块130根据所述第二pcie报文获得第二本地总线报文,所述第二本地总线报文为第二本地总线接口能够识别的报文。
71.第二pcie报文转换模块130和第一pcie报文转换模块120并行处理接收到的pcie报文。第二pcie报文转换模块130处理第二pcie报文的方法与第一pcie报文转换模块130处理第一pcie报文的方法类似,具体的请参见步骤230中第一pcie报文转换模块130处理第一pcie报文的方法,此处不再赘述。
72.上述提供的转发装置、转换方法,可以并行的对多个pcie报文进行流水线处理,使得访问带宽较大,提高了数据传输的效率。
73.可选地,在pcie报文的接收方向,第一pcie报文转换模块120还用于缓存从第一本地总线接口接收到的第一本地总线应答报文。根据第一本地总线应答报文获取第一pcie应答报文,并向pcie收集模块140发送第一pcie应答报文。同样的,第二pcie报文转换模块130还用于缓存从第二本地总线接口接收到的第二本地总线应答报文。根据第二本地总线应答报文获取第二pcie应答报文,并向pcie收集模块140发送第二pcie应答报文。pcie收集模块分别从第一pcie报文转换模块120和第二pcie报文转换模块130获取第一pcie应答报文和第二pcie应答报文后,将第一pcie应答报文和第二pcie应答报文发送给pcie从端标准接口,从而完成pcie报文的返回处理。
74.可选地,本技术实施例还支持反压机制,应理解,反压机制可以是上游模块根据下游模块的带宽来进行包的调度/停止调度,这样,可以通过反压机制控制下游模块的缓存,依靠空满状态进行报文的下发和数据的上送,使得缓存能力最大化,提高了运行的效率和带宽。作为示例,如果下游模块的带宽小于上游模块的带宽,上游模块可以停止向下游模块调度数据包;如果下游模块的带宽大于上游模块的带宽,上游模块可以向下游模块调度数据包。
75.在上述pcie报文的发送方向中,例如,第一pcie报文转换模块120的带宽小于pcie报文调度模块110的带宽,pcie报文调度模块110可以停止向第一pcie报文转换模块120调度第一pcie报文。又如,第二pcie报文转换模块130的带宽小于pcie报文调度模块110的带宽,pcie报文调度模块110可以停止向第二pcie报文转换模块130调度第一pcie报文。
76.在上述pcie报文的接收方向中,例如,pcie收集模块140的带宽小于第一pcie报文转换模块120的带宽,第一pcie报文转换模块120可以停止向pcie收集模块140调度第一pcie应答报文。又如,第二pcie报文转换模块130可以停止向pcie收集模块140调度第二
pcie应答报文。
77.图3是本技术实施例提供的另一种转换装置300的示意性框图。如图3所示,该转换装置300中包括:发送方(transport,tx)多端口轮询调度模块320,接收方(receive,rx)多端口轮询调度模块330,1~n个pcie tx包缓存和解析模块340,1~n个pcie tx报文转换预处理模块350,1~n个pcie rx报文转换预处理模块360,1~n个pcie rx包缓存和封装模块370,异常包处理模块390。
78.tx多端口轮询调度模块320,用于完成1~n个pcie tx包缓存和解析模块340之间在tx方向的报文调度。例如,可以基于pcie报文的访问地址,将多个pcie报文分别调度并缓存至对应的1~n个pcie tx包缓存和解析模块340中。
79.rx多端口轮询调度模块330,用于完成1~n个pcie rx包缓存和封装模块370之间在rx方向的报文调度。例如,可以基于1~n个pcie rx包缓存和封装模块370的空满,按照一定的调度策略,向pcie从端标准接口模块310发送pcie rx报文。
80.pcie tx包缓存和解析模块340,用于缓存接收到的多个pcie tx报文,解析并缓存各个pcie tx报文访问pcie的关键信息,并输出到1~n个pcie tx报文转换预处理模块350。该关键信息可以包括但不限于:主端设备访问从端设备的起始地址、访问长度、读写命令类型、first dw be/last dw be等pcie访问的关键信息。
81.pcie tx报文转换预处理模块350,用于从对应的pcie tx包缓存和解析模块340获取pcie tx报文访问pcie的关键信息,并将访问pcie的关键信息转换为本地总线访问所需要的格式。例如,访问起始地址和结束地址,字节/字/双字访问属性,访问数据长度,本地总线访问次数,读写命令等关键信息。
82.pcie rx报文转换预处理模块360,缓存从本地总线接口读取返回的数据及状态信息,及pcie报文头3dw/4dw相关的信息,以便进行后续的封装处理。
83.pcie rx包缓存和封装模块370,用于从对应的pcie rx报文转换预处理模块360获取上述相关的信息,根据该信息将该数据封装成pcie报文,并发送给rx多端口轮询调度模块330。
84.异常包处理模块390,主要缓存不符合预期的包,并返回相应的信息,以便主端设备能够尽快释放pcie资源能够尽快释放,为其他访问提供机会和资源,提高异常情况下的访问效率和带宽。
85.以写过程为例。tx多端口轮询调度模块320接收多个pcie写报文,并基于调度策略将缓存的多个pcie写报文分别发送至对应的1~n个pcie tx包缓存和解析模块340。每个pcie tx包缓存和解析模块340在获取到对应的多个pcie写报文后,可以基于pcie协议获取pcie写报文的关键访问信息,并发送给对应的pcie tx报文转换预处理模块350。每个pcie tx报文转换预处理模块350用于从对应的pcie tx包缓存和解析模块340获取pcie tx报文访问pcie的关键信息,并将访问pcie的关键信息转换为本地总线访问所需要的格式后发送给与其连接的本地总线接口。例如,访问起始地址和结束地址,字节/字/双字访问属性,访问数据长度,本地总线访问次数,读写命令等关键信息。
86.以读过程为例。pcie rx报文转换预处理模块360接收本地总线接口读取返回的数据及状态信息,及pcie报文头3dw/4dw相关的信息,以便进行后续的封装处理。pcie rx包缓存和封装模块370从对应的pcie rx报文转换预处理模块360获取上述信息,根据该信息将
rx封包模块490基于从1~n个pcie rx报文转换预处理模块470获取的封装pcie所需的相关信息,对所有从本地总线接口读取的数据进行统一封包处理,得到封装的多个pcie报文,并发送给主端设备,从而完成pcie报文的返回处理。
95.应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
96.图5是本技术实施例提供的一种集成电路500的示意性框图。该集成电路500包括:总线和接口标准pcie报文调度电路510,第一pcie报文转换电路520和第二pcie报文转换电路530,
97.所述pcie报文调度电路510,用于接收第一pcie报文和第二pcie报文,并根据调度策略并行向所述第一pcie报文转换电路520发送所述第一pcie报文和向所述第二pcie报文转换电路530发送所述第二pcie报文;
98.所述第一pcie报文转换电路520,用于根据所述第一pcie报文获得第一本地总线报文,所述第一本地总线报文为第一本地总线接口能够识别的报文;
99.所述第二pcie报文转换电路530,用于根据所述第二pcie报文获得第二本地总线报文,所述第二本地总线报文为第二本地总线接口能够识别的报文。
100.可选地,所述pcie报文调度电路510具体用于:根据所述第一pcie报文和所述第二pcie报文的访问地址,并行向所述第一pcie报文转换电路发送所述第一pcie报文和向所述第二pcie报文转换电路发送所述第二pcie报文。
101.可选地,所述pcie报文调度电路510,还用于根据所述第一pcie报文转换电路的缓存向所述第一pcie报文转换电路发送所述第一pcie报文,以及根据所述第二pcie报文转换电路的缓存向所述第二pcie报文转换电路发送所述第二pcie报文。
102.可选地,所述集成电路500还包括:pcie收集电路540,
103.所述第一pcie报文转换电路520,还用于接收所述第一本地总线接口发送的第一本地总线应答报文,根据所述第一本地总线应答报文获得第一pcie应答报文,并将所述第一pcie应答报文发送给所述pcie收集电路;
104.所述第二pcie报文转换电路530,还用于接收所述第二本地总线接口发送的第二本地总线应答报文,根据所述第二本地总线应答报文获得第二pcie应答报文,并将所述第二pcie应答报文发送给所述pcie收集电路;
105.所述pcie收集电路540,用于获取并发送所述第一pcie应答报文和所述第二pcie应答报文。
106.可选地,所述第一pcie报文转换电路520,还用于根据所述pcie收集电路的缓存向所述pcie收集电路发送所述第一pcie应答报文;所述第二pcie报文转换电路530,还用于根据所述pcie收集电路的缓存向所述pcie收集电路发送所述第二pcie应答报文。
107.可选地,所述集成电路500还包括:pcie接口电路550,第一本地总线接口电路560,第二本地总线接口电路570,
108.所述pcie接口电路550,用于向所述pcie报文调度电路510发送所述第一pcie报文和所述第二pcie报文;
109.所述第一本地总线接口电路560,用于接收所述第一本地总线报文;
110.所述第二本地总线接口电路570,用于接收所述第二本地总线报文。
111.上述集成电路500可以是专用集成电路(application-specific integrated circuit,asi c),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
112.本技术实施例还提供一种计算机可读写存储介质,该计算机可读写存储介质中存储有可读指令,可读写的待处理数据,该指令和数据用于上述方法实施例中的方法。
113.本技术实施例还提供一种包含指令的计算机程序产品,该指令用于实现上述方法实施例中的方法。
114.一种实现举例,处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
115.一种实现举例,存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
116.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
117.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
118.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
119.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
120.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
121.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读写存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
122.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1