《一种面向龙芯3B处理器的服务器操作系统实现方法.pdf》由会员分享,可在线阅读,更多相关《一种面向龙芯3B处理器的服务器操作系统实现方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102789384 A (43)申请公布日 2012.11.21 C N 1 0 2 7 8 9 3 8 4 A *CN102789384A* (21)申请号 201210241548.6 (22)申请日 2012.07.12 G06F 9/44(2006.01) (71)申请人北京航空航天大学 地址 100191 北京市海淀区学院路37号 (72)发明人肖利民 张坤 阮利 田鸿运 王慧祥 (74)专利代理机构北京慧泉知识产权代理有限 公司 11232 代理人王顺荣 唐爱华 (54) 发明名称 一种面向龙芯3B处理器的服务器操作系统 实现方法 (57) 摘要 一种面向。
2、龙芯3B处理器的服务器操作系统 实现方法,该方法有五大步骤:步骤101.实现体 系结构相关的初始化;步骤102.实现陷阱门和中 断门的设置;步骤103.实现支持NUMA架构的内 存初始化和内存管理模块;步骤104.实现中断初 始化的设置;步骤105.实现PCI子系统初始化的 设置。本发明首先根据龙芯3B处理器硬件的需 求,实现了CPU、内存、中断和NUMA架构的支持,保 证了整个操作系统的稳定运行。它在计算机操作 系统领域具有广泛地实用价值和应用前景。 (51)Int.Cl. 权利要求书1页 说明书4页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 。
3、说明书 4 页 附图 3 页 1/1页 2 1.一种面向龙芯3B处理器的服务器操作系统实现方法,其特征在于:该方法包括以下 步骤: 步骤101.实现体系结构相关的初始化; 步骤102.实现陷阱门和中断门的设置; 步骤103.实现支持NUMA架构的内存初始化和内存管理模块; 步骤104.实现中断初始化的设置; 步骤105.实现PCI子系统初始化的设置。 2.一种面向龙芯3B处理器的服务器操作系统实现方法,其特征在于:步骤101所述的 实现体系结构相关的初始化是指与CPU相关的主频、一级cache容量、二级cache容量、串 口初始化地址信息的校正以及对板级相关的参数初始化。 3.一种面向龙芯3B。
4、处理器的服务器操作系统实现方法,其特征在于:步骤102所述的 实现陷阱门和中断门的设置是设置CPU的异常处理函数,TLB重填,cache出错还有对通用 异常处理表的初始化。 4.一种面向龙芯3B处理器的服务器操作系统实现方法,其特征在于:步骤103所述的 实现支持NUMA架构的内存初始化是指服务器操作系统内核在进行内存初始化的时候考虑 到NUMA架构的影响,在传统初始化方法的基础上扩充对节点内存的初始化管理,此外,内 存初始化还包括对页地址池的初始化、PCI内存和高端内存的初始化。 5.一种面向龙芯3B处理器的服务器操作系统实现方法,其特征在于:步骤103所述的 实现支持NUMA架构的内存管理。
5、模块是指在为进程分配内存的过程中,充分考虑到NUMA架 构的特点,结合当前进程所在的CPU,就近分配内存,从而避免进程与自身的内存在不同的 节点带来的远地访存问题。 6.一种面向龙芯3B处理器的服务器操作系统实现方法,其特征在于:步骤104所述的 实现中断初始化的设置是指对系统中断路由的设置、中断处理的设置、对系统PCI设备的 中断处理设置以及对系统内的设备中断号和相应中断处理程序的映射设置。 7.一种面向龙芯3B处理器的服务器操作系统实现方法,其特征在于:其中,步骤105 所述的实现PCI子系统初始化的设置是指按顺序实现子系统的初始化;这些子系统包括: 总线、驱动和USB子系统。 权 利 要。
6、 求 书CN 102789384 A 1/4页 3 一种面向龙芯 3B 处理器的服务器操作系统实现方法 ( 一 ) 技术领域 0001 本发明涉及一种面向龙芯3B处理器的服务器操作系统实现方法,具体涉及操作 系统内核对龙芯3B体系结构相关的的支持,以及相应的中断管理子系统、内存管理子系统 相关的软件实现方法,属于计算机操作系统技术领域。 ( 二 ) 背景技术 0002 龙芯3B CPU是一款通用的多核CPU,采用MIPS架构,在单个芯片上集成了多个高 性能处理器核,其主要面向服务器和高性能应用。 0003 虽然龙芯3B CPU与龙芯3A CPU在硬件管脚上兼容,但是龙芯3B处理器与龙芯3A 处。
7、理器在内部结构上还是有较大的差别,龙芯3B处理器在龙芯3A处理器的基础上,单芯片 上集成了8个处理器核,并且提高了工作主频,同时还集成了大量的二级cache,此外还对 片内集成的DDR控制器增加了ECC校验功能,并且调整了片内集成的PCI控制器的工作频 率。面向龙芯3A CPU的操作系统也不能直接在龙芯3B上运行,目前尚无良好支持龙芯3B 处理器的操作系统。没有操作系统的支持,就无法在龙芯3B处理器上运行上层应用,相应 的云计算、高性能计算都无法正常进行。另一方面,NUMA架构在服务器体系结构中越来越 流行,然而现有的国产服务器操作系统对于NUMA架构的支持还很不完善,其对物理内存的 管理采用。
8、统一编址的方式实现,没有充分考虑NUMA架构的特点,在内存分配的时候缺乏对 节点本地内存和远程内存的区分管理,这样的做法增加了远程访存的频率,过多的远程访 存导致系统开销增大,进而使系统运行效率低下。因此,针对龙芯3B处理器以及NUMA体系 结构的特点,实现面向龙芯3B处理器的服务器操作系统具有很强的实用价值。 ( 三 ) 发明内容 0004 1、目的:有鉴于此,本发明的目的是提供一种面向龙芯3B处理器的服务器操作系 统实现方法,实现对龙芯3B处理器以及NUMA架构的良好支持。 0005 2、技术方案:为达到上述目的,本发明的技术方案是这样的: 0006 如图1所示,本发明一种面向龙芯3B处理。
9、器的服务器操作系统实现方法,该方法 包括以下步骤: 0007 步骤101.实现体系结构相关的初始化; 0008 步骤102.实现陷阱门和中断门的设置; 0009 步骤103.实现支持NUMA架构的内存初始化和内存管理模块; 0010 步骤104.实现中断初始化的设置; 0011 步骤105.实现PCI子系统初始化的设置; 0012 本发明在硬件条件方面,要求提供基于龙芯3B处理器的硬件平台。在软件条件方 面,要求在相应硬件平台上调试好的PMON可供加载内核。 0013 其中,步骤101所述的实现体系结构相关的初始化是指与CPU相关的主频、一级 cache容量、二级cache容量、串口初始化地址。
10、等信息的校正以及对板级相关的参数初始 说 明 书CN 102789384 A 2/4页 4 化。 0014 其中,步骤102所述的实现陷阱门和中断门的设置主要是设置CPU的异常处理函 数,TLB重填,cache出错还有对通用异常处理表的初始化。 0015 其中,步骤103所述的实现支持NUMA架构的内存初始化是指服务器操作系统内核 在进行内存初始化的时候考虑到NUMA架构的影响,在传统初始化方法的基础上扩充对节 点内存的初始化管理。此外,内存初始化部分还包括对页地址池的初始化。PCI内存和高端 内存的初始化。 0016 其中,步骤103所述的实现支持NUMA架构的内存管理模块是指在为进程分配内。
11、存 的过程中,充分考虑到NUMA架构的特点,结合当前进程所在的CPU,就近分配内存,从而避 免进程与自身的内存在不同的节点带来的远地访存问题。 0017 其中,步骤104所述的实现中断初始化的设置是指对系统中断路由的设置、中断 处理的设置、对系统PCI设备的中断处理设置以及对系统内的设备中断号和相应中断处理 程序的映射设置。 0018 其中,步骤105所述的实现PCI子系统初始化的设置是指按顺序实现子系统的初 始化。这些子系统包括:总线、驱动、USB子系统等。 0019 3、优点及功效:本发明一种面向龙芯3B处理器的服务器操作系统实现方法,它与 现有Li nux操作系统相比,其主要优点是:(1。
12、)提供对龙芯3B硬件平台的支持,填补当前 的技术空白;(2)充分考虑到NUMA体系结构的影响,避免远地访存,比同类面向龙芯numa 服务器的操作系统具有更高的性能。 ( 四 ) 附图说明 0020 图1龙芯3B服务器操作系统实现示意图 0021 图2龙芯3B服务器操作系统详细实现示意图 0022 图3龙芯3B服务器操作系统内存初始化流程示意图 ( 五 ) 具体实施方式 0023 为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体 实施例对本发明再作进一步详细的说明。 0024 见1图3,本发明的主要思想是根据龙芯3B硬件体系结构的特点以及NUMA体系 架构的特点,来实现对龙。
13、芯3B NUMA服务器具有良好支持的服务器操作系统。详细步骤如 图2所示: 0025 步骤201-1:CPU的类型主要是通过读取CPU的PRID寄存器的值来确定。进而确 定相应的指令集、TLB容量、一级cache和二级cache的容量、数据cache和指令cache的 容量。由于龙芯3B处理器具有浮点协处理器,所以还需要使能浮点协处理器。例如可采用 以下代码实现: 0026 说 明 书CN 102789384 A 3/4页 5 0027 步骤201-2:底层的初始化可以采用下面的顺序实现: 0028 第一步,初始化I/O空间的基地址为I/O设备的启动做准备,相关的I/O空间的基 地址可以查询相。
14、应的硬件数据手册;第二步,接受引导装载程序传递给内核的参数,内核通 过对这些参数进行分析判断,决定启动的方式,例如:传给内核的console参数是ttyS0,内 核就决定通过串口从终端启动系统进而会对串口初始化进行判断,如果内核的console参 数是tty,内核就是决定通过启动界面进入系统;第三步,传递内核需要的环境变量:总线 频率、cpu频率、内存大小以及高端内存大小;第四步,初始化串口基地址,具体使用的串口 基地址需要与硬件工程师沟通。串口在系统调试阶段以及嵌入式系统中有很重要的作用。 0029 步骤201-3:支持NUMA架构的底层内存初始化。在内存初始化的时候,相比于传 统的初始化方。
15、法,增加一个管理各节点内存的结构体。此结构体包括对各节点内存范围的 记录、对各节点可用内存的标记、对节点内处理器和内存的映射。例如,假设某龙芯3BNUMA 服务器具有两个节点,每个节点具有两颗物理CPU,每个节点上分别挂载2GB内存,则可对 其内存描述如下: 0030 0031 在底层内存初始化之后,进行板级相关的初始化,可以通过打印输出的内存范围 映像图来判断划分的内存范围是否正确,然后对启动命令行参数进行分析并将分析结果保 存在结构体数组中,初始化引导内存分配器和内核空间的页表,建立页表项。 0032 步骤202:设置异常向量号是根据相应的硬件手册来实现的。龙芯3B设置异常向 量号的原则为。
16、:0-15号分配给8259中断控制器,16-23号分配给MIPS CPU,32-63号分配给 Bonito北桥。 0033 步骤203:实现操作系统对龙芯3B NUMA架构服务器内存管理的支持,可以采用以 下步骤: 0034 初始化龙芯3B操作系统的页地址池。通过判断内存空间是否启用了高端内存可 以确定是否初始化页地址池。由于龙芯3的内存空间中启用了高端内存,所以需要对其 说 明 书CN 102789384 A 4/4页 6 进行初始化,建立高端内存的地址映射关系。 0035 初始化平台相关的pci内存和高端内存。主要是根据龙芯3B操作系统的内存特 点进行不同内存区域的划分。 0036 初始化。
17、板级相关的内存。 0037 建立内存区域列表,并将各区域进行排序。首先设置排列顺序所依据的原则,然后 根据设置的原则建立区域链表,假设该区域为zone,当一个zone不能满足当前分配时会根 据此链表来找到下一个可以分配的zone。然后使管理区列表生效。如果不相等则停止机器 的运行。然后检查系统中页的数量是否能够使系统工作,如果页太少不能工作,要将这些页 组进行移动。 0038 初始化内存。对内存进行初始化的实现思想,有别于现有操作系统中使用的伙伴 系统。伙伴系统把全部内存地址空间看做是等同的,根据进程申请分配内存空间的大小进 行地址空间的分配,但是这种方法虽然解决了外部碎片,在解决NUMA架构。
18、的内存支持上是 不高效的。假设有两个节点的情况下,节点0的内存空闲很多,节点1的内存还没使用,当 节点1的进程申请内存分配时,伙伴系统出于解决外部碎片的考虑,会将节点0的内存分配 给节点1上的进程,这样造成进程一直在访问远程内存,效率低下。因此,在实现NUMA架构 的内存管理的时候,需要综合考虑。根据上述的各节点内存管理的结构体,判断进程与其申 请分配的内存是否在同一个节点上,如果不是,就重新申请分配内存,直到分配到同一个节 点上,这样会减少远程访存的开销,提高系统运行的效率。 0039 初始化slab分配器使slab cache可用。在NUMA体系结构下,首先创建用来存放 所有cache的结。
19、构体数组,创建失败时打印相应的出错信息,成功后返回结构体数组的0号 元素,然后设置slab cache销毁之后的引用计数为1,将cache+,然后通知内存热插拔。 0040 步骤204:中断子系统的实现主要是实现底层相关的中断初始化。主要需要设置 LPC和HT中断路由,并使能HT和LPC的中断,将中断号和中断处理程序对应起来。龙芯3B 芯片内部最多支持64个中断源,以统一方式进行管理。 0041 步骤205:PCI子系统的实现是按顺序来实现的。PCI子系统包括:总线子系统、驱 动子系统、USB子系统等。我们可以将其分成7个子区段,举例定义方法如下: 0042 0043 子系统的初始化按照上面的。
20、顺序执行,各个区段初始化完成之后,系统就可以创 建进程并实现对硬件的管理了。 0044 最后所应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参 照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本 发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均 应涵盖在本发明的权利要求范围当中。 说 明 书CN 102789384 A 1/3页 7 图1 说 明 书 附 图CN 102789384 A 2/3页 8 图2 说 明 书 附 图CN 102789384 A 3/3页 9 图3 说 明 书 附 图CN 102789384 A 。