《工程科学学报》录用稿,htps:/doi.org/10.13374/i,issn2095-9389.2021.10.08.003©北京科技大学2020 工程科学学报DO: 龙芯处理器服务器芯片组的适配与实现 郑臣明),姚宣霞区,周芳),郑雪峰),杨晓君),戴荣) 1)北京科技大学计算机与通信工程学院,北京1000832)海光倍息技术股份有限公司,北京1001933)中科曙光信息产业成都有限公司, 四川610213 ☒通信作者,E-mail:yaoxuanxia@ustb.edu.cn 摘要针对龙芯CPU无对应高性能服务器芯片组的现状,设计开发了一种为龙芯P火筛选芯片组的架构,并实现 了一种龙芯CPU和芯片组适配的方法。提出了采用现场可编程门阵列(FPGA)串联在龙芯CPU和即将适配的多组 芯片组之间的架构。借助于此架构,设计实现了在CPU和芯片组之间那些暂时不知何处理的物理信号线的连接方 法,设计了两者之间上下电时序配合的调试方法,设计实现了规避两者信号协仪鉴导的方法。借助这种架构和这些 方法能够实现同时筛选多款芯片组的目的,避免了以前需要设计多款主板进行适配的情况,节省了重复研发主板的 成本:找到了可以适配龙芯CPU的高性能服务器芯片组:其芯片组规格参数和性能高于目前龙芯CPU所用的芯片 组,开拓了其在服务器领域的应用。 关键词龙芯:芯片组:适配:服务器:现场可编程门阵列 分类号TP302.1 Adaption and implementation of server chipsets for loongson CPU ZHENG Chen-ming,YAO Xuan ZHOU Fang,ZHENG Xue-feng YANG Xiao-ju,DAI Rong 1)School of Computer Communication Eng niversity of Science&Technology Beijing,Beijing 100083,China 2) Haiguang Information Technology ng.100193.China 3) Dawning Information Industry uan,610213,China Corresponding author, ia@ustb.edu.cn ABSTRACT CPl is the core part among all of integrated circuits.Although some homemade CPUs of proprietary intellectual property rights are rapidly developed,there are few high performance chipsets,especially in server domain,to match them.Thus total systems designed by means of those CPUs and low performance chipsets don't release proper performance.Loongson CPU faces the same problem.In seek of better chipsets,a certain architecture and some methods are designed and implemented to adapt some different types of chipsets for it.In this architecture,the field programmable gate array(FPGA)is linked between CPU and these chipsets.FPGA is divided into three domains,which are HT(Hyper Transport) bus domain,processing domain for important but temporarily indeterminate signals,CPLD(Complex Programmable Logic Device)function domain.In these processes of adaption,HT bus signals,the temporarily indeterminate signals and power signals in both CPU and chipsets are respectively linked into three domains in FPGA and treated by programming FPGA to 收毫日期2021-10-08 签项自:国家重大科技专项“核心电子器件、高端通用芯片及基础软件产品”资助项目(2017ZX01028-102)
工程科学学报 DOI: 龙芯处理器服务器芯片组的适配与实现1 郑臣明 1),姚宣霞 1),周 芳 1),郑雪峰 1),杨晓君 2),戴荣 3) 1)北京科技大学计算机与通信工程学院,北京 100083 2)海光信息技术股份有限公司,北京 100193 3)中科曙光信息产业成都有限公司, 四川 610213 通信作者,E-mail: yaoxuanxia@ustb.edu.cn 摘 要 针对龙芯 CPU 无对应高性能服务器芯片组的现状,设计开发了一种为龙芯 CPU 筛选芯片组的架构,并实现 了一种龙芯 CPU 和芯片组适配的方法。提出了采用现场可编程门阵列(FPGA)串联在龙芯 CPU 和即将适配的多组 芯片组之间的架构。借助于此架构,设计实现了在 CPU 和芯片组之间那些暂时不知如何处理的物理信号线的连接方 法,设计了两者之间上下电时序配合的调试方法,设计实现了规避两者信号协议差异的方法。借助这种架构和这些 方法能够实现同时筛选多款芯片组的目的,避免了以前需要设计多款主板进行适配的情况,节省了重复研发主板的 成本;找到了可以适配龙芯 CPU 的高性能服务器芯片组;其芯片组规格参数和性能高于目前龙芯 CPU 所用的芯片 组,开拓了其在服务器领域的应用。 关键词 龙芯;芯片组;适配;服务器;现场可编程门阵列 分类号 TP302.1 Adaption and implementation of server chipsets for loongson CPU ZHENG Chen-ming 1) , YAO Xuan-xia 1) , ZHOU Fang1) , ZHENG Xue-feng1) , YANG Xiao-jun2) , DAI Rong3) 1) School of Computer & Communication Engineering, University of Science & Technology Beijing, Beijing 100083, China 2) Haiguang Information Technology Co., Ltd., Beijing, 100193, China 3) Dawning Information Industry Co., Ltd., Sichuan, 610213, China Corresponding author, E-mail: yaoxuanxia@ustb.edu.cn ABSTRACT CPU is the core part among all of integrated circuits. Although some homemade CPUs of proprietary intellectual property rights are rapidly developed, there are few high performance chipsets, especially in server domain, to match them. Thus total systems designed by means of those CPUs and low performance chipsets don’t release proper performance. Loongson CPU faces the same problem. In seek of better chipsets, a certain architecture and some methods are designed and implemented to adapt some different types of chipsets for it. In this architecture, the field programmable gate array(FPGA) is linked between CPU and these chipsets. FPGA is divided into three domains, which are HT(Hyper Transport) bus domain, processing domain for important but temporarily indeterminate signals, CPLD(Complex Programmable Logic Device) function domain. In these processes of adaption, HT bus signals, the temporarily indeterminate signals and power signals in both CPU and chipsets are respectively linked into three domains in FPGA and treated by programming FPGA to 1收稿日期:2021-10-08 基金项目: 国家重大科技专项“核心电子器件、高端通用芯片及基础软件产品”资助项目(2017ZX01028-102) 《工程科学学报》录用稿,https://doi.org/10.13374/j.issn2095-9389.2021.10.08.003 ©北京科技大学 2020 录用稿件,非最终出版稿
perform all kinds of possible combination of signals.The power sequence between CPU and chipsets is coordinated to a right order by means of FPGA.Signal integrity difference between them is avoided and trimmed to right state by amending their signals in FPGA.In this system,the experimental results show that this architecture and these methods simultaneously make more chipsets work together to be adapted than before in a single motherboard.And that avoids researching and developing many different motherboards for every kind of possible chipsets,and saves a lot of money.A high performance server chipsets can be found to properly match loongson CPU,which have better specifications and higher performance than those current ones used for loongson CPU.A prototype system of loongson CPU and five kinds of chipsets is designed and implemented.By the above architecture and methods,a kind of optimal server chipsets SR5690+SP5100 have been found and the matching principles or correct settings about signal connection and power sequence have been concluded.Loongson 3B4000 two-way SMP motherboard with SR5690+SP5100 chipsets is also produced.On this motherboard,the results of evaluation experiments on computing performance test by SPEC CPU 2006 program,storage performance test by IOzone program and network performance test by Netperf program are performed.Compared with current loongson 3B4000 server with 7A1000 chipset,the test results show the performance on three items is improved about 10% The combination of loongson CPU and this kind of server chipsets provides wider applications in server marke omotes development of loongson CPU in its ecosystem. KEY WORDS loongson;chipsets;adaption;server,field programmable gate ar 集成电路是国家信息产业发展的核心领域,而CPU(中央处理器)则是集成电路中的核心元器 件。目前国家对信息安全有着迫切的要求,如果没有CU的国产化与自主化,国家安全将无从谈起 。龙芯CPU、飞腾CPU、申威CPU是目前被国家认可的:应用领域比较广的三款自主可控CPUB 习。“龙芯”处理器是龙芯中科技术有限公司自主研发的通用CPU。“飞腾”处理器是飞腾信息技术 有限公司开发的飞腾系列高性能通用CPU。“申威处理器由国家高性能集成电路(上海)设计中 心自主研发,具体由江南计算所研制实施。述处理器都得到了国家“863”、国家科技重大专项“核 高基”(核心电子器件、高端通用芯片及基础软件产品)等项目的支持,在党政、关键基础设施、 高性能计算等领域已得到了大量的应用,从应用的结果来看,飞腾、申威9o、龙芯性能表现不 错,可以胜任目前绝大部分应用。 这三款CPU虽然性能不错,为以申威CU研发的神威太湖之光超级计算机在2O21年中国 HPC TOP100排行榜中位列第2,但存在一个较大的短板,即缺乏与其配套的高性能芯片组, 特别是在服务器领域,虽有强大的大脑,但无强壮的躯干和四肢,严重地限制了CPU高性能的发 挥、应用领域的拓展和产④化进程。在服务器产品上,飞腾和申威CPU采用PLX公司的 PCIE(Peripheral Component Interconnect Express)交换芯片作为北桥,例如飞腾的腾云S2500CpU 推荐的参考设计采用8764,申威的1621CPU推荐的参考设计采用PEX8748,利用这些PCIE 交换芯片转换,出更多的PCIE总线,再外接具有PCIE接口的SAS(Serial Attached SCSI)/SATA (Serial Advanced Technology Attachment)控制器(例如Marvell公司的88SE9215)生成 硬盘接口;再外接具有PCE接口的显卡芯片产生显示器接口等。此种芯片组的方案是迫不得已的拼 凑方案,缺点是为了得到所需要的IO(Input Output)接口级联了较多不同厂家的芯片,稳定性和 兼容性很差,信号延迟增大,性能变差。 与龙芯CPU相配套的芯片组,最初有PCI(Peripheral Component Interconnect)接口桥片方案 [,但PCI总线速度太低,己逐渐被淘汰,然后有龙芯2H方案,但龙芯2H桥片性能太弱,只有 4对PCIE信号线和2个SATA接口,而且龙芯2H其实是一款嵌入式CPU,在龙芯CPU无桥片可用 的情况下把它作为桥片是不得已而为之。在2017年底,龙芯中利技术有限公司又推出了龙芯 7Al000桥片作为龙芯处理器的配套芯片组。龙芯7Al000桥片通过HT(Hyper Transport)总线接 口与龙芯CPU相连,接口包括32个PCIE2.0通道、3个SATA2.0通道、6个USB(Universal Serial
perform all kinds of possible combination of signals. The power sequence between CPU and chipsets is coordinated to a right order by means of FPGA. Signal integrity difference between them is avoided and trimmed to right state by amending their signals in FPGA. In this system, the experimental results show that this architecture and these methods simultaneously make more chipsets work together to be adapted than before in a single motherboard. And that avoids researching and developing many different motherboards for every kind of possible chipsets, and saves a lot of money. A high performance server chipsets can be found to properly match loongson CPU, which have better specifications and higher performance than those current ones used for loongson CPU. A prototype system of loongson CPU and five kinds of chipsets is designed and implemented. By the above architecture and methods, a kind of optimal server chipsets SR5690 + SP5100 have been found and the matching principles or correct settings about signal connection and power sequence have been concluded. Loongson 3B4000 two-way SMP motherboard with SR5690 + SP5100 chipsets is also produced. On this motherboard, the results of evaluation experiments on computing performance test by SPEC CPU 2006 program, storage performance test by IOzone program and network performance test by Netperf program are performed. Compared with current loongson 3B4000 server with 7A1000 chipset, the test results show the performance on three items is improved about 10%. The combination of loongson CPU and this kind of server chipsets provides wider applications in server market, and promotes development of loongson CPU in its ecosystem. KEY WORDS loongson; chipsets; adaption; server; field programmable gate array 集成电路是国家信息产业发展的核心领域,而 CPU(中央处理器)则是集成电路中的核心元器 件。目前国家对信息安全有着迫切的要求,如果没有 CPU 的国产化与自主化,国家安全将无从谈起 [1-2]。龙芯 CPU、飞腾 CPU、申威 CPU 是目前被国家认可的、应用领域比较广的三款自主可控 CPU[3- 5]。“龙芯”处理器是龙芯中科技术有限公司自主研发的通用 CPU。“飞腾”处理器是飞腾信息技术 有限公司开发的飞腾系列高性能通用 CPU。“申威”处理器由国家高性能集成电路(上海)设计中 心自主研发,具体由江南计算所研制实施。上述处理器都得到了国家“863”、国家科技重大专项“核 高基”(核心电子器件、高端通用芯片及基础软件产品)等项目[6]的支持,在党政、关键基础设施、 高性能计算等领域已得到了大量的应用,从应用的结果来看,飞腾[7-8]、申威[9-10]、龙芯[11]性能表现不 错,可以胜任目前绝大部分应用[12]。 这三款 CPU 虽然性能不错,如以申威 CPU 研发的神威·太湖之光超级计算机在 2021 年中国 HPC TOP100 排行榜中位列第 2 名[13],但存在一个较大的短板,即缺乏与其配套的高性能芯片组, 特别是在服务器领域,虽有强大的大脑,但无强壮的躯干和四肢,严重地限制了 CPU 高性能的发 挥、应用领域的拓展和产业化进程。在服务器产品上,飞腾和申威 CPU 采用 PLX 公司的 PCIE(Peripheral Component Interconnect Express)交换芯片作为北桥,例如飞腾的腾云 S2500 CPU 推荐的参考设计采用 PEX8764,申威的 1621 CPU 推荐的参考设计采用 PEX8748,利用这些 PCIE 交 换 芯 片 转 换 出 更 多 的 PCIE 总 线 , 再 外 接 具 有 PCIE 接 口 的 SAS ( Serial Attached SCSI)/SATA(Serial Advanced Technology Attachment)控制器(例如 Marvell 公司的 88SE9215)生成 硬盘接口;再外接具有 PCIE 接口的显卡芯片产生显示器接口等。此种芯片组的方案是迫不得已的拼 凑方案,缺点是为了得到所需要的 IO(Input Output)接口级联了较多不同厂家的芯片,稳定性和 兼容性很差,信号延迟增大,性能变差。 与龙芯 CPU 相配套的芯片组,最初有 PCI (Peripheral Component Interconnect)接口桥片方案 [14],但 PCI 总线速度太低,已逐渐被淘汰,然后有龙芯 2H 方案[15],但龙芯 2H 桥片性能太弱,只有 4 对 PCIE 信号线和 2 个 SATA 接口,而且龙芯 2H 其实是一款嵌入式 CPU,在龙芯 CPU 无桥片可用 的情况下把它作为桥片是不得已而为之。在 2017 年底,龙芯中科技术有限公司又推出了龙芯 7A1000 桥片[16]作为龙芯处理器的配套芯片组。龙芯 7A1000 桥片通过 HT(Hyper Transport)总线接 口与龙芯 CPU 相连,接口包括 32 个 PCIE2.0 通道、3 个 SATA2.0 通道、6 个 USB(Universal Serial 录用稿件,非最终出版稿
Bus)2.0接口,可以满足桌面领域对IO接口的应用需求。但龙芯7A1000桥片在IO数量、 RAS(Reliability可靠性、Availability可用性、Serviceability可维护性)和IOMMU(Input/Output Memory Management Unit,.输入输出内存管理单元)等方面的不足是难以满足服务器芯片组的苛刻 要求。 本文针对龙芯CPU的特点,基于目前市场上现有的芯片组,筛选适配出一套高性能的芯片组 来满足龙芯CPU在服务器级别上应用。由于所要筛选的芯片组不是专为龙芯CPU设计的,所以在 龙芯CPU和芯片组适配嫁接过程中,需要解决在物理信号定义、上下电时序、信号协议、 BIOS(Basic Input Output System)层等方面的差异。本文为此设计了一套筛选芯片组的架构,提供 CU和芯片组两者之间在物理信号连接、上下电时序、规避信号协议差异方面的设计方法,能够增 加调试的灵活性和信号裕度,能够简单、反复地调整参数和设计,能够求证芯片组的可用性和兼容 性,能够为龙芯CPU很便捷地找到服务器级别的芯片组。 本文的主要贡献如下: 1)基于目前市场上现有的芯片组,提出了一种为龙芯CPU筛选适配 构, 此架构同 样适用于其他缺少配套芯片组的国产CPU。 2)提出了一种CPU和芯片组两者之间在物理信号连接、规避信号莎议差异方面的设计方法,为 在适配过程中暂时不知如何处理的物理信号找到正确的连接方法或者处理方式。 3)提供了一种灵活调试主板上下电时序的方法,在不修改硬件的条件下,可以随意调整CPU、 芯片组、电源之间的时序,直到找到正确的上下电时序为北 节省了头量研发时间和成本。 4)为龙芯CPU找到了一组高性能的服务器级别的芯片阻,改变了一直采用低性能、嵌入式/桌 面级芯片组充当服务器芯片组的局面,更好地发挥龙芯性能,拓宽龙芯CPU的应用领域,进 一步促进龙芯CPU生态环境的发展。 1 龙芯CPU和芯片组适配的架构设计 CPU和芯片组适配的常规方法1是做一块主板把两者直接连接起来进行调试,但这种调试方 法存在明显的缺点。在适配不成功时很难判断是由于芯片组和CPU两者之间的不兼容引起的,或者 本来两者兼容只是没有正确连接处理引起的,还是由于CPU或芯片组的缺陷引起的,原因不容易 定位。即使原因定位了,由于主板不能修改,特别是由CPU或芯片组的设计缺陷造成的,在不可更 改硬件的情况下不得不重新设计主极修改CPU或者芯片组的设计,浪费了大量时间和成本。 在芯片研发设计中,为了降低研发风险,缩短研发周期,避免多次流片产生的高额成本,通常 都会在芯片流片加工之前进行痂分的仿真模拟。目前常用的仿真模拟方法有三种,基于软件仿真模 拟验证的传统方法,基予硬代彷真加速器的仿真模拟验证方法o,基于FPGA的原型验证方法 四。基于软件仿真模拟验证的传统方法,灵活性强,使用简单,但随着逻辑单元规模的增大模拟验 证速度下降明显,<般只能达到几十赫兹Hz),与现在达到上吉赫兹(GH2)系统相差甚远,并且软 件模拟仿真与真实的物理环境有差距,存在许多难于发现的问题。基于硬件仿真加速器的仿真模拟 验证方法,运行速度能达到几兆赫兹(MHz),其运行速度比基于软件仿真模拟验证的传统方法提升 了上千倍,但仍然达不到上吉赫兹的要求,并且此方法专用性强,维护成本高2-2。基于FPGA的 原型验证方法相对手其他两种方法,FPGA的运行速度可以达到百兆级别,而且逻辑资源、IO资源 比较丰富,而且能够更加真实地模拟真实芯片的行为,一旦系统模拟成功,可以采用硬件拷贝 (Hardcopy)方式直接快速地固化为ASIC(Application Specific Integrated Circuit)芯片。FPGA具有非常 灵活的在线编程特点s2,在不改变硬件的情况下能够反复地修改代码改变硬件行为72,能模拟 出目前常见的IO接口和复杂的总线9训、能灵活地变换不同时钟频率、能调节改变信号的电平,并 内含在线逻辑分析仪功能。本文利用FPGA这些优势,在龙芯处理器和芯片组之间串联一颗 FPGA芯片,每组芯片组通过FPGA芯片后再和龙芯处理器相连,如图1所示,这样可以在一块主 板上实现多组芯片组和龙芯处理器的适配,既增加了适配成功的几率又节省了成本。 基于FPGA的原型验证方法,传统的使用方法是只模拟验证单一架构/单一功能,如果模拟多 架构/多功能需要使用多块FPGA互联来实现。本文对其进行了改进,在FPGA内部模拟划分了三个 不同的功能模块利用一块FPGA芯片来实现,并且通过设计带宽匹配模块(Bandwidth matching module)实现不同频率、不同带宽总线的自协商、自适应,内嵌逻辑分析仪(Logic analyzer)可以做到实 时调试分析,加快研发调试进度
Bus)2.0 接口,可以满足桌面领域对 IO 接口的应用需求。但龙芯 7A1000 桥片在 IO 数量 、 RAS(Reliability 可靠性、Availability 可用性、Serviceability 可维护性)和 IOMMU(Input/Output Memory Management Unit, 输入输出内存管理单元)等方面的不足是难以满足服务器芯片组的苛刻 要求。 本文针对龙芯 CPU 的特点,基于目前市场上现有的芯片组,筛选适配出一套高性能的芯片组 来满足龙芯 CPU 在服务器级别上应用。由于所要筛选的芯片组不是专为龙芯 CPU 设计的,所以在 龙芯 CPU 和芯片组适配嫁接过程中,需要解决在物理信号定义、上下电时序、信号协议 、 BIOS(Basic Input Output System)层等方面的差异。本文为此设计了一套筛选芯片组的架构,提供 CPU 和芯片组两者之间在物理信号连接、上下电时序、规避信号协议差异方面的设计方法,能够增 加调试的灵活性和信号裕度,能够简单、反复地调整参数和设计,能够求证芯片组的可用性和兼容 性,能够为龙芯 CPU 很便捷地找到服务器级别的芯片组。 本文的主要贡献如下: 1) 基于目前市场上现有的芯片组,提出了一种为龙芯 CPU 筛选适配芯片组的架构,此架构同 样适用于其他缺少配套芯片组的国产 CPU。 2) 提出了一种 CPU 和芯片组两者之间在物理信号连接、规避信号协议差异方面的设计方法,为 在适配过程中暂时不知如何处理的物理信号找到正确的连接方法或者处理方式。 3) 提供了一种灵活调试主板上下电时序的方法,在不修改硬件的条件下,可以随意调整 CPU、 芯片组、电源之间的时序,直到找到正确的上下电时序为止,节省了大量研发时间和成本。 4) 为龙芯 CPU 找到了一组高性能的服务器级别的芯片组,改变了一直采用低性能、嵌入式/桌 面级芯片组充当服务器芯片组的局面,更好地发挥龙芯 CPU 性能,拓宽龙芯 CPU 的应用领域,进 一步促进龙芯 CPU 生态环境的发展。 1 龙芯 CPU 和芯片组适配的架构设计 CPU 和芯片组适配的常规方法[17-18]是做一块主板把两者直接连接起来进行调试,但这种调试方 法存在明显的缺点。在适配不成功时很难判断是由于芯片组和 CPU 两者之间的不兼容引起的,或者 本来两者兼容只是没有正确连接处理引起的,还是由于 CPU 或芯片组的缺陷引起的,原因不容易 定位。即使原因定位了,由于主板不能修改,特别是由 CPU 或芯片组的设计缺陷造成的,在不可更 改硬件的情况下不得不重新设计主板、修改 CPU 或者芯片组的设计,浪费了大量时间和成本。 在芯片研发设计中,为了降低研发风险,缩短研发周期,避免多次流片产生的高额成本,通常 都会在芯片流片加工之前进行充分的仿真模拟。目前常用的仿真模拟方法有三种,基于软件仿真模 拟验证的传统方法[19],基于硬件仿真加速器的仿真模拟验证方法[20],基于 FPGA 的原型验证方法 [21]。基于软件仿真模拟验证的传统方法,灵活性强,使用简单,但随着逻辑单元规模的增大模拟验 证速度下降明显,一般只能达到几十赫兹(Hz),与现在达到上吉赫兹(GHz)系统相差甚远,并且软 件模拟仿真与真实的物理环境有差距,存在许多难于发现的问题。基于硬件仿真加速器的仿真模拟 验证方法,运行速度能达到几兆赫兹(MHz),其运行速度比基于软件仿真模拟验证的传统方法提升 了上千倍,但仍然达不到上吉赫兹的要求,并且此方法专用性强,维护成本高[22-24]。基于 FPGA 的 原型验证方法相对于其他两种方法,FPGA 的运行速度可以达到百兆级别,而且逻辑资源、IO 资源 比较丰富,而且能够更加真实地模拟真实芯片的行为,一旦系统模拟成功,可以采用硬件拷贝 (Hardcopy)方式直接快速地固化为 ASIC(Application Specific Integrated Circuit)芯片。FPGA 具有非常 灵活的在线编程特点[25-26],在不改变硬件的情况下能够反复地修改代码改变硬件行为[27-28],能模拟 出目前常见的 IO 接口和复杂的总线[29-31]、能灵活地变换不同时钟频率、能调节改变信号的电平,并 内含在线逻辑分析仪功能[32]。本文利用 FPGA 这些优势,在龙芯处理器和芯片组之间串联一颗 FPGA 芯片,每组芯片组通过 FPGA 芯片后再和龙芯处理器相连,如图 1 所示,这样可以在一块主 板上实现多组芯片组和龙芯处理器的适配,既增加了适配成功的几率又节省了成本。 基于 FPGA 的原型验证方法,传统的使用方法是只模拟验证单一架构/单一功能,如果模拟多 架构/多功能需要使用多块 FPGA 互联来实现。本文对其进行了改进,在 FPGA 内部模拟划分了三个 不同的功能模块利用一块 FPGA 芯片来实现,并且通过设计带宽匹配模块(Bandwidth matching module)实现不同频率、不同带宽总线的自协商、自适应,内嵌逻辑分析仪(Logic analyzer)可以做到实 时调试分析,加快研发调试进度。 录用稿件,非最终出版稿
Loongson CPU Power HT signals signals FPGA impoctant but HT important but temporarily temporanly inde term inate indeterminate sionals signals Northbridge 2 个 signals Southbridge Southbridge 2 图1龙芯CPU和芯片组之间的适配架构 版稿 Fig.1 Architecture of adaptation between loongson CPU and chipsets FPGA内部分为三个功能域:HT总线训处理域、重要暂不确定控制信号线处理域和CPLD功 能域,如图2所示 HT总线处理域用于处理龙芯CPU和芯片组之间HT总线的适配。通过采用第三方或者按照HT 总线协议自行编写HT总线的P核,在PGA上实例化HT总线接口,用来分别连接龙芯CPU和芯 片组的HT总线。由于FPGA的运行速度一般在几百桃赫兹而HT总线频率可达上吉赫兹,所以在 FPGA内设计协议转化模块(Protocol converting modul©把HT总线的高速串行信号线转化为较为低 速的并行内部总线,然后连接到交叉开关总线(Crossbar bus)上。交叉开关总线可以通过软件控制选 择切换任意一组芯片组和龙芯CPU建立HT总线互联,实现在一块主板上能同时调试适配多款芯片 组,十分灵活。由于芯片组和龙芯CPU有可能存在HT总线差异,例如有的是HT2.0协议(最高可 达1.4GHz)或者HT3.0协议(最高可达2.6GHz),需要在FPGA内部设计一个带宽匹配模块,自 动协商解决两者之间带宽差异问题。 龙芯CU有一些独属子自己的信号线,在即将要适配的芯片组里也有一些特殊的信号线,由 于芯片组不是专门为龙芯CPU配套而设计的,在未适配成功前,有些信号是不知道如何连接或者 处理的。本文把这些信号线命名为重要暂不确定控制信号线”,都引入FPGA内部设置的“重要 暂不确定控制信号线处理域” ,借助手FPGA灵活编程的特性,可以在FPGA内部把两者的信号连 接起来,或者单独地做上拉下拉、悬空等处理。通过反复地实验和调试,总能找出“重要暂不确定 控制信号线”的处理方式给到底能否兼容的结论。 龙芯CPU和芯片组都有仓的上下电控制时序,彼此之间怎样配合也是未知的。上下电时序信 号主要包括三部分:CU下电控制信号,芯片组上下电控制信号、电源模块上下电控制信号。这 三部分信号都需要入FPGA内部设置CPLD(Complex Programmable Logic Device)功能域。在主 板设计中,常采用CP)芯片来控制整个主板的上下电时序,本文采用在FPGA内部分离出一部分 逻辑资源实现个CPLD功能域,依靠CPLD来调整三部分的上下电时序来达到CPU和芯片组协 调工作的目的。通过反复地实验和调试,找出相互配合工作的最佳时序或者给出无法兼容的结论
Loongson CPU Memory HT FPGA HT HT important but temporarily indeterminate signals Power Modules HT Northbridge 1 Southbridge 1 Power on/off signals Memory important but temporarily indeterminate signals important but temporarily indeterminate signals Northbridge 2 Power on/off signals Power on/off signals Power on/off signals Southbridge 2 图 1 龙芯 CPU 和芯片组之间的适配架构 Fig.1 Architecture of adaptation between loongson CPU and chipsets FPGA 内部分为三个功能域:HT 总线[33-34]处理域、重要暂不确定控制信号线处理域和 CPLD 功 能域,如图 2 所示。 HT 总线处理域用于处理龙芯 CPU 和芯片组之间 HT 总线的适配。通过采用第三方或者按照 HT 总线协议自行编写 HT 总线的 IP 核,在 FPGA 上实例化 HT 总线接口,用来分别连接龙芯 CPU 和芯 片组的 HT 总线。由于 FPGA 的运行速度一般在几百兆赫兹,而 HT 总线频率可达上吉赫兹,所以在 FPGA 内设计协议转化模块(Protocol converting module)把 HT 总线的高速串行信号线转化为较为低 速的并行内部总线,然后连接到交叉开关总线(Crossbar bus)上。交叉开关总线可以通过软件控制选 择切换任意一组芯片组和龙芯 CPU 建立 HT 总线互联,实现在一块主板上能同时调试适配多款芯片 组,十分灵活。由于芯片组和龙芯 CPU 有可能存在 HT 总线差异,例如有的是 HT2.0 协议(最高可 达 1.4 GHz)或者 HT3.0 协议(最高可达 2.6 GHz),需要在 FPGA 内部设计一个带宽匹配模块,自 动协商解决两者之间带宽差异问题。 龙芯 CPU 有一些独属于自己的信号线,在即将要适配的芯片组里也有一些特殊的信号线,由 于芯片组不是专门为龙芯 CPU 配套而设计的,在未适配成功前,有些信号是不知道如何连接或者 处理的。本文把这些信号线命名为“重要暂不确定控制信号线”,都引入 FPGA 内部设置的“重要 暂不确定控制信号线处理域”,借助于 FPGA 灵活编程的特性,可以在 FPGA 内部把两者的信号连 接起来,或者单独地做上拉、下拉、悬空等处理。通过反复地实验和调试,总能找出“重要暂不确定 控制信号线”的处理方式,给出到底能否兼容的结论。 龙芯 CPU 和芯片组都有自己的上下电控制时序,彼此之间怎样配合也是未知的。上下电时序信 号主要包括三部分:CPU 上下电控制信号,芯片组上下电控制信号、电源模块上下电控制信号。这 三部分信号都需要引入 FPGA 内部设置 CPLD(Complex Programmable Logic Device)功能域。在主 板设计中,常采用 CPLD 芯片来控制整个主板的上下电时序,本文采用在 FPGA 内部分离出一部分 逻辑资源实现一个 CPLD 功能域,依靠 CPLD 来调整三部分的上下电时序来达到 CPU 和芯片组协 调工作的目的。通过反复地实验和调试,找出相互配合工作的最佳时序或者给出无法兼容的结论。 录用稿件,非最终出版稿
Loongson CPU Power Modules HT bus FPGA HT IP interface HT bus a 工 processing Protocol c onverting domain Bandwidth matching Processing domain module for important but CPLD function temnporanly domai Crossbar bus indeterminate signals Protoool converting Protocol converting module module 工 HT IP interface ●HT IP interface HT bus on/off sign Chipset I 图2FPGA内部总体架构图 Fig.2 The overall Architecture of FPGA 在龙芯CPU和芯片组适配的过程中,通过本架构可以实现如下功能或优点: 1)一块主板可以适配多款芯片组(同一时间只能实现一款芯片组和CPU互联),不用再为每 种芯片组单独研发一种主板,节省了研发不同主板的例间和成本。 2)通过FPGA的隔离,能有效地屏蔽CPU和心组在HT总线方面的差异,例如协议版本的 不同、信号线差异,甚至HT设计的缺陷。通过PGA补偿龙芯CPU和芯片组的HT总线差异或缺 陷,使两者无缝地连接起来,而不会因为H总线的差异使适配过程半途而废,所以此架构具有很 大的灵活性,节省了时间和成本。 3)无论龙芯CPU还是芯片组在未适配成功前,那些无法确定怎样连接或者处理的信号线通过 FPGA可以实现任意连接或处理,增加了调试的手段,当找出确定的处理方式后,可指导下一版龙 芯CPU、芯片组或者主板的改进。y 4)CPU和芯片组两者的上下渑时序配合通过FPGA编程来灵活的调节时序和时间间隔,可以 实现任意的组合尝试,增强了调试的灵活性。 2龙芯CPU和芯片组适配的实现过程 2.1芯片组的选择 根据龙芯CPU的特点,在理论上推断目前市场上有如下的芯片组可与龙芯CPU进行适配实 验: 1)矽统科SiS)公司的芯片组,北桥芯片型号SiS761GX,南桥芯片型号SiS968: 2)英伟达(NVIDIA)公司的芯片组,型号MCP68: 3)AMD公司的芯片组,北桥芯片型号M690T,南桥芯片型号SB600: 4)AMD公司的芯片组,北桥芯片型号RS780E,南桥芯片型号SB710: 5)AMD公司的芯片组,北桥芯片型号SR5690,南桥芯片型号SP5100。 龙芯CPU和即将要适配的芯片组按照图1的架构设计一块主板试验品,龙芯CPU采用子板的 方式与芯片组主板互联,试验品实物图如图3所示。主板上包含了如上五种芯片组和FPGA,并把 PCIE、USB、控制线等信号线引入到相应的连接器上。 FPGA采用Intel Stratix10GX2800系列(简称GX2800),具体型号为 1SG280HU2F50E2LG。FPGA选型主要从“可编程IO单元”和“可编程逻辑单元”两个方面考虑。 在可编程IO单元方面,龙芯CPU和五种芯片组共有6组HT总线,其中芯片组1和芯片组2的HT
Loongson CPU HT bus Power Modules HT IP interface Protocol converting module Bandwidth matching module Crossbar bus Chipset 1 Chipset N HT bus Processing domain for important but temporarily indeterminate signals CPLD function domain FPGA HT bus processing domain HT IP interface Protocol converting module Protocol converting module HT IP interface 图 2 FPGA 内部总体架构图 Fig.2 The overall Architecture of FPGA 在龙芯 CPU 和芯片组适配的过程中,通过本架构可以实现如下功能或优点: 1)一块主板可以适配多款芯片组(同一时间只能实现一款芯片组和 CPU 互联),不用再为每 种芯片组单独研发一种主板,节省了研发不同主板的时间和成本。 2)通过 FPGA 的隔离,能有效地屏蔽 CPU 和芯片组在 HT 总线方面的差异,例如协议版本的 不同、信号线差异,甚至 HT 设计的缺陷。通过 FPGA 补偿龙芯 CPU 和芯片组的 HT 总线差异或缺 陷,使两者无缝地连接起来,而不会因为 HT 总线的差异使适配过程半途而废,所以此架构具有很 大的灵活性,节省了时间和成本。 3)无论龙芯 CPU 还是芯片组在未适配成功前,那些无法确定怎样连接或者处理的信号线通过 FPGA 可以实现任意连接或处理,增加了调试的手段,当找出确定的处理方式后,可指导下一版龙 芯 CPU、芯片组或者主板的改进。 4)CPU 和芯片组两者的上下电时序配合通过 FPGA 编程来灵活的调节时序和时间间隔,可以 实现任意的组合尝试,增强了调试的灵活性。 2 龙芯 CPU 和芯片组适配的实现过程 2.1 芯片组的选择 根据龙芯 CPU 的特点,在理论上推断目前市场上有如下的芯片组可与龙芯 CPU 进行适配实 验: 1)矽统科技(SiS)公司的芯片组,北桥芯片型号 SiS761GX,南桥芯片型号 SiS968; 2)英伟达(NVIDIA)公司的芯片组,型号 MCP68; 3)AMD 公司的芯片组,北桥芯片型号 M690T,南桥芯片型号 SB600; 4)AMD 公司的芯片组,北桥芯片型号 RS780E,南桥芯片型号 SB710; 5)AMD 公司的芯片组,北桥芯片型号 SR5690,南桥芯片型号 SP5100。 龙芯 CPU 和即将要适配的芯片组按照图 1 的架构设计一块主板试验品,龙芯 CPU 采用子板的 方式与芯片组主板互联,试验品实物图如图 3 所示。主板上包含了如上五种芯片组和 FPGA,并把 PCIE、USB、控制线等信号线引入到相应的连接器上。 FPGA 采用 Intel Stratix 10 GX 2800 系列(简称 GX 2800),具体型号为 1SG280HU2F50E2LG。FPGA 选型主要从“可编程 IO 单元”和“可编程逻辑单元”两个方面考虑。 在可编程 IO 单元方面,龙芯 CPU 和五种芯片组共有 6 组 HT 总线,其中芯片组 1 和芯片组 2 的 HT 录用稿件,非最终出版稿
总线速率最高为1GHz,龙芯CPU和芯片组3、芯片组4、芯片组5的HT总线速率最高为2.6GHz, 每个HT总线有20对差分信号线,所以FPGA需要提供40对可达1GHz高速串行信号线和80对可 达2.6GHz高速串行信号线。因为GX2800具有576对可达1.6GHz高速串行总线和96对可达17.4 Gbs高速串行总线,所以满足本设计要求。另外GX2800可提供1160个其他类型的IO针脚,足以 满足本设计的要求。在可编程逻辑单元方面,每种芯片组的HT总线和协议转换模块大约需要9万 个可编程逻辑单元,龙芯CPU和五种芯片组大约共需54万个;交叉开关总线和带宽匹配模块大约 需要12万个可编程逻辑单元:重要暂不确定控制信号线处理域大约需要4000个可编程逻辑单元: CPLD功能域大约需要3000个可编程逻辑单元,所以共需大约67万个可编程逻辑单元。GX2800具 有93.3万个可编程逻辑单元,本设计资源利用率大约在72%,所以完全满足本设计的资源需求。 Connector for IO signals USB、GPIO et al) Different vendors'chipsets FPGA Connector for loongson CPU's daughter board 图3包含FPGA和各种芯片组的主板 Fig.3 Motherboard sample include FPC nds of chipsets 2.2信号线的设计处理 2.2.1HT总线的设计处理 标准的HT总线协议包括三类信号线:连接信号线(数据、地址、控制和时钟)(如表1)、复位和 初始化信号线(如表2)和电源管理信号线飞如表3》。 对于连接信号线,龙芯CPU和上面所提到的芯片组(或北桥)都有16对接收差分信号线,16对 发送差分信号线:2对接收信号时钟差分对,2对发送信号时钟差分对:2对接收控制信号差分 对,2对发送控制信号差分对。两者的HT总线连接信号线都直接引入FPGA内部的HT总线域进行 处理,需要注意的是不同型号的龙芯CPU和所选择的芯片组遵循HT协议版本不同,有的是HT2.0 协议.有的是HT3.0协议,即使都支特HT3.0协议,也存在1.8GHz、2.0GHz、2.4GHz、2.6GHz四种 频率等级,所以在适配的过程中需要象用带宽匹配模块进行调整。 表1HT总线的连接信号线 Table 1 HT Bus Link Signals Signal Description CAD Command,Addresses,and Data(CAD).Carries HyperTransportTMrequests. ponses,addresses and data.CAD width can be different in each direction Differentiates control and data.Each byte of CAD has a CTL signal in Gen3 protocol.One CTL signal is used for an entire link in Genl protocol .2.0f Clocks for the CAD and CTL signals.Each byte of CAD and its respective CTL signal has a separate clock signal. 在实际的适配中,利用FPGA内部设置的交叉开关只需连接龙芯CPU和所要适配芯片组的HT 总线,而断开其它芯片组连接。HT总线调试采取频率、通道数从低到高逐步增加的步进调节方 法。HT可支持2、4、8和16位(bit)四种通道模式,HT协议的最低工作频率可低至200 MHz,HT2.0协议支持最高频率为1.4GHz,HT3.0协议支持的最高频率为2.6GHz。 HT调试流程如图4所示,在HT调试过程中,先固定工作频率,从最低的2位通道数进行调 试,如果适配成功,就依次增加通道数继续调试,即按照2位、4位、8位、16位顺序调试。如果适配 不成功,就利用FPGA内部的逻辑分析仪采样信号进行分析,修正补偿相应的信号线后,再重新进 行适配。HT总线频率调试顺序依次为200MHz、400MHz、800MHz,一直到芯片工作最高频率。 通过如上HT总线的适配,可以确定信号的正确连接方式或者处理方法,能够定量地找出CPU
总线速率最高为 1 GHz,龙芯 CPU 和芯片组 3、芯片组 4、芯片组 5 的 HT 总线速率最高为 2.6 GHz, 每个 HT 总线有 20 对差分信号线,所以 FPGA 需要提供 40 对可达 1 GHz 高速串行信号线和 80 对可 达 2.6 GHz 高速串行信号线。因为 GX 2800 具有 576 对可达 1.6 GHz 高速串行总线和 96 对可达 17.4 Gbs 高速串行总线,所以满足本设计要求。另外 GX 2800 可提供 1160 个其他类型的 IO 针脚,足以 满足本设计的要求。在可编程逻辑单元方面,每种芯片组的 HT 总线和协议转换模块大约需要 9 万 个可编程逻辑单元,龙芯 CPU 和五种芯片组大约共需 54 万个;交叉开关总线和带宽匹配模块大约 需要 12 万个可编程逻辑单元;重要暂不确定控制信号线处理域大约需要 4000 个可编程逻辑单元; CPLD 功能域大约需要 3000 个可编程逻辑单元,所以共需大约 67 万个可编程逻辑单元。GX 2800 具 有 93.3 万个可编程逻辑单元,本设计资源利用率大约在 72%,所以完全满足本设计的资源需求。 图 3 包含 FPGA 和各种芯片组的主板 Fig.3 Motherboard sample include FPGA & kinds of chipsets 2.2 信号线的设计处理 2.2.1 HT 总线的设计处理 标准的 HT 总线协议包括三类信号线:连接信号线(数据、地址、控制和时钟)(如表 1)、复位和 初始化信号线(如表 2)和电源管理信号线(如表 3)。 对于连接信号线,龙芯 CPU 和上面所提到的芯片组(或北桥)都有 16 对接收差分信号线,16 对 发送差分信号线;2 对接收信号时钟差分对,2 对发送信号时钟差分对;2 对接收控制信号差分 对,2 对发送控制信号差分对。两者的 HT 总线连接信号线都直接引入 FPGA 内部的 HT 总线域进行 处理,需要注意的是不同型号的龙芯 CPU 和所选择的芯片组遵循 HT 协议版本不同,有的是 HT2.0 协议,有的是 HT3.0 协议,即使都支持 HT3.0 协议,也存在 1.8 GHz、2.0 GHz、2.4 GHz、2.6 GHz 四种 频率等级,所以在适配的过程中需要采用带宽匹配模块进行调整。 表 1 HT 总线的连接信号线 Table 1 HT Bus Link Signals Signal Width Description CAD 2, 4, 8 or 16 Command, Addresses, and Data (CAD). Carries HyperTransport™requests, responses, addresses and data. CAD width can be different in each direction. CTL 1, 2, or 4 Differentiates control and data. Each byte of CAD has a CTL signal in Gen3 protocol. One CTL signal is used for an entire link in Gen1 protocol. CLK 1, 2, or 4 Clocks for the CAD and CTL signals. Each byte of CAD and its respective CTL signal has a separate clock signal. 在实际的适配中,利用 FPGA 内部设置的交叉开关只需连接龙芯 CPU 和所要适配芯片组的 HT 总线,而断开其它芯片组连接。HT 总线调试采取频率、通道数从低到高逐步增加的步进调节方 法。HT 可支持 2、4、8 和 16 位(bit)四种通道模式,HT 协议的最低工作频率可低至 200 MHz,HT2.0 协议支持最高频率为 1.4 GHz,HT3.0 协议支持的最高频率为 2.6 GHz。 HT 调试流程如图 4 所示,在 HT 调试过程中,先固定工作频率,从最低的 2 位通道数进行调 试,如果适配成功,就依次增加通道数继续调试,即按照 2 位、4 位、8 位、16 位顺序调试。如果适配 不成功,就利用 FPGA 内部的逻辑分析仪采样信号进行分析,修正补偿相应的信号线后,再重新进 行适配。HT 总线频率调试顺序依次为 200 MHz、400 MHz、800 MHz,一直到芯片工作最高频率。 通过如上 HT 总线的适配,可以确定信号的正确连接方式或者处理方法,能够定量地找出 CPU 录用稿件,非最终出版稿
和芯片组的HT总线在主板PCB(Printed Circuit Board)设计中信号线的最佳分组方式、长度限制、 线宽限制、相邻信号线的间距限制,能够找出两者之间HT总线的最佳工作频率甚至下一版芯片设 计中需要修改的错误或者改进之处。 利用如上HT调试流程在对如上五种芯片组调试结果表明,第一种和第三种芯片组可以调试成 功的最高频率是800MHz,第二种芯片组在达到HT总线400MHz时出现不稳定的现象,第四种和 第五种可以达到2.0 GHzHT总线频率。第四种芯片组,即RS780E+SB710组合,PCIE总线有22 对信号线,但不支持服务器领域要求的RAS特性,但成本低,所以非常适合作为龙芯的桌面芯片 组。第五种芯片组SR5690+SP5100,拥有42对PCIE信号线、14个USB接口,具有强大的IO能力, 并支持RAS特性,所以可以得出在服务器领域与龙芯CPU适配成功的最高端、最适合的芯片组为 SR5690+SP5100。在本文后面的其他章节,在阐述芯片组适配与实现的通用原理和方法后,为了文 章的简洁,主要以SR5690+SP5100芯片组进行阐述。 System Start Set i=200MHz Set Link widths=2bits FPGA trims an compensates signa <Link OK? No Yes Set Link widths=4bits No Link OK? Set Link widths=8bits Link OK? No IYes Set Link widths=16bits Link OK? 44 HT Fmax? Yes 图4HT总线调试流程 Fig.4 The flow of HT bus debug 2.2.2 重要暂不确定控制信号线的设计处理 龙芯CPU的T急线由于其独特的设计比标准的HT总线协议多出了一些额外的、特殊的信 号,所以在硬件层和协议层需要正确地处理这些特殊信号。既不能影响龙芯CPU自身正常工作,又 能和芯片组无缝的兼容,这是一个比较关键的技术点。在标准的HT总线协议中,信号 PWROK、RESET、LDTSTOP#、LDTREQ#(如表2和表3)只有一组,而龙芯HT总线接口信号有 两组,一组是HT HI POWEROK、HT HI RSTn、HT HI LDT STOPn、HT_HI LDT REQn,另一组 是HT LO POWEROK,HT_LO RSTn、HT LO LDT STOPn、HT LO LDT REQn。龙芯CPU和芯 片组还有其他各自特殊的信号线,无法直接确定两者之间的对应关系。以上这些重要暂不确定控制 信号线都引入FPGA,如图1和图2所示。 表2HT总线的复位/初始化信号线 Table 2 HT Bus Reset/Initialization Signals Signal Width Description PWROK Power and clocks are stable RESET# 1 Reset the Hyper TransportTM chain
和芯片组的 HT 总线在主板 PCB(Printed Circuit Board)设计中信号线的最佳分组方式、长度限制、 线宽限制、相邻信号线的间距限制,能够找出两者之间 HT 总线的最佳工作频率甚至下一版芯片设 计中需要修改的错误或者改进之处。 利用如上 HT 调试流程在对如上五种芯片组调试结果表明,第一种和第三种芯片组可以调试成 功的最高频率是 800 MHz,第二种芯片组在达到 HT 总线 400 MHz 时出现不稳定的现象,第四种和 第五种可以达到 2.0 GHz HT 总线频率。第四种芯片组,即 RS780E + SB710 组合,PCIE 总线有 22 对信号线,但不支持服务器领域要求的 RAS 特性,但成本低,所以非常适合作为龙芯的桌面芯片 组。第五种芯片组 SR5690 + SP5100,拥有 42 对 PCIE 信号线、14 个 USB 接口,具有强大的 IO 能力, 并支持 RAS 特性,所以可以得出在服务器领域与龙芯 CPU 适配成功的最高端、最适合的芯片组为 SR5690 + SP5100。在本文后面的其他章节,在阐述芯片组适配与实现的通用原理和方法后,为了文 章的简洁,主要以 SR5690 + SP5100 芯片组进行阐述。 System Start Set i=200MHz Set Link widths=2bits Link OK? Set Link widths=4bits Link OK? Set Link widths=8bits Link OK? Set Link widths=16bits Link OK? i++ iİ HT Fmax? FPGA logic analyzer samples and analyses signals FPGA trims and compensates signals、 changes settings No Yes Yes No No Yes Yes No No END Yes 图 4 HT 总线调试流程 Fig.4 The flow of HT bus debug 2.2.2 重要暂不确定控制信号线的设计处理 龙芯 CPU 的 HT 总线由于其独特的设计比标准的 HT 总线协议多出了一些额外的、特殊的信 号,所以在硬件层和协议层需要正确地处理这些特殊信号。既不能影响龙芯 CPU 自身正常工作,又 能和芯片组无缝的兼容,这是一个比较关键的技术点。在标准的 HT 总线协议中,信号 PWROK、RESET#、LDTSTOP#、LDTREQ#(如表 2 和表 3)只有一组,而龙芯 HT 总线接口信号有 两组,一组是 HT_HI_POWEROK、HT_HI_RSTn、HT_HI_LDT_STOPn、HT_HI_LDT_REQn,另一组 是 HT_LO_POWEROK,HT_LO_RSTn、HT_LO_LDT_STOPn、HT_LO_LDT_REQn。龙芯 CPU 和芯 片组还有其他各自特殊的信号线,无法直接确定两者之间的对应关系。以上这些重要暂不确定控制 信号线都引入 FPGA,如图 1 和图 2 所示。 表 2 HT 总线的复位/初始化信号线 Table 2 HT Bus Reset/Initialization Signals Signal Width Description PWROK 1 Power and clocks are stable. RESET# 1 Reset the HyperTransport™ chain. 录用稿件,非最终出版稿
表3HT总线的电源管理信号线 Table 3 Power Management Signals Signal Width Description LDTSTOP# Enables and disables links during system state transitions LDTREQ# 1 Indicates link is active or requested by a device. 这些信号如何处理,怎样和北桥、南桥互连在未适配成功前是不清楚的,但可以依靠FPGA在 其内部灵活地处理,例如连接、断开或者采用某种终端方式来反复地实验调试,直到找到某种确定 的处理方式或者结论为止。经过本文的实验,对于适配成功的芯片组SR5690+SP5100和龙芯CPU 在HT总线上可以找到如下正确的连接方式,如图5所示。 HT_LO_LDT_REQn HT_LO_POWEROK HT LO LDT_STOPn HT LO RSTn LDISTOP# 版稿 Loongson CPU LDTREQ# RESET# LDTSTOP# PWROK outhBridge LDTREQ# 图5HT重要暂不确定控制信号线经适配证明后找到的正确连接方式 Fig.5 Correct connection of HT important but temporarily indeterminate signals after effective adaptation 2.2.3上下电控制信号线的设计处理 在无法得知龙芯CPU和芯片组的上下电时序如何配合的情况下,需要把CPU上下电控制信 号、芯片组的上下电控制信>电源模块的控制信号线都引入FPGA。这些信号线主要包括:1)龙芯 CPU的系统复位信号线SYSRESETN,PCI总线的复位信号线PCI RESETN;2)南桥的上电完成 信号线PWR GOOD,北桥电完成信号线NB PWRGD:3)各个供电模块的上电使能信号线和 电源完成信号线PWRGOOD:4)龙芯CPU的GPIO配置信号线,内存时钟频率的设置信号线,HT 总线时钟频率的设置信号线等。 用FPGA使能或者关闭电源模块的使能信号、龙芯CPU和芯片组的电源完成信号、复位信号 线,并调整各不电源控制信号的先后顺序和时间间隔进行反复实验,一直尝试到得到确定的答案为 止,或者能我到最准的电源时序适配方案,或者证明两者无法兼容。 芯片组SR560+SP5100是本文适配成功的芯片组,图6是为其找到的已经验证成功的上下电 时序。为了进步验证上下电时序的正确性和可靠性,采用两种方法进行验证。 在ACPI(Advanced Configuration and Power Management Interface)规范中规定了计算机系统的 7种状态:G3,S0,S1,S2,S3,S4和S5。对于服务器系统来说,其中必然经历三种状态,即 G3(Mechanical Off,即彻底切断所有电源,包括外置电源)、S5(关机状态,只有standby电源存 在)、S0(工作状态,即所有设备都运行)。鉴于此,龙芯CPU和芯片组SR5690+SP5100组成的 服务器系统从启动到运行过程中,通过调试工具在G3、S5和S0状态读取龙芯CPU和芯片组的寄存 器值,和产品文档中标准值进行对比从而验证上下电时序的正确性。测试表明,图6设计的上下电 时序是正确的。 另一种方法是采用服务器产品化过程中常用的电源循环压力测试方法:AC Power on/off cycle test和DC Power on/off cycle test。.AC Power on/off cycle test,是交流电循环上下电测试,从G3到S0
表 3 HT 总线的电源管理信号线 Table 3 Power Management Signals Signal Width Description LDTSTOP# 1 Enables and disables links during system state transitions. LDTREQ# 1 Indicates link is active or requested by a device. 这些信号如何处理,怎样和北桥、南桥互连在未适配成功前是不清楚的,但可以依靠 FPGA 在 其内部灵活地处理,例如连接、断开或者采用某种终端方式来反复地实验调试,直到找到某种确定 的处理方式或者结论为止。经过本文的实验,对于适配成功的芯片组 SR5690 + SP5100 和龙芯 CPU 在 HT 总线上可以找到如下正确的连接方式,如图 5 所示。 Loongson CPU Northbridge RESET# LDTSTOP# PWROK LDTREQ# HT bus x16 HT_LO_LDT_REQn LDTREQ# LDTSTOP# HT_LO_POWEROK HT_LO_RSTn HT_LO_LDT_STOPn SouthBridge 图 5 HT 重要暂不确定控制信号线经适配证明后找到的正确连接方式 Fig.5 Correct connection of HT important but temporarily indeterminate signals after effective adaptation 2.2.3 上下电控制信号线的设计处理 在无法得知龙芯 CPU 和芯片组的上下电时序如何配合的情况下,需要把 CPU 上下电控制信 号、芯片组的上下电控制信号、电源模块的控制信号线都引入 FPGA。这些信号线主要包括:1)龙芯 CPU 的系统复位信号线 SYSRESETN,PCI 总线的复位信号线 PCI_RESETN;2)南桥的上电完成 信号线 PWR_GOOD,北桥的上电完成信号线 NB_PWRGD;3)各个供电模块的上电使能信号线和 电源完成信号线 PWRGOOD;4)龙芯 CPU 的 GPIO 配置信号线,内存时钟频率的设置信号线,HT 总线时钟频率的设置信号线等。 用 FPGA 使能或者关闭电源模块的使能信号、龙芯 CPU 和芯片组的电源完成信号、复位信号 线,并调整各个电源控制信号的先后顺序和时间间隔进行反复实验,一直尝试到得到确定的答案为 止,或者能找到最佳的电源时序适配方案,或者证明两者无法兼容。 芯片组 SR5690 + SP5100 是本文适配成功的芯片组,图 6 是为其找到的已经验证成功的上下电 时序。为了进一步验证上下电时序的正确性和可靠性,采用两种方法进行验证。 在 ACPI(Advanced Configuration and Power Management Interface)规范中规定了计算机系统的 7 种状态:G3,S0,S1,S2,S3,S4 和 S5。对于服务器系统来说,其中必然经历三种状态,即 G3(Mechanical Off,即彻底切断所有电源,包括外置电源)、S5(关机状态,只有 standby 电源存 在)、S0(工作状态,即所有设备都运行)。鉴于此,龙芯 CPU 和芯片组 SR5690 + SP5100 组成的 服务器系统从启动到运行过程中,通过调试工具在 G3、S5 和 S0 状态读取龙芯 CPU 和芯片组的寄存 器值,和产品文档中标准值进行对比从而验证上下电时序的正确性。测试表明,图 6 设计的上下电 时序是正确的。 另一种方法是采用服务器产品化过程中常用的电源循环压力测试方法:AC Power on/off cycle test 和 DC Power on/off cycle test。AC Power on/off cycle test,是交流电循环上下电测试,从 G3 到 S0 录用稿件,非最终出版稿
再到G3再到S0不间断循环1000次,如顺利完成侧表明系统设计的正确性和可靠性。DC Power or/ off cycle test,是直流电循环上下电测试,从S0到S5再到S0再到S5不间断循环1000次,如顺利 完成测表明系统设计的正确性和可靠性。压力测试表明,图6所示的上下电时序顺利完成了1000次 循环压力测试,达到了产品化的目标。 (L)+573B- ()+3.3V DUAL (3)EPGA 5B RSMRST+ (4)SB PWRON (5)3LP334R 16)12W51P53生 (7)ATX PWRGD 为.m (8)B1V8 (9)CPU NB SB 1.2V 13.6 (10)NB 1VI (11)CPUO/1_VCCINT_1V1 (12)C2U0/11.5VL33DDR3 (13)SYS PHRGD 社)BF3GD (15)FPGA KBRST L (L6)LS3T1-L0202R0R (17)8BA-R5t1 (18)SB PCI RST SR L (19)SYSTEM RST 版稿 (20)CPULDT RST (21)TBD 图6经适配证明后找到的正确电源时序 Fig.6 Correct power sequence after effective adaptation 2.3龙芯服务器产品的设计 当找到能够正确适配龙芯CPU的芯片组后,在实际的龙芯服务器产品设计中,去掉中间FPGA 按照适配好的规则直接把龙芯CPU和适配成功的芯'组连接起来即可。 在适配过程中已经总结出物理信号线的正确连接或者处理方式、正确的上下电时序、最佳的HT 工作频率、确定的PCB布线规则(如线长、线宽、线距)和信号完整性的正确处理方式等设计要点。 在龙芯服务器产品设计中只需遵循己总结出的这些设计要点按照常规主板设计的方法进行设计就可 以了 图7是根据以上总结得出的设计规则去掉FPGA后设计的龙芯服务器主板实物图。此龙芯服务 器主板采用龙芯双路SMP架构设计,芯片组是SR5690+SP5100,已经实现了产品化,稳定性好, 性能高。 ridge SR5690 录用 Two-way loongson CPU uthbridge SP5100 Memory Harddisk 图7SR5690+SP5100龙芯双路服务器产品主板 Fig.7 Loongson two-way SMP motherboard product using SR5690+SP5100 chipsets 3讨论 本文设计的筛选芯片组的架构和方法具有很强的通用性,不但从如上五种芯片组中筛选出服务 器级别的SR5690+SP5100芯片组能够完全适配龙芯CPU,而且利用此架构和方法在其他的研究项
再到 G3 再到 S0 不间断循环 1000 次,如顺利完成则表明系统设计的正确性和可靠性。DC Power on/ off cycle test,是直流电循环上下电测试,从 S0 到 S5 再到 S0 再到 S5 不间断循环 1000 次,如顺利 完成则表明系统设计的正确性和可靠性。压力测试表明,图 6 所示的上下电时序顺利完成了 1000 次 循环压力测试,达到了产品化的目标。 图 6 经适配证明后找到的正确电源时序 Fig.6 Correct power sequence after effective adaptation 2.3 龙芯服务器产品的设计 当找到能够正确适配龙芯 CPU 的芯片组后,在实际的龙芯服务器产品设计中,去掉中间 FPGA 按照适配好的规则直接把龙芯 CPU 和适配成功的芯片组连接起来即可。 在适配过程中已经总结出物理信号线的正确连接或者处理方式、正确的上下电时序、最佳的 HT 工作频率、确定的 PCB 布线规则(如线长、线宽、线距)和信号完整性的正确处理方式等设计要点。 在龙芯服务器产品设计中只需遵循已总结出的这些设计要点按照常规主板设计的方法进行设计就可 以了。 图 7 是根据以上总结得出的设计规则去掉 FPGA 后设计的龙芯服务器主板实物图。此龙芯服务 器主板采用龙芯双路 SMP 架构设计,芯片组是 SR5690 + SP5100,已经实现了产品化,稳定性好, 性能高。 图 7 SR5690+SP5100 龙芯双路服务器产品主板 Fig.7 Loongson two-way SMP motherboard product using SR5690+SP5100 chipsets 3 讨论 本文设计的筛选芯片组的架构和方法具有很强的通用性,不但从如上五种芯片组中筛选出服务 器级别的 SR5690 + SP5100 芯片组能够完全适配龙芯 CPU,而且利用此架构和方法在其他的研究项 录用稿件,非最终出版稿
目中也成功筛选出多种适用于龙芯CPU的桌面级别芯片组和服务器级别芯片组,对于桌面级别芯 片组,例如北桥芯片型号有RX781、RS785G、RD790,南桥芯片型号有SB700:对于服务器级别芯 片组,例如北桥芯片型号有SR5650、SR5670,南桥芯片型号有SB750。对于这些已经成功筛选出的 芯片组,用户可以根据其功能、性能、成本等综合因素选择高性价比的芯片组来使用,极大地拓宽了 龙芯CPU的使用领域,促进了龙芯的产业化。 SR5690+SP5100芯片组功能丰富、性能强大,完全可以作为龙芯CPU服务器级别的芯片组使 用,其和目前龙芯中科技术有限公司推出的龙芯7A1000桥片在规格参数上的对比如表4。 表4芯片组规格对比 Table 4 Comparison in different chipsets'specifications Item 7A1000 SR5690+SP5100 HTbus HT3.0x16 HT3.0x16 PCIE 32 lanes 42 lanes SATA 3x SATA2.0 6 x SATA2.0 USB Ports 6x USB2.0 14 x USB2.0 RAS No Yes IOMMU No Yes 高IO带宽、支持IO虚拟化的IOMMU功能和支持RAS功能是目前服务器所应具备的基本要 求。从这三种芯片组规格的对比来看,芯片组SR5690+SP510Q的O带宽特别是PCIE数量远大于 龙芯7A1000桥片,SATA和USB数量也远大于龙芯7A1000桥片而且还支持IOMMU和RAS功 能。所以,芯片组SR5690+SP5100在规格参数上完全可以作为龙芯CPU的服务器芯片组。 在性能方面,本文设计的SR5690+SP5100双路龙巷3B4000服务器与市场上已有的双路龙芯 3B4000+7A1000服务器进行了实际测试对比。两种服务器都采用相同的硬件配置,即两路龙芯 3B4000CPU(主频1.8GHz,4核),4条紫光国芯6 GB DDR4内存(型号:SCC16GP02H1F1C- 26V),4块东芝2TB的SATA硬盘(型号MG04A200N),网卡采用Intel I350千兆网卡。采用 国际上公认的benchmark程序进行测试,用SPEC CPU2006测试了CPU计算性能,单核整型性能 (int speed base)以、多核整型性能(int rate base)入单核浮点性能(p_speed base)和多核浮点性能 (p_rate_base)如表5所示;用IOzone V4.3.0测试了SATA硬盘性能,512字节读写性能和1M字节 读写性能如表6所示;用Netperf V2.7.0测试了网络性能,TCP吞吐率、TCP传输速度、UDP吞吐率 和UDP传输速度如表7所示。从性能对比的数据来看,采用SR5690+SP5100作为龙芯3B4000配 套的芯片组可以较大幅度地提高龙巷CPU的性能,特别是IO方面性能,可以提高到10%以上。 表5 SPEC CPU2006性能对比 Table 5 Analysis of SPEC CPU2006 performance 7A1000 SR5690+ Performance server SP5100 server improvement (% 12.30 13.02 6% ate base 78.07 83.6 7% 录 fp_speed base 12.02 12.8 6% fp rate base 74.90 82.6 10% 表6 IOZone性能对比 Table 6 Analysis of IOzone performance Item 7A1000 SR5690+ Performance server SP5100 server improvement (% 512Byte read speed(Mb/s) 38.56 43.19 12% (Average of three times'results) 1MByte read speed(Mb/s) (Average of three times'results) 696.31 800.76 15% 512Byte write speed(Mb/s) 1.25 1.53 (Average of three times'results) 22% 1MByte write speed(Mb/s) 306.76 383.45 25% (Average of three times'results)
目中也成功筛选出多种适用于龙芯 CPU 的桌面级别芯片组和服务器级别芯片组,对于桌面级别芯 片组,例如北桥芯片型号有 RX781、RS785G、RD790,南桥芯片型号有 SB700;对于服务器级别芯 片组,例如北桥芯片型号有 SR5650、SR5670,南桥芯片型号有 SB750。对于这些已经成功筛选出的 芯片组,用户可以根据其功能、性能、成本等综合因素选择高性价比的芯片组来使用,极大地拓宽了 龙芯 CPU 的使用领域,促进了龙芯的产业化。 SR5690 + SP5100 芯片组功能丰富、性能强大,完全可以作为龙芯 CPU 服务器级别的芯片组使 用,其和目前龙芯中科技术有限公司推出的龙芯 7A1000 桥片在规格参数上的对比如表 4。 表 4 芯片组规格对比 Table 4 Comparison in different chipsets’ specifications Item 7A1000 SR5690+ SP5100 HT bus HT3.0 x16 HT3.0 x16 PCIE 32 lanes 42 lanes SATA 3x SATA2.0 6 x SATA2.0 USB Ports 6 x USB2.0 14 x USB2.0 RAS No Yes IOMMU No Yes 高 IO 带宽、支持 IO 虚拟化的 IOMMU 功能和支持 RAS 功能是目前服务器所应具备的基本要 求。从这三种芯片组规格的对比来看,芯片组 SR5690 + SP5100 的 IO 带宽特别是 PCIE 数量远大于 龙芯 7A1000 桥片,SATA 和 USB 数量也远大于龙芯 7A1000 桥片,而且还支持 IOMMU 和 RAS 功 能。所以,芯片组 SR5690 + SP5100 在规格参数上完全可以作为龙芯 CPU 的服务器芯片组。 在性能方面,本文设计的 SR5690 + SP5100 双路龙芯 3B4000 服务器与市场上已有的双路龙芯 3B4000 + 7A1000 服务器进行了实际测试对比。两种服务器都采用相同的硬件配置,即两路龙芯 3B4000 CPU(主频 1.8 GHz,4 核),4 条紫光国芯 16 GB DDR4 内存(型号:SCC16GP02H1F1C- 26V),4 块东芝 2 TB 的 SATA 硬盘(型号 MG04ACA200N),网卡采用 Intel I350 千兆网卡。采用 国际上公认的 benchmark 程序进行测试,用 SPEC CPU 2006 测试了 CPU 计算性能,单核整型性能 (int_speed_base)、多核整型性能(int_rate_base)、单核浮点性能(fp_speed_base)和多核浮点性能 (fp_rate_base)如表 5 所示;用 IOzone V4.3.0 测试了 SATA 硬盘性能,512 字节读写性能和 1M 字节 读写性能如表 6 所示;用 Netperf V2.7.0 测试了网络性能,TCP 吞吐率、TCP 传输速度、UDP 吞吐率 和 UDP 传输速度如表 7 所示。从性能对比的数据来看,采用 SR5690 + SP5100 作为龙芯 3B4000 配 套的芯片组可以较大幅度地提高龙芯 CPU 的性能,特别是 IO 方面性能,可以提高到 10%以上。 表 5 SPEC CPU2006 性能对比 Table 5 Analysis of SPEC CPU2006 performance Item 7A1000 server SR5690+ SP5100 server Performance improvement(%) int_speed_base 12.30 13.02 6% int_rate_base 78.07 83.6 7% fp_speed_base 12.02 12.8 6% fp_rate_base 74.90 82.6 10% 表 6 IOZone 性能对比 Table 6 Analysis of IOzone performance Item 7A1000 server SR5690+ SP5100 server Performance improvement(%) 512Byte read speed(Mb/s) (Average of three times’ results) 38.56 43.19 12% 1MByte read speed(Mb/s) (Average of three times’ results) 696.31 800.76 15% 512Byte write speed(Mb/s) (Average of three times’ results) 1.25 1.53 22% 1MByte write speed(Mb/s) (Average of three times’ results) 306.76 383.45 25% 录用稿件,非最终出版稿