一种全局异步站内同步的PCIe交换电路装置和方法转让专利

申请号 : CN202210674910.2

文献号 : CN114866497B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 翟宝峰王剑峰祁美娟杨靓郝奎董劭颖王蕊琪

申请人 : 西安微电子技术研究所

摘要 :

本发明提供一种全局异步站内同步的PCIe交换电路装置和方法,该系统包括若干个站模块,所有的站模块共同连接有访问仲裁模块;所述访问仲裁模块通过EERROM控制器和外部的EERROM交互,所述访问仲裁模块通过IIC总线控制器与外部的IIC主机交互;所述站模块通过PCIe链路连接有上游端口;该方法将电路划分为多个站模块,电路总体结构简单、各个模块的功能划分合理,有利于分模块高效的并行开展逻辑设计;同一个站中的所有端口工作于同一时钟域,不同的站可工作于不同的时钟域,电路的时钟域分隔清晰简洁,可以方便的进行跨时钟域的设计和检查,大大降低常见的跨时钟域设计风险,确保电路的可靠性。

权利要求 :

1.一种全局异步站内同步的PCIe交换电路装置,其特征在于,包括若干个站模块,所有的站模块共同连接有访问仲裁模块;所述访问仲裁模块通过EERROM控制器和外部的EERROM交互,所述访问仲裁模块通过IIC总线控制器与外部的IIC主机交互;所述站模块通过PCIe链路连接有上游设备;

所述访问仲裁模块,用于根据仲裁请求进行仲裁,根据仲裁结果对所述站模块进行读写访问;

所述仲裁请求包括来自上游端口的寄存器访问请求、来自EEPROM控制器的寄存器访问请求和IIC总线控制器的寄存器访问请求;

所述站模块,用于实现多个端口的物理层、数据链路层、事务层、事务路由或本地访问的作用。

2.根据权利要求1所述的一种全局异步站内同步的PCIe交换电路装置,其特征在于,所述站模块中有一个站为全局管理站,所述EERROM控制器和全局管理站中全局管理端口交互;所述全局管理站中全局管理端口交互有通用输入输出模块;

站的全局管理端口提供的共享配置寄存器包括原级总线号、次级总线号和下属总线号、存储器基点寄存器和存储器界限寄存器,I/O基点寄存器和I/O界限寄存器、存储器基点寄存器和存储器界限寄存器、可预取存储器基点寄存器和界限寄存器、可预取存储器基点高位寄存器和界限高位寄存器。

3.根据权利要求2所述的一种全局异步站内同步的PCIe交换电路装置,其特征在于,还包括时钟与复位管理模块和通用输入输出模块;

所述时钟与复位管理模块,用于与其它模块、系统的时钟引脚和复位引脚交互;

所述通用输入输出模块,用于与全局管理站中的全局管理端口交互。

4.根据权利要求1所述的一种全局异步站内同步的PCIe交换电路装置,其特征在于,若干个站模块在不同的时钟域工作。

5.根据权利要求1所述的一种全局异步站内同步的PCIe交换电路装置,其特征在于,每个站模块中的一个物理端口映射为不同的逻辑端口;一个逻辑端口为不同的物理端口。

6.根据权利要求1 5任意一项所述的全局异步站内同步的PCIe交换电路装置,其特征~在于,所述站模块包括物理层模块、多路复用模块、包缓存模块、本地访问模块和若干个端口综合处理模块;

所述物理层模块,用于对外交互,对内和所有的端口综合处理模块交互;

所述多路复用模块,用于按照上游物理端口指示信号选择本地访问请求,将访问请求送给本地访问模块,所述上游物理端口为所述站模块中的一个物理端口;

所述包缓存模块,用于缓存本站中所有物理端口暂存的事务;

所述本地访问模块,用于接收多路复用模块输出的本地访问请求并提交给访问仲裁模块;用于将从访问仲裁模块读取的数据或者写完成状态组装成完成包送到所述站模块中的端口综合处理模块。

7.根据权利要求6所述的一种全局异步站内同步的PCIe交换电路装置,其特征在于,所述端口综合处理模块包括端口控制器、专用寄存器模块、热插拔模块、入端接收交换模块和出端交换发送模块;

所述端口控制器,用于实现所述端口的事务层、数据链路层和物理层的介质访问控制子层功能;

所述专用寄存器,用于实现专有寄存器的功能,所述专有寄存器为除端口控制器实现的PCIe协议规定的寄存器以外的寄存器;

所述热插拔模块,用于按照PCIe协议管理所述物理端口的板卡插入和移除过程;

所述入端接收交换模块,用于依据路由相关的共享配置寄存器的值,将事务通过交换互联总线交换到目标出端口;

出端交换发送模块,用于将接收的事务按照PCIe排序的要求发送到端口控制器发送。

8.根据权利要求7所述的一种全局异步站内同步的PCIe交换电路装置,其特征在于,所述站模块中同时只能有一个端口控制器配置为上游模式;

端口控制器具有两个事务发送接口,其中一个接口供本地访问模块发送完成包,另一个接口供出端发送交换模块发送从其它端口交换过来的事务。

9.一种基于权利要求1所述PCIe交换电路装置的全局异步站内同步的PCIe交换方法,其特征在于,一个站模块中的各个端口以及模块产生同一时钟域的时钟和复位;不同站模块中的时钟和复位为不同时钟域;所述EEPROM控制器、IIC总线控制器和访问仲裁模块产生的时钟和复位信号与全局管理站的时钟和复位信号属于同一时钟域;所述全局管理站为站模块中的一个。

10.根据权利要求9所述的一种全局异步站内同步的PCIe交换方法,其特征在于,EEPROM控制器的寄存器访问和IIC总线控制器的寄存器访问请求同时发生时,优先处理EEPROM控制器的寄存器访问请求;上游端口的寄存器访问请求与IIC总线控制器的寄存器访问请求同时发生时优先处理上游端口的寄存器访问请求;上游端口的寄存器访问请求与来自EEPROM控制器的寄存器访问请求不会同时产生,不进行仲裁;

当EEPROM控制器、IIC总线控制器或者上游端口写某个端口的寄存器时,如果该寄存器是需要共享的寄存器,访问仲裁模块将写入该寄存器的值同时写入每个站的全局管理端口的共享配置寄存器。

说明书 :

一种全局异步站内同步的PCIe交换电路装置和方法

技术领域

[0001] 本发明属于集成电路设计技术领域,涉及一种全局异步站内同步的PCIe交换电路装置和方法。

背景技术

[0002] PCIe总线是在第一代EISA、ISA、VESA总线和第二代AGP、PCI、PCI‑X总线之后推出的第三代高性能IO总线,在计算机系统中获得广泛应用。
[0003] 在一个PCIe系统中,PCIe交换电路(Switch)用于将多个电子部件或模块进行互联通讯。PCIe交换电路内部集成了多个虚拟PCI‑to‑PCI桥,一般具有两个或两个以上的PCIe端口,其上游端口(Upstream Port)连接根复合体(Root  Complex,RC),下游端口(Downstream Port)连接端点(Endpoint)设备。图1为PCIe交换电路的概念性逻辑框图。
[0004] 作为PCIe总线系统中的关键元器件,关于PCIe交换电路应用的研究很多,但是关于PCIe交换电路本身实现机制的研究很少。

发明内容

[0005] 本发明的目的在于克服上述现有技术的缺点,提供一种全局异步站内同步的PCIe交换电路装置和方法,以解决现有的缺少PCIe交换电路其自身机制实现交换的问题。
[0006] 为达到上述目的,本发明采用以下技术方案予以实现:
[0007] 一种全局异步站内同步的PCIe交换电路装置,包括若干个站模块,所有的站模块共同连接有访问仲裁模块;所述访问仲裁模块通过EERROM控制器和外部的EERROM交互,所述访问仲裁模块通过IIC总线控制器与外部的IIC主机交互;所述站模块通过PCIe链路连接有上游设备;
[0008] 所述访问仲裁模块,用于根据仲裁请求进行仲裁,根据仲裁结果对所述站模块进行读写访问;
[0009] 所述仲裁请求包括来自上游端口的寄存器访问请求、来自EEPROM控制器的寄存器访问请求和IIC总线控制器的寄存器访问请求;
[0010] 所述站模块,用于实现多个端口的物理层、数据链路层、事务层、事务路由或本地访问的作用。
[0011] 本发明的进一步改进在于:
[0012] 优选的,所述站模块中有一个站为全局管理站,所述EERROM控制器和全局管理站中全局管理端口交互;所述全局管理站中全局管理端口交互有通用输入输出模块;
[0013] 站的全局管理端口提供的共享配置寄存器包括原级总线号、次级总线号和下属总线号、存储器基点寄存器和存储器界限寄存器,I/O基点寄存器和I/O界限寄存器、存储器基点寄存器和存储器界限寄存器、可预取存储器基点寄存器和界限寄存器、可预取存储器基点高位寄存器和界限高位寄存器。
[0014] 优选的,还包括时钟与复位管理模块和通用输入输出模块;
[0015] 所述时钟与复位管理模块,用于与其它模块、系统的时钟引脚和复位引脚交互;
[0016] 所述通用输入输出模块,用于与全局管理站中的全局管理端口交互;
[0017] 优选的,若干个站模块在不同的时钟域工作。
[0018] 优选的,每个站模块中的一个物理端口映射为不同的逻辑端口;一个逻辑端口为不同的物理端口。
[0019] 优选的,所述站模块包括物理层模块、多路复用模块、包缓存模块、本地访问模块和若干个端口综合处理模块;
[0020] 所述物理层模块,用于对外交互,对内和所有的端口综合处理模块交互;
[0021] 所述多路复用模块,用于按照上游物理端口指示信号选择本地访问请求,将访问请求送给本地访问模块,所述上游物理端口为所述站单元中的一个物理端口;
[0022] 所述包缓存模块,用于缓存本站中所有物理端口暂存的事务;
[0023] 所述本地访问模块,用于接收多路复用模块输出的本地访问请求并提交给访问仲裁模块;用于将从访问仲裁模块读取的数据或者写完成状态组装成完成包送到所述站模块中的端口综合处理模块;
[0024] 优选的,所述端口综合处理模块包括端口控制器、专用寄存器模块、热插拔模块、入端接收交换模块和出端交换发送模块;
[0025] 所述端口控制器,用于实现所述端口的事务层、数据链路层和物理层的介质访问控制子层功能;
[0026] 所述专用寄存器,用于实现专有寄存器的功能,所述专有寄存器为除端口控制器实现的PCIe协议规定的寄存器以外的寄存器;
[0027] 所述热插拔模块,用于按照PCIe协议管理所述物理端口的板卡插入和移除过程;
[0028] 所述入端接收交换模块,用于依据路由相关的共享配置寄存器的值,将事务通过交换互联总线交换到目标出端口;
[0029] 出端交换发送模块,用于将接收的事务按照PCIe排序的要求发送到端口控制器发送。
[0030] 优选的,所述站模块中同时只能有一个端口控制器配置为上游模式;
[0031] 端口控制器具有两个事务发送接口,其中一个接口供本地访问模块发送完成包,另一个接口供出端发送交换模块发送从其它端口交换过来的事务。
[0032] 一种全局异步站内同步的PCIe交换方法,
[0033] 一个站模块中的各个端口以及模块产生同一时钟域的时钟和复位;不同站模块中的时钟和复位为不同时钟域;所述EEPROM控制器、IIC总线控制器和访问仲裁模块产生的时钟和复位信号与全局管理站的时钟和复位信号属于同一时钟域;所述全局管理站为站模块中的一个。
[0034] 优选的,EEPROM控制器的寄存器访问和IIC总线控制器的寄存器访问请求同时发生时,优先处理EEPROM控制器的寄存器访问请求;上游端口的寄存器访问请求与IIC总线控制器的寄存器访问请求同时发生时优先处理上游端口的寄存器访问请求;上游端口的寄存器访问请求与来自EEPROM控制器的寄存器访问请求不会同时产生,不进行仲裁;
[0035] 当EEPROM控制器、IIC总线控制器或者上游端口写某个端口的寄存器时,如果该寄存器是需要共享的寄存器,访问仲裁模块将写入该寄存器的值同时写入每个站的全局管理端口的共享配置寄存器。
[0036] 与现有技术相比,本发明具有以下有益效果:
[0037] 本发明提供一种全局异步站内同步的PCIe交换电路装置,该系统包括若干个站模块,所有的站模块共同连接有访问仲裁模块;所述访问仲裁模块通过EERROM控制器和外部的EERROM交互,所述访问仲裁模块通过IIC总线控制器与外部的IIC主机交互;所述站模块通过PCIe链路连接有上游设备;该方法将电路划分为多个站模块,电路总体结构简单、各个模块的功能划分合理,有利于分模块高效的并行开展逻辑设计;同一个站中的所有端口工作于同一时钟域,不同的站可工作于不同的时钟域,电路的时钟域分隔清晰简洁,可以方便的进行跨时钟域的设计和检查,大大降低常见的跨时钟域设计风险,确保电路的可靠性;该系统的扩展性强,可以通过增加或者减少站的数量方便地实现电路支持的总端口数量的增加或减少,可面向不同应用快速开发不同的产品;通过访问仲裁模块将各个端口需要共享的寄存器自动写入站全局管理端口的共享配置寄存器,有效的降低了站中各个端口配置寄存器和其它站的互联线的数量,避免了布线拥塞和众多的时序检查,降低了物理实现的难度;该系统结构简单、原理清晰、端口裁剪扩充方便、逻辑综合和物理可实现性强。
[0038] 本发明还公开一种全局异步站内同步的PCIe交换方法,该方法利用全局异步站内同步的特点可以很好的获得集成电路EDA设计工具的全流程支持,可以方便的开展逻辑综合和物理实现,特别是可以很好的支持基于站的模块化逻辑综合和物理实现,提高逻辑综合和物理实现的效率;(6)全局异步的特点使得电路内部时序逻辑不会同时翻转,降低了电路的峰值工作电流,使得电源网络上IR‑Drop更易满足设计要求,同时,降低了应用的供电电源要求,更加方便用户硬件设计。

附图说明

[0039] 图1为PCIe交换电路的概念性逻辑框图;
[0040] 图2为本发明实施例的PCIe交换电路原理框图;
[0041] 图3为本发明实施例站0模块的原理框图;

具体实施方式

[0042] 下面结合附图对本发明做进一步详细描述:
[0043] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性;此外,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0044] 参见图2,本发明公开了一种全局异步站内同步的PCIe交换电路装置,包括一个或多个站、EEPROM控制器、IIC总线控制器、访问仲裁模块、通用输入输出模块(GPIO)、时钟与复位管理模块。
[0045] 所述站与访问仲裁模块和外部链路引脚交互,实现多个端口的物理层、数据链路层、事务层、事务路由、本地访问等功能;整个系统包括多个站时,多个站之间进行交互,通过交换互联总线实现所有站中不同端口的事务交换;
[0046] 所述EEPROM控制器对外与EEPROM交互,对内与访问仲裁模块和全局管理站中的全局管理端口交互;在电路硬件复位后通过SPI接口(Serial Peripheral Interface,即串行外围接口)主动读取外部EEPROM中的初始化信息送给所述访问仲裁模块;在电路正常工作期间,所述EEPROM控制器还可以通过EEPROM配置和访问总线固定从全局管理站中的全局管理端口接收访问请求,通过SPI接口读取或更改外部EEPROM存储的信息;所述EEPROM控制器还可以从全局管理站中的全局管理端口接收配置信息,设置SPI接口的访问速率;
[0047] IIC总线控制器模块与访问仲裁模块和外部IIC主机交互,实现了IIC从机接口,可以访问电路内部各个端口的寄存器;当上游链路连接失败时,IIC模块可用于调试;当无外挂EEPROM器件时,IIC模块也可代替EEPROM进行电路的初始化信息加载;
[0048] 访问仲裁模块与各个站模块、EEPROM控制器和IIC总线控制器交互,对来自站中上游端口的寄存器访问请求、来自EEPROM控制器的寄存器访问请求和IIC总线控制器的寄存器访问请求进行仲裁,并按仲裁结果对相应站中PCIe端口进行读写访问;
[0049] 通用输入输出模块(GPIO)与全局管理站中的全局管理端口和外部GPIO引脚交互,实现了通用输入和通用输出功能;
[0050] 时钟与复位管理模块与其它所有模块、电路的时钟引脚和复位引脚交互,负责接收时钟引脚上的PCIe差分时钟和复位信号并将其转换为内部所有模块的时钟和复位信号。
[0051] 一种全局异步站内同步的PCIe交换电路装置,(1)基于单个链路的最大通路数和电路总通路数的均衡将所有通路分配在多个站模块中;(2)每个站模块包含多个通路和端口,站内物理层模块具有多个PIPE接口,依据工作模式的不同,站内通路连接到同一端口或不同端口上;(3)同一个站中的所有端口工作于同一时钟域;不同站可工作于不同的时钟域,即全局异步站内同步;(4)站内包缓存只供站内各端口使用。
[0052] 每个站的物理端口和逻辑端口在不同工作模式下具有不同的映射关系,一个物理端口可以映射为不同的逻辑端口,同一逻辑端口可以为不同的物理端口;物理端口指物理上存在的端口,与工作模式无关;站中物理端口的个数为站中用户可访问的最大端口数,逻辑端口指与工作模式相关的端口,是用户可以访问的端口;端口寄存器的访问等涉及端口号的逻辑需要依据工作模式进行逻辑端口号向物理端口号的转换。
[0053] 所述每个站中的一个端口固定为本站全局管理端口,提供本站所有端口使用的共享配置信息;多个站中的一个站固定为电路的全局管理站,全局管理站中的全局管理端口同时做为电路全局管理端口,提供EEPROM控制器和GPIO等全局控制和状态信息;
[0054] 当EEPROM控制器、IIC总线控制器或者上游端口写某个端口的寄存器时,如果该寄存器是需要共享的寄存器,访问仲裁模块将写入该寄存器的值同时写入每个站的全局管理端口的共享配置寄存器;可选的,全局管理端口的共享配置寄存器可以提供用户访问,也可以不提供用户访问;
[0055] 站的全局管理端口提供的共享配置寄存器包括原级总线号(Primary Bus Number)、次级总线号(Secondary Bus Number)和下属总线号(Subordinate Bus Number)、存储器基点寄存器和存储器界限寄存器,I/O基点寄存器和I/O界限寄存器、存储器基点寄存器和存储器界限寄存器、可预取存储器基点寄存器和界限寄存器、可预取存储器基点高位寄存器和界限高位寄存器;
[0056] 参见图3,每一个站模块主要由一个物理层模块(PHY)、多路复用模块、本地访问模块、包缓存模块以及多个端口综合处理模块组成;每一个站模块中有多个端口综合处理模块,每一个端口综合处理模块中设置有各自的端口控制器模块、专用寄存器模块、入端接收交换模块、出端发送交换模块和热插拔控制模块。
[0057] 物理层模块(PHY)对外通过物理链路和对端设备交互,对内通过标准PCIe物理层接口(Physical Interface for PCI Express,PIPE)和站内各个端口控制器交互,实现了站内所有通路的物理编码子层和物理介质连接层功能;
[0058] 各个端口控制器通过PIPE接口和站内物理层模块交互,通过内部连线和本端口专用寄存器、入端接收交换模块、出端发送交换模块、本地访问模块和热插拔控制模块交互,每个端口控制器实现了本端口的事务层、数据链路层和物理层的介质访问控制子层功能;
[0059] 站模块中的所有端口都有自己的专用寄存器,专用寄存器模块与端口控制器模块、入端接收交换模块、出端发送交换模块交互,实现了各个端口中除端口控制器实现的标准寄存器外的所有电路专用寄存器,如共享配置寄存器;
[0060] 入端接收交换模块与本端口控制器模块、专用寄存器模块、多路复用模块、包缓存模块、本站及其它站各端口的出端发送交换模块、本站全局管理端口的专用寄存器模块交互,负责从端口控制器接收事务,并依据本站全局管理端口专用寄存器中路由相关的共享配置寄存器的值将事务通过包缓存暂存后通过交换互联总线交换到目标出端口;进一步的,当本端口为上游端口时,入端接收交换模块将访问本电路内寄存器的事务递交多路复用模块请求访问;
[0061] 出端发送交换模块与本端口的端口控制器模块、专用寄存器模块、包缓存模块、本站及其它站各个端口的入端接收交换模块交互,实现交叉开关的出端事务接收功能,将接收的事务缓存到包缓存并按照PCIe排序的要求调度转发(Posted)、非转发(Non‑Posted)和完成(Completion)三种不同事务将其发送到本端口的端口控制器发送接口1进行发送;
[0062] 多路复用模块与站模块内的本地访问模块、上游物理端口号指示信号、各个端口的入端接收交换模块交互;当本站中的某个物理端口为上游端口时,本地访问模块负责按照上游物理端口指示信号选择上游端口的本地访问请求送给站内本地访问模块;本地访问请求可以是本站或其它站中的任意一个端口的寄存器访问请求;
[0063] 每个站模块包含一个本地访问模块,本地访问模块与访问仲裁模块、站内多路复用模块和各个端口控制器交互;当本站中的某个端口为上游端口时,本地访问模块用于接收多路复用模块输出的本地访问请求并提交给访问仲裁模块;经访问仲裁模块完成指定端口的寄存器访问后,本地访问模块将访问仲裁模块读取的数据或者输出的写完成状态组装成完成包送到本站中的上游端口控制器事务发送接口0进行发送;
[0064] 站模块内各端口的热插拔模块与端口控制器和热插拔引脚信号交互,根据端口的寄存器状态和热插拔输入引脚状态,按照PCIe协议规定进行本端口板卡插入和移除过程的管理,只有本端口作为下游端口时热插拔控制器才可以工作。
[0065] 所有端口控制器可配置为上游模式,也可以配置为下游模式,但同时只能有一个端口控制器配置为上游端口模式;端口控制器具有两个事务发送接口,其中一个接口供本地访问模块发送完成包,另一个接口供出端发送交换模块发送从其它端口交换过来的事务;端口控制器只实现了PCIe协议规定的标准寄存器,不实现电路专用寄存器;
[0066] 所述访问仲裁模块的仲裁规则为:EEPROM控制器的寄存器访问和IIC总线控制器的寄存器访问请求同时发生时,优先处理EEPROM控制器的寄存器访问请求;上游端口的寄存器访问请求与IIC总线控制器的寄存器访问请求同时发生时优先处理上游端口的寄存器访问请求;上游端口的寄存器访问请求与来自EEPROM控制器的寄存器访问请求不会同时产生,不进行仲裁;
[0067] 时钟与复位管理模块将时钟引脚的差分时钟转成多个单端异步时钟分别提供给各个站的物理层模块,向同一站中各个端口、本地访问模块、包缓存模块和多路复用模块产生属于同一时钟域的时钟和复位,向不同站产生的时钟和复位属于不同的时钟域,向EEPROM控制器、IIC总线控制器、GPIO模块和访问仲裁模块产生的时钟和复位信号与全局管理站的时钟和复位信号属于同一时钟域。
[0068] 下面结合具体的实施例进一步的说明:
[0069] 图2为根据本发明一种全局异步站内同步的PCIe交换电路装置实现的一款12端口、48通路数的PCIe交换电路的原理框图。
[0070] 本实施例电路具有12个物理端口、48条通路,将12个物理端口从0到11编号,基于12个物理端口中的三个端口的链路最大通路数为16和电路总通路数为48这一特征,将所有通路平均分配在3个站中,每个站包含16条通路和4个端口;每个站集成一个物理层模块,该物理层模块具有4个PIPE接口,依据工作模式的不同,站内16条通路连接到不同端口上;同一个站中的所有端口工作于同一时钟域;不同站工作于不同的时钟域;每个站的站内包缓存只供站内各端口使用;每个站集成了2个x4端口控制器、一个x8端口控制器和一个x16端口控制器;物理端口0、4、8集成x16端口控制器,可依据工作模式的不同工作为x4、x8和x16通路模式;物理端口2、6、10集成x8端口控制器,可依据工作模式的不同工作为x4和x8通路模式;剩余物理端口集成x4端口控制器,可工作为x4通路模式;
[0071] 本实施例全局异步站内同步的PCIe交换电路装置包括3个站模块、一个EEPROM控制器、一个IIC(Inter‑Integrated Circuit)总线控制器、访问仲裁模块、通用输入输出模块、时钟与复位管理模块;图3为本发明实施例站0模块的原理框图;为了方便,在不影响理解的前提下,图中省略了端口1和端口2部分的框图;
[0072] 每个站模块与访问仲裁模块和外部链路引脚交互,实现多个端口的物理层、数据链路层、事务层、事务路由、本地访问等功能;电路包括多个站时,多个站之间进行交互,通过交换互联总线实现所有站中不同端口的事务交换;
[0073] 本实施例的EEPROM控制器对外与EEPROM交互,对内与访问仲裁模块和全局管理站0中的全局管理端口0交互;在电路硬件复位后通过SPI接口主动读取外部EEPROM中的初始化信息送给所述访问仲裁模块;SPI接口包含串行时钟输出、主机输出、主机输入和输出片选四个信号;在电路正常工作期间,所述EEPROM控制器还可以通过EEPROM配置和访问总线固定从站0中的端口0接收访问请求,通过SPI接口读取或更改外部EEPROM存储的信息;所述EEPROM控制器还可以从站0中的端口0接收配置信息,设置SPI接口的访问速率为1MHz或
5MHz、12.5MHz、17.86MHz、31.25MHz;
[0074] IIC总线控制器模块与访问仲裁模块和外部IIC主机交互,实现了IIC从机接口,可以访问电路内部各个端口的寄存器;当上游链路连接失败时,IIC模块可用于调试;当无外挂EEPROM器件时,IIC模块也可代替EEPROM进行电路的初始化信息加载;
[0075] 访问仲裁模块与3个站模块、EEPROM控制器和IIC总线控制器交互,对来自站中上游端口的寄存器访问请求、来自EEPROM控制器的寄存器访问请求和IIC总线控制器的寄存器访问请求进行仲裁,并按仲裁结果对相应站中PCIe端口进行读写访问;
[0076] 通用输入输出模块与站0中的全局管理端口0和外部12个GPIO引脚交互,实现了通用输入和通用输出功能,全局管理端口0中设置了GPIO引脚的方向控制、输入数据和输出数据等寄存器,可以控制12个GPIO的输出或者将其输入数据装载到输入数据寄存器;
[0077] 时钟与复位管理模块与其它所有模块、电路的时钟引脚和复位引脚交互,负责接收时钟引脚上的100MHz PCIe差分时钟和复位引脚信号并将其转换为内部所有模块的时钟和复位信号。
[0078] 本实施例每个站模块的物理端口和逻辑端口在不同工作模式下具有不同的映射关系,一个物理端口可以映射为不同的逻辑端口,同一逻辑端口可以为不同的物理端口;物理端口指物理上存在的端口,与工作模式无关,站中物理端口的个数为站中用户可访问的最大端口数4;逻辑端口指与工作模式相关的端口,是用户可以访问的端口;端口寄存器的访问等涉及端口号的逻辑依据工作模式进行逻辑端口号向物理端口号的转换;
[0079] 下表以站0模块为例说明站中各工作模式下物理端口与逻辑端口的映射关系:
[0080] 站0工作模式 物理端口0 物理端口1 物理端口2 物理端口3x4x4x4x4 逻辑端口0 逻辑端口1 逻辑端口2 逻辑端口3
x16 逻辑端口0 —— —— ——
x8x8 逻辑端口0 逻辑端口1 ——
x8x4x4 逻辑端口0 逻辑端口1 ——
[0081] 对于站0模块:物理端口0始终映射为逻辑端口0,可工作为x4、x8和x16通路模式;物理端口2在x4x4x4x4模式下映射为逻辑端口2,在x8x8和x8x4x4工作模式下映射为逻辑端口1,物理端口1和物理端口3仅在x4x4x4x4模式下分别映射为逻辑端口1和逻辑端口3;
[0082] 本实施例每个站模块中的第一个端口固定为本站全局管理端口,提供本站所有端口使用的共享配置信息;3个站模块中的站0模块固定为电路的全局管理站,站0模块中的全局管理端口0同时作为电路全局管理端口,提供EEPROM控制器和GPIO等全局控制和状态信息;
[0083] 站的全局管理端口提供的共享配置寄存器包括原级总线号、次级总线号和下属总线号、存储器基点寄存器和存储器界限寄存器,I/O基点寄存器和I/O界限寄存器、存储器基点寄存器和存储器界限寄存器、可预取存储器基点寄存器和界限寄存器、可预取存储器基点高位寄存器和界限高位寄存器;
[0084] 当EEPROM控制器、IIC总线控制器或者上游端口写某个端口的上述共享配置寄存器时,访问仲裁模块将写入该寄存器的值同时写入每个站的全局管理端口的共享配置寄存器;为方便用户软硬开发,三个站的全局管理端口的共享配置寄存器设计为可供用户访问;
[0085] 电路全局管理端口0提供EEPROM、GPIO等全局控制和状态信息,包括EEPROM状态和控制寄存器、缓存寄存器、地址寄存器;访问EEPROM时,将要访问的EEPROM地址、访问指令、要写入的数据等信息写入相应的寄存器,EEPROM控制器模块就会根据寄存器发来的指令对外部的EEPROM发起相应操作;
[0086] 本实施例中每一个站模块由一个物理层模块、4个端口的端口控制器模块、专用寄存器模块、入端接收交换模块、出端发送交换模块、多路复用模块、本地访问模块、包缓存模块、热插拔控制模块等组成;
[0087] 物理层模块对外和x16链路交互,对内通过PIPE接口和站内4个端口控制器交互,实现了站内所有16条通路的物理编码子层和物理介质连接层功能;
[0088] 各个端口控制器通过PIPE接口和站内物理层模块交互,通过内部连线和本端口专用寄存器、入端接收交换模块、出端发送交换模块、本地访问模块和热插拔控制模块交互,每个端口控制器实现了本端口的事务层、数据链路层和物理层的介质访问控制子层功能;
[0089] 站模块中的所有端口都有自己的专用寄存器,专用寄存器模块与端口控制器模块、入端接收交换模块、出端发送交换模块交互,实现了各个端口中除端口控制器实现的标准寄存器外的所有电路专用寄存器;
[0090] 入端接收交换模块与本端口控制器模块、专用寄存器模块、多路复用模块、包缓存模块、本站及其它站各端口的出端发送交换模块、本站全局管理端口的专用寄存器模块交互,其接收功能为从端口控制器接收各种事务并将事务通过包缓存暂存,依据本站全局管理端口专用寄存器中所有12个端口的原级总线号、次级总线号和下属总线号、存储器基点寄存器和存储器界限寄存器、I/O基点寄存器和I/O界限寄存器、存储器基点寄存器和存储器界限寄存器、可预取存储器基点寄存器和界限寄存器、可预取存储器基点高位寄存器和界限高位寄存器等共享配置寄存器的值按照PCIe协议规定的路由规则确定目标出端口;入端接收交换模块的交换功能为从包缓存模块中读取暂存的事务并将事务通过交换互联总线交换到目标出端口;当本端口为上游端口时,入端接收交换模块的接收部分依据本端口控制器输出的基地址寄存器(Base Address Register,BAR)信息将访问本电路内存储器映射的寄存器的事务递交多路复用模块请求访问,依据本端口控制器输出的次级总线号寄存器的值将访问的本电路内寄存器的配置事务递交多路复用模块请求访问;
[0091] 出端发送交换模块与端口控制器模块、专用寄存器模块、包缓存模块、本站及其它站的入端接收交换模块交互,实现交叉开关的事务出端接收功能,将接收的事务缓存到包缓存并按照PCIe排序的要求调度转发、非转发和完成三种不同事务将其发送到端口控制器的发送接口1进行发送;
[0092] 多路复用模块与站内本地访问模块、上游物理端口号指示信号、各个端口的入端接收交换模块交互;当本站中的某个端口为上游端口时,本地访问模块负责按照上游物理端口指示信号选择上游端口的本地访问请求送给站内本地访问模块;本地访问请求可以是本站或其它站中的任意一个端口的寄存器访问请求;
[0093] 每个站包含一个本地访问模块,本地访问模块与访问仲裁模块、站内多路复用模块和各个端口控制器交互;当本站中的某个端口为上游端口时,本地访问模块用于接收多路复用模块输出的本地访问请求并提交给访问仲裁模块;经访问仲裁模块完成指定端口的寄存器访问后,本地访问模块将访问仲裁模块读取的数据或者写完成状态组装成完成包送到本站中的上游端口控制器事务发送接口0进行发送。
[0094] 站内各端口的热插拔模块与端口控制器和热插拔引脚信号交互,根据端口的寄存器状态和热插拔输入引脚状态,按照PCIe协议规定进行本端口板卡插入和移除过程的管理,只有本端口作为下游端口时热插拔控制器才可以工作;
[0095] 本实施例中所有端口控制器可配置为上游模式,也可以配置为下游模式,但同时只能有一个端口控制器配置为上游端口模式;端口控制器具有两个事务发送接口,其中一个接口供本地访问模块发送完成包,另一个接口供出端发送交换模块发送从其它端口交换过来的事务;端口控制器只实现了PCIe协议规定的标准寄存器,电路专用寄存器由专用寄存器模块实现,端口控制器可以访问专用寄存器模块;
[0096] 本实施例时钟与复位管理模块将时钟引脚差分时钟转成单端时钟提供给三个站的物理层,将100MHz单端时钟倍频后向同一站中四个端口、本地访问模块、包缓存模块和多路复用模块产生属于同一时钟域的频率为250MHz的时钟;时钟与复位管理模块向不同站产生的时钟属于不同的时钟域;时钟与复位管理模块将电路引脚上的异步复位使用各自站的时钟域下的时钟同步后送往各个站;时钟与复位管理模块向EEPROM控制器、IIC总线控制器、GPIO模块和访问仲裁模块产生的时钟和复位信号与站0模块的时钟和复位信号属于同一时钟域;
[0097] 本实施例中当EEPROM控制器的寄存器访问和IIC总线控制器的寄存器访问请求同时发生时,优先处理EEPROM控制器的寄存器访问请求;上游端口的寄存器访问请求与IIC总线控制器的寄存器访问请求同时发生时优先处理上游端口的寄存器访问请求;上游端口的寄存器访问请求与来自EEPROM控制器的寄存器访问请求不会同时产生,不进行仲裁。
[0098] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。