一种基于标准PCIe上行端口的IO扩展架构方法

文档序号:6401419阅读:255来源:国知局
专利名称:一种基于标准PCIe上行端口的IO扩展架构方法
技术领域
本发明涉及涉及计算机和通信领域,具体地说,本发明涉及一种基于标准PCIe上行端口的IO扩展架构方法。
背景技术
目前,基于X86处理器的系统,使用专有的系统总线,如Intel的QPI总线和AMD的HT总线,传统设备挂接在系统总线延伸出的DMI或者A-Link上,PCIe/PCI桥接电路也挂在系统总线上,逻辑关系如图1所示。X86处理器Al 一上电就可以访问传统设备(包括BIOS) A3,在BIOS执行过程中通过PCIe/PCI桥A2配置PCIe/PCI通路和设备。但是,申威处理器没有使用国外公司专有的系统总线,但要利用市场上众多的外部设备,就集成了标准的PCIe根联合体,没有直接挂接传统设备的接口。申威处理器无法做到一上电就访问传统设备。

发明内容
本发明解决的问题是基于申威处理器的系统的I/O扩展问题和处理器上电启动问题。为了解决上述问题,根据本发明,提供了一种用于申威处理器的基于标准PCIe上行端口的IO扩展架构方法,其包括:进行分层多级总线扩展,其中多级总线的根在于申威处理器的标准PCIe接口,处理器提供带外的串口,按照总线带宽的高低确定总线离处理器的远近,将BIOS芯片挂在最远的地方;执行申威处理器硬件的初始配置、并初始执行代码,通过带外串口注入到申威处理器的内部寄存器和指令高速缓存中,完成处理器的启动配置,使处理器执行启动代码;通过申威处理器的初始执行代码完成存控的训练和主存的初始化,并通过一次PCI设备深度优先的枚举操作,完成申威处理器到BIOS访问通路的构建,由此可以实现快速执行BIOS代码。带外串口基于共同时钟,数据收发速率高达25Mbps,系统端的数据收发可以选择在时钟的上升沿或者下降沿,一对一的双向传输方式;在深度睡眠状态下,PCIe上行端口停止工作,用于唤醒的中断通过带外串口传递到申威处理器的中断控制器,使处理器推出深度睡眠状态。优选地,将传统设备挂接在离处理器最远的总线上,通过各级总线仲裁优先级的配置。从而,保证各级设备在带宽、延迟等方面的服务质量要求。优选地,初始执行代码内含PCI设备枚举功能,用于将传统1/0空间分配给首个下一级总线。优选地,带外串口采用同步的物理层,且时钟和数据的相位关系在系统端可配,链路层以包的形式传输,请求和响应之间没有严格的时序要求。优选地,链路层的包的传输是连续,不可暂停,以特定的命令码和响应码标识包的开始和长度。优选地,中断使用一个特定的命令码和包格式,以包的方式传递给处理器。优选地,根据实际系统的需要,增强或弱化其中的某级总线挂接设备的能力。


结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:图1示意性地示出了传统设备的逻辑关系。图2是本发明I/O扩展架构方法的一种实施方式示意图;图3是本发明I/O扩展架构方法的一种实施例示意图;图4是本发明I/O扩展架构方法的另一种实施例示意图;图5是本发明系统启动方法一种实施方式不意图;图6是本发明系统唤醒方法的一种实施方式示意图。需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施例方式为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。为解决现有技术的上述问题,在本发明提供的用于申威系统的I/O扩展架构方法中,使用标准PCIe上行端口的分层多级总线扩展,第一级为PCIe总线,第二级为PCI总线,第三级为传统总线,其中BIOS挂在传统总线下;通过带外的同步串行通路注入申威处理器所需的初始配置和初始执行代码,初始执行代码只需一次深度优先的枚举,就完成了传统设备的访问通路构建,使得申威处理器可以快速获取BIOS内容;通过带外的同步串行通路,可向CPU发出不可屏蔽中断,用于睡眠状态下的唤醒等目的。其中,在本发明中,术语“传统设备”指的是计算机中除处理器之外的其它设备。更进一步地说,为解决现有技术的上述问题,本发明提供一种基于标准PCIe上行端口的I/o扩展架构方法,包括:进行分层多级总线扩展,其中多级总线的根在于申威处理器的标准PCIe接口,处理器还提供带外串口,按照总线带宽的高低确定总线离处理器的远近(即,总线带宽越高,离处理器越近),传统设备(包括BIOS芯片)挂接在离处理器最远的总线上,。通过各级总线仲裁优先级的配置,保证各级设备在带宽、延迟等方面的服务质量要求;例如,挂在PCI总线上的音频播器放对带宽和延迟的服务质量要求。可以根据实际系统的需要,增强或弱化其中的某级总线挂接设备的能力。执行申威处理器硬件的初始配置、并且初始启动代码,通过带外串口注入到申威处理器的内部寄存器和指令高速缓存中,完成处理器的初始配置,使处理器执行初始启动代码。申威处理器通过执行初始启动代码完成存控的训练和主存的初始化,代码中还内含PCI设备枚举功能,通过一次PCI设备深度优先的枚举操作,将传统I/O空间分配给首个下一级总线,完成申威处理器到BIOS访问通路的构建。申威处理器将BIOS代码取到主存的合适位置,然后执行BIOS代码。在深度睡眠状态下,PCIe上行端口停止工作,用于唤醒的中断通过带外串口传递到申威处理器的中断控制器,使处理器推出深度睡眠状态。带外串口信息传输,物理层基于共同时钟,一对一的双工传输方式,数据收发速率高达25Mbps,系统端的数据收发可以选择在时钟的上升沿或者下降沿,从而调整时钟和数据的相位关系,降低板级的工程要求;链路层以包的形式传输,请求和响应之间没有严格的时序要求。包的传输是连续,不可暂停,以特殊的命令码和响应码标识包的开始和长度。唤醒中断使用一个特殊的命令码和包格式,以包的方式传递给处理器。通过采用上述配置,本发明解决了基于申威处理器的系统的I/O扩展问题和处理器上电启动问题。下面将描述本发明的具体实施例,以使得本领域技术人员可以清楚本发明的具体实现方式。图2是本发明I/O扩展架构方法的一种实施方式示意图。参照图2所示,根据本发明一种实施方式的基于标准PCIe上行端口的IO扩展架构包括:申威处理器101、主存102、PCIe开关103、PCIe桥104、PCI桥105、维护模块106和BIOS芯片107。其中,申威处理器101直接挂接主存102以集成存控,并且与PCIe开关103相连以集成标准PCIe接口 ;此外,申威处理器101还可具备低速串口(带外),以便与维护模块106相连;PCIe开关103的上行端口与申威处理器的PCIe接口相连,PCIe开关103可扩展出多个PCIe端口,用于连接PCIe扩展槽或者PCIe设备,每个设备需占用一个PCIe端口 ;PCIe桥104的上行端口与PCIe开关103相连,可扩展出标准PCI总线,一条PCI总线上挂接PCI扩展槽、PCI设备等多个负载;PCI桥105的上行端口与PCIe桥相连,可扩展出多种传统总线(例如LPC(Low PinCount)总线,XBus (extended Bus)总线),用于挂接传统设备,传统设备具有相对小的地址空间,且这些空间的基地址选择范围很小。维护模块106的一端与申威处理器的串口(带外)相连,另一端作为传统设备,挂在传统总线上,可以与申威处理器进行带内通信。维护模块外挂FlashROM芯片。FlashROM芯片107用于存放申威处理器的初始配置和初始启动代码,还可以存放UEFI BIOS等信息,实现这些信息的非易失存储。图3是本发明1/0扩展架构方法的一种实施例的示意图。参照图3所示,在本发明1/0扩展架构方法的一个实施例中,1/0扩展架构包括:第二代申威处理器(申威-2处理器)20UDDR3主存202、8PortPCIe开关203、PCIe-to_PCI桥 204、PC1-to-LPC 桥 205、维护模块 206、FlashROM 芯片 207。其中,申威-2处理器201集成DDR3存控,直接挂接DDR3主存202 ;集成标准PCIeGen2X8接口,与8-Port PCIe Gen2开关203相连;而且申威-2处理器201具备低速串口(带外),与维护模块相连;8-Port PCIe Gen2开关203的上行端口与申威处理器的PCIe Gen2X8接口相连,PCIe开关可扩展出7个PCIe端口,用于连接PCIe扩展槽或者PCIe设备,每个设备需占用一个 PCIe 端 口(包括 PCIe-to-PCI 桥 204);PCIe-to-PCI桥204的上行端口与8-Port PCIe Gen2开关203相连,扩展出标准32-bit PCI总线,一条PCI总线上最多可挂接4个以上负载,连接PCI扩展槽或者PCI设备(包括 PC1-to-LPC 桥 205);PC1-to-LPC桥205的上行端口与PCI总线相连,扩展出LPC总线,用于挂接SIO(Super I/0)、EC (Embedded Controller)等传统设备。Min1-BMC+维护模块206将轻量级的BMC和维护模块两个传统设备集成在一起,一方面与申威-2处理器的串口(带外)相连;另一方面作为传统设备,挂在LPC总线上,可以与申威处理器进行带内通信。维护模块外挂FlashROM芯片207。FlashROM芯片207,通过SPI接口与Min1-BMC+维护模块206相连,用于存放min1-BMC的固件,存放申威处理器的初始配置和初始启动代码、BIOS等信息,实现这些信息的非易失存储。图4是本发明1/0扩展架构方法的另一种实施例示意图。参照图4所示,本发明1/0扩展架构方法的另一个实施例中,1/0扩展架构包括第二代申威处理器(申威-2处理器)301,DDR3主存302,6PortPCIe开关303,PCIe-to-PCI桥304,PCIe 复合设备 305,PC1-to-LPC 桥 306,min1-BMC+ 维护模块 307,FlashROM 芯片 308,其中,申威-2处理器301,集成DDR3存控,直接挂接DDR3主存302 ;集成标准PCIeGen2X8接口,与6-Port PCIe Gen2开关303相连;具备低速串口(带外),与min1-BMC+维护模块相连;6-Port PCIe Gen2开关303,上行端口与申威处理器的PCIe Gen2X8接口相连,PCIe开关可扩展出5个PCIe端口,用于连接PCIe扩展槽或者PCIe设备,每个设备需占用一个 PCIe 端口 ;PCIe-to-PCI桥304,上行端口与6-Port PCIe Gen2开关303相连,扩展出标准32-bit PCI总线,一条PCI总线上最多可挂接4个以上负载,连接PCI扩展槽或者PCI设备;PCIe符合设备305,内部集成多个PCIe设备,上行端口与6-Port PCIeGen2开关303相连,扩展出32-bit局部总线,挂接min1-BMC+维护模块307 ;PC1-to-LPC桥306,上行端口与PCI总线相连,扩展出LPC总线,用于挂接SIO(Super 1/0)、EC (Embedded Controller)、TPM 等传统设备。Min1-BMC+维护模块307将min1-BMC和维护模块两个传统设备集成在一起,一方面与申威-2处理器的串口(带外)相连;另一方面挂在局部总线上,可以与申威处理器进行带内通信。Min1-BMC+维护模块外挂FlashROM芯片308,两个传统设备共享FlashROM芯片308。FlashROM芯片308通过SPI接口与Min1-BMC+维护模块307相连,用于存放min1-BMC的固件,存放申威处理器的初始配置和初始启动代码、BIOS等信息,实现这些信息的非易失存储。图5是本发明系统启动方法一种实施方式不意图。
参照图5所示,本发明系统启动方法一种实施方式包括:min1-BMC自检401,系统配置保存402,初始配置申威处理器403,申威处理器初始化404,BIOS通路构建405,取BIOS并执行406。下面将具体描述各个步骤。min1-BMC自检401:上电后(包括待机电源)最先执行,包括min1-BMC自身运行环境的自检,以及系统配置的检测,在系统具备开工条件的情况下,执行下一步骤,系统配置保存402 ;系统配置保存402:min1-BMC将系统开工需要的一些信息,保存在Flash ROM中,之后让维护模块根据这些信息执行下一不步,初始配置申威处理器403 ;初始配置申威处理器403:在申威处理器处于复位状态下,配置好各类时钟发生器(如PLL)的参数,处理器的工作模式,甚至包括处理器内部的指令Cache,一些配置、控制寄存器,之后让申威处理器执行下一步骤,申威处理器初始化404 ;申威处理器初始化404:在申威处理器退出复位状态后,开始执行指令Cache中的代码;初始化内部寄存器和数据Cache ;对存控进行训练,以确定存控最终的配置参数;初始化主存,初始化PCIe接口 ;之后执行BIOS通路构建405 ;BIOS通路构建405:按照深度优先算法,进行PCIe/PCI设备的枚举,将传统1/0空间分配给首个下一级总线,传统设备是该算法找到的PCI总线树状组织结构中的首个末端设备;之后执行取BIOS并执行406 ;取BIOS并执行406:申威处理器通过操作两个传统1/0空间的寄存器来获取FlashROM中的BIOS和一些配置信息,将BIOS放入特定主存区域,并用配置信息构建BIOS运行所需要的一些表格;之后执行B10S,完成系统的启动。参照图6所示,本发明系统唤醒方法的一种实施方式包括:深度睡眠状态501,唤醒事件502,维护中断503,推出睡眠504,恢复运行现场505,正常运行状态506。下面将具体描述各个步骤。深度睡眠状态501:在此状态下,申威处理器核心(Core)处于复位状态,其PCIe接口也停止工作,链路断开,只有低速的带外接口仍在工作;唤醒事件502:在深度睡眠状态下,发生的PME (平台管理事件)等中断,首先传递给维护模块,维护模块根据配置(唤醒中断屏蔽码),确定哪些中断可以唤醒处理器;维护中断503:当维护模块确定要唤醒处理器后,通过串口向处理器发特殊的请求-维护中断请求;推出睡眠504:当申威处理器收到维护中断请求后,PLL开始提升核心工作频率,之后核心推出复位状态,开始执行指令;恢复现场505:申威处理器首先判断维护中断的目的是否为了唤醒,然后执行一系列恢复现场的操作,恢复睡眠前进程的执行环境,处理引发唤醒的中断事件,之后处理器进入正常运行状态506。此外,需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
权利要求
1.一种用于申威处理器的基于标准PCIe上行端口的IO扩展架构方法,其特征在于包括: 进行分层多级总线扩展,其中多级总线的根在于申威处理器的标准PCIe接口,处理器提供带外的串口,按照总线带宽的高低确定总线离处理器的远近,将BIOS芯片挂在最远的地方; 执行申威处理器硬件的初始配置、并初始执行代码,通过带外串口注入到申威处理器的内部寄存器和指令高速缓存中,完成处理器的启动配置,使处理器执行启动代码; 通过申威处理器的初始执行代码完成存控的训练和主存的初始化,并通过一次PCI设备深度优先的枚举操作,完成申威处理器到BIOS访问通路的构建。
2.根据权利要求1所述的基于标准PCIe上行端口的IO扩展架构方法,其特征在于还包括:将传统设备挂接在离处理器最远的总线上,通过各级总线仲裁优先级的配置。
3.根据权利要求1或2所述的基于标准PCIe上行端口的IO扩展架构方法,其特征在于,初始执行代码内含PCI设备枚举功能,用于将传统I/o空间分配给首个下一级总线。
4.根据权利要求1或2所述的基于标准PCIe上行端口的IO扩展架构方法,其特征在于,带外串口采用同步的物理层,且时钟和数据的相位关系在系统端可配,链路层以包的形式传输,请求和响应之间没有严格的时序要求。
5.根据权利要求4所述的基于标准PCIe上行端口的IO扩展架构方法,其特征在于,链路层的包的传输是连续,不可暂停,以特定的命令码和响应码标识包的开始和长度。
6.根据权利要求1或2所述的基于标准PCIe上行端口的IO扩展架构方法,其特征在于还包括:使中断使用一个特定的命令码和包格式,以包的方式传递给处理器。
7.根据权利要求1或2所述的基于标准PCIe上行端口的IO扩展架构方法,其特征在于还包括:增强或弱化其中的某级总线挂接设备的能力。
全文摘要
本发明提供了一种基于标准PCIe上行端口的IO扩展架构方法。使用标准PCIe上行端口的分层多级总线扩展,第一级为PCIe总线,第二级为PCI总线,第三级为传统总线,其中BIOS挂在传统总线下;通过带外的同步串行通路注入申威处理器所需的初始配置和初始执行代码,初始执行代码只需一次深度优先的枚举,就完成了传统设备的访问通路构建,使得申威处理器可以快速获取BIOS内容;通过带外的同步串行通路,可向CPU发出不可屏蔽中断,用于睡眠状态下的唤醒等目的。
文档编号G06F13/20GK103176930SQ201310113269
公开日2013年6月26日 申请日期2013年4月2日 优先权日2013年4月2日
发明者吴新军, 丁琳, 韩娇, 罗茂盛, 卢姝颖, 吴志勇, 欧阳伟 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1