本发明专利技术公开了一种高密度多处理器系统及其节点控制器。所述节点控制器,包括:主处理器端口和从处理器端口,用于分别与主处理器和从处理器连接,主处理器负责具体计算任务的运行,以及对外围设备的发现和初始化过程,从处理器只负责具体计算任务的运行;I/O端口,通过I/O总线与外围设备连接;读/写模块与读/写交叉开关模块连接;直接内存访问交叉开关模块,用于实现各处理器端口间直接内存访问数据的交换;读/写交叉开关模块,用于实现各处理器端口之间,以及处理器端口和I/O端口之间读/写数据的交换。
【技术实现步骤摘要】
本专利技术涉及并行多处理器系统领域,特别是涉及一种高密度多处理器系统及其节 点控制器。
技术介绍
并行多处理器系统的节点控制器是节点内各种部件(处理器、主存和设备等)互 连的通道,其结构随着体系结构的不同而不同。当前主流的体系结构包括对称多处理系 ^t (Symmetrical Multi-Processing, SMP) > #X^t^#fi|ijj fn] %^t (Non Uniform Memory Access,NUMA)、大规模并行处理系统(Massively Parallel Processing, MPP)和机群系统 (Cluster)。Cluster中节点采用主流商用计算机,多为SMP和NUMA结构,因此SMP、NUMA和 Cluster中采用的节点控制器可以归为一类,此类节点的节点控制器采用北桥加南桥的方 式。北桥负责实现处理器与主存及南桥间的数据交互,目前的系统中北桥多被集成在处理 器中;南桥负责外围设备与北桥的数据交互,连接所有的外围设备。然而使用此类节点控制 器,处理器间的数据交互以Load和Store方式,一次传输数据量很小,通信带宽利用率低。 节点控制器需要维护Cache —致性,导致扩展性差。MPP系统则采用定制的节点,其节点控制器称为路由器(Router),多个处理器直 接挂载到Router上,构成直接网络,对外围设备的访问则通过独立的服务节点实现。此类 Router实现的外部接口采用自定义协议,无法使用商用化硬件,导致较高的系统成本。受限 于直接网络拓扑,一个Router能够互连的处理器数目受到限制。随着并行多处理机系统的性能不断提高,由于空间占用和散热效率的限制,使其 对节点密度的需求越来越高,即一个节点要容纳越来越多的处理器。同时由于成本的限制, 使其对节点商品化的要求越来越迫切,即一方面节点能够尽可能使用商用部件,另一方面 节点能够独立运行,成为主流商用服务器。这就要求节点控制器的设计在提供高带宽、低 延迟互连的基础上,还需要具有较好的扩展性,支持更多的处理器互连,同时兼容商品化设 备。而现有的Cluster节点和MPP节点的节点控制器设计无法满足所有需求。
技术实现思路
本专利技术的目的在于提供一种高密度多处理器系统及其节点控制器。其实现了多个 处理器的高速互连,提高多处理器系统的密度,并实现多个处理器对商品化外设的共享访 问。为实现本专利技术的目的而提供的一种高密度多处理器系统的节点控制器,包括多 个处理器端口,一个1/0端口,一个直接内存访问交叉开关模块和一个读/写交叉开关模 块,其中所述处理器端口,分为主处理器端口和从处理器端口,用于分别与主处理器和从 处理器连接,主处理器负责具体计算任务的运行,以及对外围设备的发现和初始化过程,从处理器只负责具体计算任务的运行;所述I/O端口,通过I/O总线与外围设备连接,其包括读/写模块和I/O接口模 块,所述I/O接口模块用于负责实现I/O总线根设备逻辑,所述I/O接口模块通过一窗口 寄存器记录该端口的全局地址分配,并实现系统总线包格式与I/O总线包格式间的互相转 换;所述读/写模块与所述读/写交叉开关模块连接;所述直接内存访问交叉开关模块,用于实现各所述处理器端口间直接内存访问数 据的交换;所述读/写交叉开关模块,用于实现各所述处理器端口之间,以及所述处理器端 口和I/O端口之间读/写数据的交换。所述处理器端口,包括处理器接口模块、分发模块、仲裁模块、直接内存访问模 块、读/写模块和I/O高级可编程中断控制器模块其中所述处理器接口模块,根据其所属的处理器端口连接的处理器的类型的不同,分 为主处理器接口模块和从处理器接口模块,其中所述主处理器接口模块,负责与主处理器 系统总线的挂接,包括所有总线链路层功能,主处理器接口模块通过一窗口寄存器记录该 端口的全局地址分配,并实现系统总线终端设备的配置空间和桥设备的配置空间;所述从 处理器接口模块,负责与从处理器系统总线的挂接,包括所有总线链路层功能,从处理器接 口模块通过一窗口寄存器记录该端口的全局地址分配,并实现系统总线终端设备的配置空 间;所述分发模块,用于将来自所述处理器接口模块的数据按照所属功能分发给直接 内存访问模块或读/写模块,或I/O高级中断控制器模块;所述仲裁模块,用于将来自直接内存访问模块、读/写模块和I/O高级中断控制器 模块的数据进行公平仲裁后,分时传递给所述处理器接口模块,实现多种数据在处理器接 口总线上的共享传输;所述直接内存访问模块,用于实现数据以直接内存访问方式在处理器间的传输, 所述直接内存访问模块与所述直接内存访问交叉开关模块连接;所述读/写模块,用于实现数据以读/写方式在处理器间的传输,所述读/写模块 与所述读/写交叉开关模块连接;所述I/O高级中断控制器模块,用于实现对应所述处理器端口的I/O高级中断控 制器中断控制。所述分发模块中对数据所属功能的区分通过两个途径,一方面通过设备配置空间 的基址寄存器地址窗口,另一方面为不同功能模块向系统总线申请不同的设备号,然后根 据数据所属设备号实现功能区分。所述直接内存访问模块包括下传和上传两个子模块,其中下传子模块负责接收直 接内存访问描述符,读取直接内存访问负载数据,并将数据发送至所述直接内存访问交叉 开关模块;上传子模块负责从所述直接内存访问交叉开关模块接收直接内存访问数据,并 将数据写入目标地址区域。所述读/写模块包括下传和上传两个子模块,其中下传子模块负责从所述分发模 块接收读/写请求以及读响应数据,并发送至所述读/写交叉开关模块;上传模块负责从所 述读/写交叉开关模块接收数据并发送至目的地址。8所述直接内存访问交叉开关模块为每个所述处理器端口设置两个虚通道缓冲区, 一个发送缓冲区,核心使用一个2NXN的交叉开关,N为交叉开关互连的处理器端口数目; 数据对虚通道缓冲区的选择符合如下规则目标处理器端口号为奇数的进入1号接收虚通 道缓冲区,目标处理器端口号为偶数的进入0号接收虚通道缓冲区。所述读/写交叉开关模块为每个处理器及I/O端口设置两个虚通道缓冲区,一个 发送缓冲区,核心使用一个2(N+1)X(N+1)的交叉开关,N为交叉开关互连的处理器端口数 目;数据对虚通道缓冲区的选择符合如下规则目标处理器端口号为奇数的进入1号接收 虚通道缓冲区,目标处理器端口号为偶数的进入0号接收虚通道缓冲区。为实现本专利技术的目的还提供一种所述节点控制器实现读数据传输的方法,所述方 法,包括下列步骤步骤110.源处理器端口的处理器接口模块接收源处理器发出Load指令,传递给 源处理器端口的分发模块,该分发模块通过查询基址寄存器判定该指令为读指令后,将该 读指令发送给源处理器端口的读/写模块;步骤120.所述读/写模块获取Load指令中的全局地址,然后查询节点控制器内 各端口的窗口寄存器,若没有在任何一个窗口寄存器中命中,则发送响应包至源处理器或 I/O端口,同时响应包中的状态域的错误位置位为1 ;若全局地址在窗口表中命中,则根据 窗口号生成目的端口号,并使用目的端口号替换Load请求中全局地址的高[―丨“位,使用 源窗口号替换Load请求中的携带的设备号,将Load请求发送至读/写交叉开关模块;步骤13本文档来自技高网...
【技术保护点】
一种高密度多处理器系统的节点控制器,其特征在于,所述节点控制器,包括:多个处理器端口,一个I/O端口,一个直接内存访问交叉开关模块和一个读/写交叉开关模块,其中:所述处理器端口,分为主处理器端口和从处理器端口,用于分别与主处理器和从处理器连接,主处理器负责具体计算任务的运行,以及对外围设备的发现和初始化过程,从处理器只负责具体计算任务的运行;所述I/O端口,通过I/O总线与外围设备连接,其包括:读/写模块和I/O接口模块,所述I/O接口模块用于负责实现I/O总线根设备逻辑,所述I/O接口模块通过一窗口寄存器记录该端口的全局地址分配,并实现系统总线包格式与I/O总线包格式间的互相转换;所述读/写模块与所述读/写交叉开关模块连接;所述直接内存访问交叉开关模块,用于实现各所述处理器端口间直接内存访问数据的交换;所述读/写交叉开关模块,用于实现各所述处理器端口之间,以及所述处理器端口和I/O端口之间读/写数据的交换。
【技术特征摘要】
【专利技术属性】
技术研发人员:曹政,王凯,陈飞,刘锐,胡涛,安学军,孙凝晖,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。