一种处理器系统及其访存方法

文档序号:6483668阅读:180来源:国知局
专利名称:一种处理器系统及其访存方法
技术领域
本发明涉及处理器领域,特别是涉及由多核处理器组成的处理器系统领 域,更具体地说,本发明涉及一种处理器系统及其访存方法。
背景技术
多核处理器是指在单个芯片上集成多个微处理器核的一种处理器体系结 构,可以并行地执行程序代码,在不提升处理器工作频率的情况下,降低处理 器的功耗,并获得很高的聚合性能。在这种处理器中互连结构是芯片的中枢,
处理器核、2级缓存(Cache)及输入输出(I/O)等模块通过互连结构连接构 筑成完整的芯片,并通过互连结构完成数据信息的传输交换,因此互连结构的 设计直接决定着多核处理器系统的扩展性、实现复杂度和通信效率。
与由单处理器核芯片为基础构筑的多处理器系统相比,多核处理器的互连 设计面临诸多限制。首先,多核互连结构需要在芯片上的2维环境下实现,给 芯片互连拓扑结构的选择带来制约,超立方体等多维互连结构不能直接应用于 多核处理器的片上互连。其次,在片上环境中,互连结构的走线数量和走线通 道受限于金属层数(一般为6-8层)的制约。第三,在进入纳米级工艺后,互 连线的延迟取代门延迟成为主导芯片时延的主要因素,导致模块间的全局数据 通信延迟增大。
在上述因素的影响下,传统的互连方法如总线、交叉开关、2维网格(MESH) 等难以满足多核处理器对可扩展性、效率等方面的要求。例如,总线结构需要 实现全局的仲裁机制,难以克服线延迟的影响,同时,多个模块共享总线又会 对可扩展性和效率造成影响。交叉开关虽然可以避免实现全局仲裁,但是其资 源消耗(包括走线、缓冲区等)与连接模块的数量成平方关系,不具有良好的 可扩展性。2维MESH结构是一种分布式的控制结构,虽然可以克服总线和交 叉开关的弊端,具有一定的扩展性,但是需要实现较为复杂的路由控制机制。
申请号为200810062164. 1的中国发明专利,公开了一种嵌入式异构多核体系片上通信互联组织层次的实现方法,与本发明相比,它只适用于嵌入式异
构多核的片上通信互连,具有一定的局限性;并且其采用总线互连方式,对多 核处理器的扩展性造成制约。申请号为200710103959.8的中国发明专利,公 开了一种多处理器系统,与本发明相比,它虽然也是利用了交叉开关,但并没 有实现共享二级缓存,使得在路由实现上增加了开销,通信效率较低,并且也 对多核处理器的扩展性造成制约。

发明内容
本发明的目的在于提供一种处理器系统及其访存方法,是采用二维网格 (Mesh)作为处理器系统的基本互连拓扑结构,并在Mesh网络中的每个结点 设置一个交叉开关,来实现核间的数据传输。其能够提高多核处理器系统的扩 展性,实现复杂度和通信效率。
为实现本发明的目的而提供的一种多核处理器,采用二维网格作为基本互 连拓扑结构,所述二维网格中的每个结点包括交叉开关,主设备,以及从设 备,其中
所述交叉开关,用于连接所述主设备和从设备,以及与所述二维网格中的 其他相邻结点的交叉开关互连,进行处理器核间的数据传输;
所述主设备,用于通过与所述交叉开关连接,向所述从设备主动发起读/ 写请求;
所述从设备,用于通过与所述交叉开关连接,接受所述主设备的请求并进 行数据或状态响应。
所述从设备的数据都能够被所有主设备共享。
所述交叉开关,包括至少五个主设备接口模块,和至少五个从设备接口 模块,其中
四个主设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、 北四个方向的二维网格中的其他结点互连,每个主设备接口模块包括两级内部 缓存;
其余主设备接口模块中的每一主设备接口模块,用于连接主设备,所述每 一主设备接口模块包括两级内部缓存;
四个从设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、北四个方向的二维网格中的其他结点互连,每个从设备接口模块包括两级内部
缓存;
其余从设备接口模块中的每一从设备接口模板,用于连接从设备,所述每 一从设备接口模块包括两级内部缓存。
所述主设备接口模块和所述从设备接口模块都包括五类数据传输通道,分 别是写地址通道、写数据通道、读地址通道、读数据通道和写应答通道,其中 写地址通道、写数据通道、和读地址通道由主设备发向从设备;读数据通道和 写应答通道由从设备发向主设备。
所述四个主设备接口模块和所述四个从设备接口模块空闲时,还用于连接 I/O控制器。
为实现本发明的目的还提供一种处理器系统,包括1/0总线,还包括 至少一个多核处理器和1/0控制器,其中
所述多核处理器,采用二维网格作为基本互连拓扑结构,多核处理器间通 过所述I/0总线连接,所述二维网格中的每个结点包括交叉开关,主设备, 以及从设备,其中
所述交叉开关,用于连接所述主设备和从设备,以及与所述二维网格中的 其他相邻结点的交叉开关互连,进行处理器核间的数据传输;
所述主设备,用于通过与所述交叉开关连接,向所述从设备主动发起读写 请求;
所述从设备,用于通过与所述交叉开关连接,接受所述主设备的请求并进 行数据或状态响应。
所述1/0控制器,与所述二维网格的边界结点连接,用于实现所述多核处 理器间的数据传输。
所述从设备的数据都能够被所有主设备共享。
所述交叉开关,包括至少五个主设备接口模块,和至少五个从设备接口 模块,其中
四个主设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、 北四个方向的二维网格中的其他结点互连,每个主设备接口模块包括两级内部 缓存;
其余主设备接口模块中的每一主设备接口模块,用于连接主设备,所述每
15一主设备接口模块包括两级内部缓存;
四个从设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、 北四个方向的二维网格中的其他结点互连,每个从设备接口模块包括两级内部 缓存;
其余从设备接口模块中的每一从设备接口模板,用于连接从设备,所述每 一从设备接口模块包括两级内部缓存。
所述主设备接口模块和所述从设备接口模块都包括五类数据传输通道,分 别是写地址通道、写数据通道、读地址通道、读数据通道和写应答通道,其中 写地址通道、写数据通道、和读地址通道由主设备发向从设备;读数据通道和 写应答通道由从设备发向主设备。
所述四个主设备接口模块和所述四个从设备接口模块空闲时,还用于连接 I/O控制器。
所述I/O控制器,根据所述多核处理器的二维网络中各结点在所述处理器 系统中的编号,对传输数据进行解打包操作,实现所述处理器系统中多核处理 器间的数据通信。
相应于本发明的一种多核处理器,还提供一种多核处理器的访存方法,所 述方法包括下列步骤
步骤100.构建采用二维网格作为基本互连拓扑结构的多核处理器的核间 互连结构在所述二维网格中的每个结点中设置一个的交叉开关、多个主设备 和多个从设备;将所述交叉开关与多个主设备和多个从设备连接,并与二维网 格中的其他相邻结点相连接;
步骤200.为所述多核处理器中的各种设备统一编号;
步骤300.获得物理地址与所述编号的对应关系,并根据所述物理地址与 所述编号的对应关系实现多核处理器上处理器核间的访存操作。
所述主设备,包括处理器核和/或I/O设备。
所述从设备,包括被分为与所述主设备对应的共享二级缓存模块的二级缓 存和/或1/0设备。
所述步骤IOO,包括下列步骤
步骤110.将所述交叉幵关中的四个主设备接口模块和四个从设备接口模 块分别与东、南、西、北四个方向的二维网格中其他相邻结点相连接;步骤120.将所述交叉开关中的其余主设备接口模块与所述主设备连接; 步骤130.将所述交叉开关中的其余从设备接口模块与所述从设备连接。
所述步骤200,包括下列步骤
步骤210.根据所述结点在二维网格中的位置,为所述多核处理器中的结 点分配结点编号;
步骤220.为所述结点内的交叉开关的主设备接口模块和从设备接口模块 分配结点内接口编号;
步骤230.为所述结点内的与交叉开关连接的主/从设备分配全局编号。
所述全局编号,是根据所述结点编号与所述结点内接口编号组合拼接而 成,用于决定请求的路由。
步骤200中,在为各种设备统一编号时,为所述多核处理器的各个结点中 包含的二级缓存统一编址,每个二级缓存对应一个宿主结点,并在宿主结点处 维护共享二级缓存模块的目录。
所述歩骤300,包括下列步骤
步骤310.按照固定映射或软件配置的方式获得物理地址与所述编号的对 应关系;
步骤320.根据所述物理地址与所述编号的对应关系,实现多核处理器上 处理器核的访存操作。
所述步骤310,包括下列步骤
步骤311.判断软件是否对物理地址进行过配置,若有,则进入步骤312;
否则,进入步骤313;
步骤312.按照软件配置方式获得物理地址与所述编号的对应关系; 步骤313.按照固定映射的方式获得物理地址与所述编号的对应关系。 所述软件配置方式,是指用户通过设置在所述交叉开关内部的基址、掩码、
编号三个寄存器,配置所述物理地址空间与从设备或方向接口的编号的对应关
系,进行地址匹配;通过设置在所述交叉开关内部的属性寄存器进行属性匹配。 所述固定映射方式,是指芯片出厂时默认根据从设备和东、西、南、北四
个方向主/从接口的编号,将其编号直接映射到相应物理地址上。 所述步骤320,包括下列步骤
步骤321.主设备根据配置地址窗口或固定路由表决定发送所述读/写请
17求的路由路径,通过交叉开关向从设备发送读/写请求;
步骤322.所述从设备接收到所述读/写请求后,按照发来所述读/写请求 的路径进行路由,通过交叉开关向所述主设备返回读/写应答。
所述步骤321,包括下列步骤
步骤3211.判断所述从设备是否与所述主设备位于同一结点内,若是,则 进入步骤3212;否则,进入步骤3213;
步骤3212.根据配置地址窗口或固定路由表,决定发送所述读/写请求的 路由路径,将所述读/写请求发送到与所述从设备连接的CSL模块后将读/写请 求放入请求队列发送给相应CSL模块,送往与之相连的从设备;
步骤3213.根据配置地址窗口或固定路由表,确定所述从设备所在的结点 的结点编号,决定发送所述读/写请求的路由路径,将所述读/写请求转发到与 所述从设备连接的CSL模块后将读/写请求放入请求队列发送给相应CSL模块,
送往与之相连的从设备。
所述步骤322,包括下列步骤
步骤3221.与所述从设备相连接的CSL模块收到从设备发出的读/写应答 后先缓存一拍;
步骤3222.所述CSL模块在下一拍根据应答信号中的相应发出读/写请求 的主设备的编号确定主设备后,按照发来所述读/写请求的路径进行路由,反 向传输所述读/写应答传输到与所述主设备相连接的交叉开关的CML模块仲 裁;
步骤3223.所述CML模块对来自不同CSL模块的应答进行仲裁,仲裁后对 读/写应答缓存一拍,并在下一拍送往相应主设备。 所述步骤3212,包括下列步骤
步骤3212 (a).所述主设备将要发送的读/写请求发送到与之相连的交叉 开关的CML模块;
步骤3212 (b).所述交叉开关的CML模块收到数据后先缓存一拍,并在 下一拍根据配置地址窗口或固定路由表决定与从设备连接的CSL模块后进入 请求队列发送给相应CSL模块;
步骤3212 (c).所述CSL模块对来自不同CML模块的请求进行仲裁,仲 裁后对请求进行缓存,并在下一拍送往与之相连的从设备。所述步骤3213,包括下列步骤
步骤3213 (a).根据所述从设备所在的结点的结点编号,决定需要转发 的方向接口 ,所述主设备发送所述读/写请求到所述方向接口并通过与所述方 向接口连接的CML模块将所述读/写请求转发到转发结点;
步骤3213 (b).转发结点通过与转发结点的方向接口连接的CML模块接 收所述读/写请求,并判断所述转发结点是否是所述从设备所在的结点,若是, 则执行步骤3212;否则,返回步骤3213 (a)。
所述步骤3213 (a),包括下列步骤
步骤3213 (al).所述主设备将要发送的读/写请求发送到与之相连的交 叉开关的CML模块;
步骤3213 U2).所述交叉开关的CML模块收到读/写请求后先缓存一拍, 并在下一拍根据配置地址窗口或固定路由表决定所述转发的方向接口,将读/ 写请求发送给与所述转发方向接口相连接的CML模块;
步骤3213 (a3).所述CML模块对来自不同CML模块的请求进行仲裁,仲
裁后对请求进行缓存,并在下一拍送往与之相连的方向接口 。
步骤3222中,所述反向传输的过程中,在每一个CML模块和CSL模块处
均需要经过两级缓存,先缓存一拍,并在下一拍将所述读/写应答传输出去。 相应于本发明的一种处理器系统,还提供一种处理器系统的访存方法,所
述方法包括下列步骤
步骤100,.构建采用二维网格作为基本互连拓扑结构的处理器系统在
所述二维网格中的每个结点中设置一个交叉开关、多个主设备和多个从设备;
将所述交叉开关与多个主设备和多个从设备连接,并与二维网格中的其他相邻
结点相连接;在所述处理器系统中的多核处理器的二维网格的边界结点连接
I/O控制器,多核处理器之间通过I/O总线连接;
步骤200'.为所述处理器系统中的各种设备统一编号;
歩骤300,.获得物理地址与所述编号的对应关系,并根据所述物理地址
与所述编号的对应关系实现处理器系统中处理器核的访存操作。
所述主设备,包括处理器核和/或i/o设备。
所述从设备,包括被分为与所述主设备对应的共享二级缓存模块的二级缓 存和/或1/0设备。
19所述步骤100',包括下列步骤
步骤110,.将所述交叉开关的四个主设备接口模块和四个从设备接口模
块分别与东、南、西、北四个方向的二维网格中其他相邻结点相连接;
步骤120,.将所述边界结点上空闲的连接东、南、西、北四个方向的主
设备接口模块和从设备接口模块与I/O控制器连接;
步骤130'.将所述交叉开关的其余主设备接口模块与所述主设备连接; 步骤140'.将所述交叉开关的其余从设备接口模块与所述从设备连接; 步骤150,.将所述处理器系统中的多核处理器之间通过I/O总线连接。 所述步骤200',包括下列步骤
步骤210'.根据所述多核处理器在处理器系统中的位置,为所述多核处 理器分配多核处理器编号;
步骤220'.根据所述多核处理器内的结点在二维网格中的位置,为所述 结点分配结点编号;
步骤230'.为所述多核处理器内的结点的交叉开关的主设备接口模块和 从设备接口模块分配结点内接口编号;
步骤240'.为所述多核处理器内的结点内的与交叉开关连接的主/从设 备分配全局编号。
所述全局编号,是根据所述多核处理器编号、所述结点编号以及所述结点 内接口编号组合拼接而成,用于决定请求的路由。
步骤200'中,在统一编号时,所述处理器系统中的多核处理器的各个结 点中包含的二级缓存统一编址,每个二级缓存对应一个宿主结点,并在宿主结 点处维护共享二级缓存模块的目录。
所述歩骤300',包括下列步骤
步骤310'.按照固定映射或软件配置的方式获得物理地址与所述编号的 对应关系;
步骤320'.根据所述物理地址与所述编号的对应关系,通过所述I/0控 制器和1/0总线实现处理器系统中处理器核的访存操作。 所述歩骤310',包括下列步骤
歩骤311'.判断软件是否对物理地址进行过配置,若有,则进入歩骤 312,;否则,进入步骤313';步骤312'.按照软件配置方式获得物理地址与所述编号的对应关系; 步骤313'.按照固定映射的方式获得物理地址与所述编号的对应关系。 所述软件配置方式,是指用户通过设置在所述交叉开关内部的基址、掩码、 编号三个寄存器,配置所述物理地址空间与从设备或方向接口的编号的对应关 系,进行地址匹配;通过设置在所述交叉开关内部的属性寄存器进行属性匹配。 所述固定映射方式,是指芯片出厂时默认根据从设备和东、西、南、北四 个方向主/从接口的编号,将其编号直接映射到相应物理地址上。 所述歩骤320',包括下列步骤
步骤321'.所述主设备根据配置地址窗口或固定路由表,决定发送读/写 请求的路由路径,向从设备发送读/写请求;
步骤322'.所述从设备接收到所述读/写请求后,按照发来所述读/写请 求的路由路径,向所述主设备返回读/写应答。
所述步骤321',包括下列步骤
步骤3211,.判断所述从设备是否与所述主设备位于同一多核处理器内, 若是,则进入步骤3212,;否则,进入步骤3215';
歩骤3212'.判断所述从设备是否与所述主设备位于同一结点内,若是, 则进入步骤3213,;否则,进入歩骤3214';
步骤3213'.根据配置地址窗口或固定路由表,决定发送所述读/写请求 的路由路径,将所述读/写请求发送到与所述从设备连接的CSL模块后将读/ 写请求放入请求队列;
步骤3214'.根据配置地址窗口或固定路由表,确定所述从设备所在的结 点的结点编号,决定发送所述读/写请求的路由路径,将所述读/写请求转发到 与所述从设备连接的CSL模块后将读/写请求放入请求队列发送给相应CSL模 块;
步骤3215'.根据配置地址窗口或固定路由表,确定所述从设备所在的多 核处理器的编号,决定发送所述读/写请求的路由路径,通过I/O控制器将所 述读/写请求转发到与所述从设备连接的CSL模块后将读/写请求放入请求队 列发送给相应CSL模块。
所述歩骤3213',包括下列步骤
步骤3213' (a).所述主设备将要发送的读/写请求发送到与之相连的交叉开关的CML模块;
步骤3213' (b).所述交叉开关的CML模块收到数据后先缓存一拍,并 在下一拍根据配置地址窗口或固定路由表决定与从设备或方向接口连接的 CSL模块后进入请求队列发送给相应CSL模块;
步骤3213, (c).所述CSL模块对来自不同CML模块的请求进行仲裁, 仲裁后对请求进行缓存,并在下一拍送往与之相连的从设备。
所述歩骤3214,,包括下列步骤
步骤3214' (a).根据所述从设备所在的结点的结点编号,决定需要转 发的方向接口,并通过与所述转发的方向接口连接的CML模块将所述读/写请 求转发到转发结点;
步骤3214' (b).转发结点通过与转发结点的方向接口连接的CML模块 接收所述读/写请求,并判断所述转发结点是否是所述从设备所在的结点,若 是,则执行步骤3213,;否则,执行歩骤3214, (a)。
所述歩骤3214, (a),包括下列步骤
步骤3214' (al).所述主设备将要发送的读/写请求发送到与之相连的 交叉开关的CML模块;
歩骤3214, (a2).所述交叉开关的CML模块收到读/写请求后先缓存一 拍,并在下一拍根据配置地址窗口或固定路由表决定所述转发的方向接口,将 读/写请求发送给与所述转发方向接口相连接的CML模块;
步骤3214, (a3).所述CML模块对来自不同CML模块的请求进行仲裁, 仲裁后对请求进行缓存,并在下一拍送往与之相连的方向接口 。
所述步骤3215',包括下列步骤
步骤3215' (a).所述主设备根据所述从设备的全局编号确定所述从设 备所在的结点的结点编号,再根据结点编号确定所述从设备所在的多核处理器 的编号;
步骤3215' (b).所述主设备所在的多核处理器按照数据传输协议格式 将所述读/写请求通过所述主设备所在多核处理器的边界结点的I/O控制器打 包成数据包,并根据所述从设备所在的多核处理器的编号将所述数据包发送给 转发多核处理器;
步骤3215, (c).转发多核处理器通过其边界结点的I/O控制器对数据
22包进行解包操作得到读/写请求,并判断所述转发多核处理器是否是所述从设
备所在的多核处理器,若是,则执行步骤3212' ~3214';否则执行步骤3215, (b)。
所述步骤3215, (b),包括下列步骤
步骤3215' (bl).判断所述主设备发送的读/写请求是否需要经过转发 结点才能到达希望转发的边界结点,若是,则执行步骤3214';否则,执行 步骤3215' (b2);
步骤3215' (b2).通过所述边界结点的I/O控制器打包成数据包,并根 据所述从设备所在的多核处理器的编号将所述数据包发送给转发多核处理器。
所述步骤322',包括下列歩骤
步骤3221'.与所述从设备相连接的CSL模块收到从设备发出的读/写应 答后先缓存一拍;
步骤3222'.并在下一拍根据应答信号中的相应发出读/写请求的主设备
的编号确定主设备后,按照发来所述读/写请求的路径进行路由,反向传输所 述读/写应答传输到与所述主设备相连接的交叉开关的CML模块仲裁;
步骤3223'.所述CML模块对来自不同CSL模块的应答进行仲裁,仲裁后 对读/写应答缓存一拍,并在下一拍送往相应主设备。
步骤3222'中,所述反向传输的过程中,在每一个CML模块和CSL模块 处均需要经过两级缓存,先缓存一拍,并在下一拍将所述读/写应答传输出去。
本发明的有益效果在于
1. 本发明将交叉开关与Mesh网络结构相结合,实现了多核处理器的可扩 展性;
2. 本发明中通过处理器核间共享二级Cache,实现了并行访问的同时降低 了访问延时;
3. 本发明中通过在交叉开关内部包含四级缓存,使得数据通道能够全流水 地传输和交换数据。


图1A是本发明一种多核处理器的结构示意图lB是本发明的多核处理器基于二维Mesh的互连结构的扩展图;图2是本发明中交叉开关的结构示意图; 图3是本发明中单结点实施例的结构示意图; 图4是本发明一种多核处理器的访存方法的流程图; 图5是本发明中构建多核处理器的核间互连结构的流程图; 图6是本发明中为多核处理器中为各模块统一编号的流程图; 图7是本发明中获得物理地址与所述编号的对应关系的流程图; 图8是本发明中按照固定映射方式得到的物理地址与编号的映射关系示 意图9是本发明中多核处理器上处理器核进行访存操作的流程图10是本发明多核处理器中主设备向从设备发送读/写请求的流程图11是本发明的多核处理器中从设备向主设备返回读/写应答的流程图12是本发明一种处理器系统的结构示意图13A、图13B和图13C是本发明中多处理器互连的扩展图14是本发明一种处理器系统的访存方法的流程图15是本发明中构建多核处理器的核间互连结构的流程图16是本发明中为处理器系统中的设备统一编址的流程图17是本发明中获得物理地址与所述编号的对应关系的方法流程图18是本发明中实现处理器系统中处理器核的访存操作的流程图19是本发明中主设备向从设备发送发送读/写请求的流程图20是本发明中从设备向主设备返回读/写应答的流程图21是本发明的处理器系统上访存操作的实施例的示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的一种处理器系统及其访存方法进行进一步详细说明。应当理 解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的一种处理器系统及其访存方法,应用于多核处理器,所述多核处 理器是采用二维网格(Mesh)作为处理器系统的基本互连拓扑结构,并在Mesh 网络中的每个结点设置一个交叉开关,来实现核间的数据传输。其能够提高多 核处理器系统的扩展性,实现复杂度和通信效率。下面结合上述目标详细介绍本发明的一种多核处理器,图1A是本发明一
种多核处理器的结构示意图,图IB是本发明的多核处理器基于二维Mesh的互 连结构的扩展图,如图1A和图IB所示,多核处理器采用可扩展的二维网格 (MESH)作为多核处理器的基本互连拓扑结构,所述MASH网络中的每个结点 包括交叉开关l,主设备2,以及从设备3,其中
所述交叉开关1,用于连接所述主设备和从设备,以及与所述MASH网络 中的其他结点互连,进行核间的数据传输;
所述主设备2,用于通过与所述交叉开关连接,向所述从设备主动发起读 写请求;
所述从设备3,用于通过与所述交叉开关连接,接受所述主设备的请求并 进行数据或状态响应。
按照多核处理器中各设备的功能可以分为主和从两类。主设备是指能够主 动发起读写请求的设备,例如处理器核,外设组件互连标准(Peripheral Component Interconnection, PCI)、超传输总线(Hyper Transport, HT)等 1/0控制器;从设备是指能够接受主模块的请求并进行数据或状态响应的设 备,例如二级Cache, PCI、 HT等I/0控制器。
每一个所述从设备都被片内的所有主设备共享,可以被并行访问,降低了 访问延时。
较佳地,所述处理器核,可以选择不同应用需求的处理器核,可以是64 位的龙芯通用处理器核,也可以是专用的计算型处理器核,通过配置不同的核 可满足不同的应用需求。
图2是本发明中交叉开关的结构示意图,如图2所示,所述交叉开关l, 包括至少5个主设备接口 (Crossbar-Master-Link, CML)模块ll,和至少 5个从设备接口 (Crossbar-Slave-Link, CSL)模块12,其中 至少一个CML模块ll,包括两级内部缓存,用于连接主设备; 四个CML模块ll,包括两级内部缓存,用于分别与交叉开关所在结点的 东南西北四个方向的Mesh网络中其他结点互连;
至少一个CSL模块12,包括两级内部缓存,用于连接从设备; 四个CSL模块12,包括两级内部缓存,用于分别与交叉开关所在结点的 东南西北四个方向的Mesh网络中其他结点互连。所述交叉开关的每个CML模块和CSL模块包括5类数据传输通道,分别是 写地址通道(AW)、写数据通道(W)、读地址通道(AR)、读数据通道(R)、 写应答通道(B)。其中AW、 W、 AR由主设备发向从设备,称为主通道;剩余 的R、 B由从设备发向主设备,称为从通道。
考虑到主/从设备与交叉开关的连线较长,连线的延迟将大大超过交叉开 关的逻辑本身的延迟,本发明在交叉开关内部包含四级缓存,每个CML模块或 CSL模块都包含两级缓存,使得数据通道能够全流水地传输和交换数据。
在边界结点上,空闲的用于连接东南西北四个方向的MASH网络中其他结 点的CML/CSL模块还可以用于连接其它功能模块,PCI、 HT等IO控制器模块 可以从这些空闲模块接入到多核处理器中。
作为一种可实施方式,由于I/0控制器可能同时包括主从功能,因此在连 接上需要同时占用一个CML模块和一个CSL模块。
CML模块从主设备收到请求后先缓存一拍,并在下一拍将请求发送给相应 CSL模块;CSL模块对来自不同CML模块的请求进行仲裁,仲裁后对请求缓存 一拍,并在下一拍送往与CSL模块连接的从设备;CSL模块收到从设备发来的 应答后先缓存一拍,然后在下一拍送到CML模块仲裁;CML模块对来自不同CSL 模块的应答进行仲裁,仲裁后对应答缓存一拍,并在下一拍送往与CML模块连 接的主设备,以此实现多核处理器内部的数据传输。
图3是本发明中单结点实施例的结构示意图,如图3所示,较佳地,作为 一种可实施方式,本发明的多核处理器采用可扩展的二维Mesh互连结构,Mesh 互连结构中包含多个结点,每个结点又包括 一个8*8交叉开关,四个处理器 核Cl、 C2、 C3和C4,和被分为四个体的共享二级缓存(Cache)。所述四个 处理器核分别连接交叉开关的4个CML模块,被分为四个体的共享二级Cache 分别连接交叉开关的4个CSL模块,交叉开关的其余4个CML模块和4个CSL 模块分别与东(E)南(S)西(W)北(N)四个方向的MASH网络中其他结点 互连。
相应于本发明的一种多核处理器,还提供所述一种多核处理器的访存方法。
图4是本发明一种多核处理器的访存方法的流程图,如图4所示,所述方
法,包括下列步骤
26步骤100.构建采用二维网格作为基本互连拓扑结构的多核处理器的核间 互连结构;
图5是本发明中构建多核处理器的核间互连结构的流程图,如图5所示, 所述步骤100,包括下列步骤
步骤110.在所述二维网格中的每个结点中设置一个的交叉开关、多个主 设备和多个从设备;
步骤120.将所述交叉开关与多个主设备和多个从设备连接,并与Mesh网
络中的其他结点互连;
所述步骤120,进一歩包括下列步骤
步骤121.将所述交叉开关的4个主设备接口模块和4个从设备接口模块 分别与东(E)南(S)西(W)北(N)四个方向的Mesh网络中其他相邻结点 互连;
步骤122.将所述交叉开关的其余主设备接口模块与所述结点中的主设备 连接;
步骤123.将所述交叉开关的其余从设备接口模块与所述结点中的从设备 连接;
较佳地,作为一种可实施方式,所述方法中,假设主设备为处理器核,从 设备是二级Cache,交叉开关为8*8的交叉开关,那么将四个处理器核分别连 接交叉开关的4个CML模块,将二级Cache分为四个模块,分别连接交叉开关 的4个CSL模块,四个模块共享此二级Cache,交叉开关的其余4个CML模块 和4个CSL模块分别与东(E)南(S)西(W)北(N)四个方向的Mesh网络 中其他结点互连。
若交叉开关选择9*9的交叉开关,那么将有5个CML模块和5个CSL模块 用于连接主从设备,但仍然是必须留出4个CML模块和4个CSL模块分别与东 (E)南(S)西(W)北(N)四个方向的MASH网络中其他结点互连。这也是 本发明的巧妙之处,与现有技术相比,利用与相邻结点的连接,实现了多核处 理器的核间通信,同时还不会增加单个交叉开关的工作量,简化了路由算法。
本发明中二级Cache分布在不同的结点中,被多核处理器内的所有处理器 核共享。针对结点中含有四个处理器核的情况,每个结点的二级Cache根据地 址分成交叉存取的四个模块,可以被并行访问。即结点中有多少个处理器核就应当将二级Cache分成可并行访问的多少个模块。步骤200.为多核处理器中的各种设备统一编号;
本发明的多核处理器采用固定的X-Y路由算法,点到点的路由是固定的,即先横向后纵向的传输方式。为了实现简单高效的X-Y路由算法,逻辑上需要根据设备所在的接口模块位置来确定路由。在本发明中,每个结点被分配一个全局结点编号,由系统结点的规模来确定结点编号的宽度。每个结点内交叉开关的CML模块和CSL模块独立编号,每个CML模块/CSL模块可对应一个结点内主/从编号。在路由实现时,与交叉开关的接口模块相连的设备都会分配一个全局编号,该编号由结点编号与结点内接口编号组合拼接而成,用于决定请求的路由。
图6是本发明中为多核处理器中为各模块统一编号的流程图,如图6所示,所述步骤200,包括下列歩骤
歩骤210.根据所述结点在二维网格中的位置,为多核处理器中的结点分配结点编号;
所述结点编号由结点在Mesh网络的位置决定。第一排左边第一个结点编号为0,相邻右边结点编号为1,以此类推,直到第一排结点全部被编号,则进入第二排,若第一排最右边的结点编号为n,则第二排左边第一个结点的编号为n+l,以此规律将Mesh网络中的所有结点编号。
上述编号均是以十进制表示,但在路由实现时,则以二进制表示,二进制的位数由Mesh网络中结点的个数决定。4个结点,则以2位二进制数表示,8个结点则以3位二进制数表示。
作为一种可实施方式,以4个结点为例,按照2X2的Mesh方式进行排列,上面一排左边结点编号为O (二进制表示为OO),右边结点编号为l (二进制表示为01),下面一排左边结点编号为2 (二进制表示为10),右边结点编号为3 (二进制表示为11)。
步骤220.为所述结点内的交叉开关的CML模块和CSL模块分配结点内接口编号;
Mesh网络中每个结点包括了一个交叉开关,每个交叉开关上有多个CML模块和多个CSL模块,每个模块都固定对应一个本结点内的编号,CML模块和CSL模块的编号独立。
28作为一种可实施方式,以8*8的交叉开关为例,如图3所示,交叉开关内 的8个CML模块编号依次为0 7; 8个CSL模块编号依次为0 7。其中CML0、 CML1、 CML2、 CML3分别连接4个处理器核,CSL0、 CSL1、 CSL2、 CSL3分别连 接被分为4个模块的共享二级Cache;东、西、南、北四个方向接口分别对应 CML4、 CSL4, CML5、 CSL5, CML6、 CSL6, CML7、 CSL7 (分主与从)。
同理,上述编号均是以十进制表示,但在路由实现时,则以二进制表示, 二进制的位数由交叉开关的接口模块的个数决定。8个接口模块,则以3位二 进制数表示。即CML0的编号为000, CML1的编号为001, CML2的编号为010, CML3的编号为011, CML4的编号为100, CML5的编号为101, CML6的编号为 110, CML7的编号为111。
步骤230.为所述结点内的与交叉开关连接的主/从设备分配全局编号。
在路由实现时,与交叉开关的接口模块相连的主/从设备都会被分配一个 全局编号,该编号由结点编号与结点内接口编号组合拼接而成,用于决定请求 的路由。
在编址过程中,所有结点中包含的二级Cache统一编址,每个二级Cache 对应一个宿主结点,并在宿主结点处维护共享相应二级Cache的模块的目录。
作为一种可实施方式,以结点编号为1 (01)的结点为例,4个处理器核 分别对应全局编号8 (01-000) 、 9 (01-001) 、 10 (01-010)和11 (01-011); 共享二级Cache的4个模块分别对应从编号8 (01-000) 、 9 (01-001) 、 10 ((U-OIO)和ll (01-011);东、西、南、北4个方向主/从接口分别对应全 局编号12 (01-100) 、 13 (01-101) 、 14 (01-110)和15 (01-111)。
步骤300.获得物理地址与所述编号的对应关系,并根据所述物理地址与 所述编号的对应关系实现多核处理器上处理器核的访存操作。
步骤310.按照固定映射或软件配置的方式获得物理地址与所述编号的对 应关系;
图7是本发明中获得物理地址与所述编号的对应关系的流程图,如图7 所示,所述步骤310,包括下列步骤
步骤311.判断软件是否对物理地址进行过配置,若有,则进入步骤312; 否则,进入步骤313;
步骤312.按照软件配置方式获得物理地址与所述编号的对应关系;所述软件配置方式,是指用户可以通过软件来设置某段物理地址空间对应 的编号。所述物理地址空间对应的编号由所述交叉开关内的基址、掩码、编号、 属性四个寄存器进行管理配置
所述基址寄存器,以2的幂次大小对齐,用于标示某段地址空间的基地址;
所述掩码寄存器,采用类似网络掩码高位为1的格式,用于标示所述某段 地址空间的大小;
所述编号寄存器,用于配置对应从设备或方向接口的编号;
所述属性寄存器,由3位组成,分别表示该段地址空间是否允许取指,是
否允许块读,窗口是否使能。其中,第o位表示该配置窗口是否被激活,第l
位表示是否可以进行取指令操作,第2位表示是否允许块访问。 地址匹配公式为"(地址&掩码)二=基址"。
用户通过基址、掩码、编号三个寄存器,配置物理地址空间与从设备或方 向接口的编号的对应关系,进行地址匹配;通过属性寄存器进行属性匹配,只 有当地址匹配和属性匹配同时符合才认为该窗口命中匹配,若有其一不符合, 则窗口没有命中,即表示软件没有对该地址进行过配置,则采用缺省的固定映 射方式。
本发明的多核处理器缺省采用固定映射方式,在上电启动时,配置寄存器 都处于未激活状态,使用时需要使用软件对其进行配置。
步骤313.按照固定映射的方式获得物理地址与所述编号的对应关系。
所述固定映射方式,是指芯片出厂时默认根据从设备和东、西、南、北四 个方向主/从接口的编号,将其编号直接映射到相应物理地址上。
图8是本发明中按照固定映射方式得到的物理地址与编号的映射关系示 意图。
作为一种可实施方式,如图8所示,以16位物理地址和4个结点为例, 16位物理地址的高2位[15:14]对应结点的结点编号,其中物理地址[15:14] 位为0、 1、 2、 3分别对应结点0、 1、 2、 3,每个结点拥有固定的14位地址 空间;在结点内14位的地址空间的高3位(以8*8的交叉开关为例,因此需 要3位表示)[13:11]对应结点内接口编号,其中东、南、西、北四个方向接 口,其地址的[13:11]为4、 5、 6、 7的4个11位物理地址分别对应东、南、 西、北四个方向接口;而地址[13:11]为0、 1、 2、 3的4个11位物理地址则由4个二级Cache共享。那么按照固定映射关系得到的结点编号为1的结点内, 结点内接口编号为7的方向接口对应到物理空间上的物理地址为 01111***********;同理,按照固定映射关系得到的结点编号为1的结点内,
结点内接口编号为3的二级共享Cache模块对应到物理空间上的物理地址为 01011氺氺氺氺氺氺氺氺氺氺氺。
较佳地,不同于方向接口的映射关系,可以根据实际应用的访问行为,来 决定二级Cache的交叉组成方式。4个11位物理地址与4个二级共享Cache
模块的对应关系还可以根据系统的配置参数进行实时配置,运行时由配置参数 来决定地址的哪几位对应的所述二级共享Cache模块的编号。举例来说,若在 实际应用访问时需要占用物理地址[13:11]位的地址空间,或者物理地址 [13:11]位的地址空间损坏,那么可以使用物理地址的任意三位(例如[10: 8]) 对应所述二级共享Cache模块的编号。
步骤320.根据所述物理地址与所述编号的对应关系,实现多核处理器上 处理器核的访存操作。
本发明中以交叉开关为基础的多核处理器包括5类数据传输通道,分别是 写地址通道(AW)、写数据通道(W)、读地址通道(AR)、读数据通道(R)、 写应答通道(B)。其中AW、 W、 AR由主设备发向从设备,称为主通道;剩余 的R、 B由从设备发向主设备,称为从通道。主通道的数据类型主要包括读写 请求、 一致性维护和一致性应答,数据包中包含了地址信息,路由选择根据访 问地址进行。从通道的数据类型主要包括读写应答、 一致性维护命令等,数据 包中包含了目标主设备的编号,路由选择根据目标编号进行。
图9是本发明中多核处理器上处理器核进行访存操作的流程图,如图9 所示,所述步骤320,包括下列步骤
步骤321.主设备根据配置地址窗口或固定路由表决定发送所述读/写请 求的路由路径,通过交叉开关向从设备发送读/写请求;
图10是本发明多核处理器中主设备向从设备发送读/写请求的流程图;如 图10所示,所述步骤321,包括下列步骤
步骤3211.判断所述从设备是否与所述主设备位于同一结点内,若是,则 进入步骤3212;否则,进入步骤3213;
步骤3212.根据配置地址窗口或固定路由表,决定发送所述读/写请求的步骤3212 (a).所述主设备将要发送的读/写请求发送到与之相连的交叉 开关的CML模块;
步骤3212 (b).所述交叉开关的CML模块收到数据后先缓存一拍,并在 下一拍根据配置地址窗口或固定路由表决定与从设备连接的CSL模块后进入 请求队列发送给相应CSL模块;
步骤3212 (c).所述CSL模块对来自不同CML模块的请求进行仲裁,仲 裁后对请求进行缓存,并在下一拍送往与之相连的从设备。
步骤3213.根据配置地址窗口或固定路由表,确定所述从设备所在的结点 的结点编号,决定发送所述读/写请求的路由路径,将所述读/写请求转发到与 所述从设备连接的CSL模块后将读/写请求放入请求队列发送给相应CSL模块,
送往与之相连的从设备-,
所述步骤3213,包括下列步骤
步骤3213 (a).根据所述从设备所在的结点的结点编号,决定需要转发 的方向接口,所述主设备发送所述读/写请求到所述方向接口并通过与所述方 向接口连接的CML模块将所述读/写请求转发到转发结点;
所述步骤3213 (a),包括下列步骤
步骤3213 (al).所述主设备将要发送的读/写请求发送到与之相连的交 叉开关的CML模块;
步骤3213 (a2).所述交叉开关的CML模块收到读/写请求后先缓存一拍, 并在下一拍根据配置地址窗口或固定路由表决定所述转发的方向接口,将读/ 写请求发送给与所述转发方向接口相连接的CML模块;
步骤3213 (a3).所述CML模块对来自不同CML模块的请求进行仲裁,仲 裁后对请求进行缓存,并在下一拍送往与之相连的方向接口。
步骤3213 (b).转发结点通过与转发结点的方向接口连接的CML模块接
收所述读/写请求,并判断所述转发结点是否是所述从设备所在的结点,若是, 则执行步骤3212;否则,返回歩骤3213 (a)。
作为一种可实施方式,按照上面的假设,对于向落在本地结点地址范围内
32的访问,若地址的[13]位为0时,则判断访问目标是二级Cache共享模块,再 根据配置参数或固定路由表确定由地址的[12][11]位来决定与目标二级 Cache共享模块相连接的CSL模块;若地址[13]为1,则判断访问目标是连接 在方向接口的功能模块,贝l油地址[12][ll]位来决定目标方向接口。
对于不在本地结点地址范围内的访问,根据目标结点号和本地结点号按照
X-Y路由的顺序,决定需要转发的接口号。当需要由位于西北方向的O号结点 传递到位于东南方向的3号结点时,需要通过位于0号结点的4号接口 (即东 面方向接口)将其转发到位于0号结点东面的1号结点,1号结点从其6号接 口 (即西面方向接口)接受到数据包后,继续进行下次转发判断;转发对应l 号结点的4号接口 (即东面方向接口)。
步骤322.所述从设备接收到所述读/写请求后,按照发来所述读/写请求 的路径进行路由,通过交叉开关向所述主设备返回读/写应答。
图11是本发明的多核处理器中从设备向主设备返回读/写应答的流程图, 如图11所示,所述步骤322,包括下列步骤
步骤3221.与所述从设备相连接的CSL模块收到从设备发出的读/写应答 后先缓存一拍;
步骤3222.所述CSL模块在下一拍根据应答信号中的相应发出读/写请求 的主设备的编号确定主设备后,按照发来所述读/写请求的路径进行路由,反 向传输所述读/写应答到与所述主设备相连接的交叉开关的CML模块仲裁;
所述反向传输的过程中,在每一个CML模块和CSL模块处均需要经过两级 缓存,先缓存一拍,并在下一拍将所述读/写应答传输出去。
本步骤中,返回读/写应答的路径与发出的读/写请求的路径一致,但是因 为主从通道是分离的,所以返回读/写应答还是要进行路由。
步骤3223.所述CML模块对来自不同CSL模块的应答进行仲裁,仲裁后对 读/写应答缓存一拍,并在下一拍送往相应主设备。
相对于主通道,从通道(R, B)信号处理比较直接,目标编号直接由slave 通道中标示目标主模块的RID与BID信号决定,不需要进行复杂的转换,按照 固定X-Y路由判断其需要发送的本地端口号即可。
本发明还提供一种处理器系统,其通过I/0链路间的数据转换传输,多核 处理器间可以继续以统一的网格(Mesh)结构形式组成一个大规模处理器系统,实现大规模处理器系统的数据传输。
图12是本发明一种处理器系统的结构示意图,图13A、图13B和图13C 是本发明中多处理器互连的扩展图,如图12、图13A、图13B和图13C所述, 所述处理器系统,包括1/0总线3,,其特征在于,还包括至少一个多核 处理器r禾口V0控制器2',其中
所述多核处理器r ,采用可扩展的二维网格作为多核处理器的基本互连
拓扑结构,通过所述I/0总线3'互连;
所述I/0控制器2',与所述二维网格的边界结点连接,根据多核处理器
的所述二维网络中各结点在处理器系统中的编号,将读/写请求进行解打包操 作后转发,实现处理器系统上处理器核的访存操作。
所述多核处理器l'的结构,己经在上述文字中作了详细说明,在此不再
一一赘述。多核处理器间通过i/o总线连接构成处理器系统,主设备所在的多
核处理器的I/O控制器将读/写请求打包成符合I/O总线数据格式的数据包, 通过I/O总线传输给从设备所在的多核处理器,从设备所在的多核处理器的 1/0控制器接收来自1/0总线的数据包,并对该数据包进行解包操作,将解包 得到的读/写请求传输给从设备。
较佳地,作为一种可实施方式,如图13C所述,假设多核处理器内采用 2*2的Mesh结构,4个多核处理器共同组成一个以4*4的Mesh网络为结构形 式的处理器系统。4个多核处理器分别接受编号参数为0 (二进制表示为00)、 1 (二进制表示为01) 、 2 (二进制表示为10) 、 3 (二进制表示为11)。以 此判断,O号多核处理器内4个结点编号分别为0 (二进制表示为00-00) 、 1 (二进制表示为00-01) 、 2 (二进制表示为00-10) 、 3 (二进制表示为00-11); l号多核处理器的4个结点编号分别为4 (二进制表示为01-00) 、 5 (二进制 表示为01-01) 、 6 (二进制表示为01-10) 、 7 (二进制表示为01-11) ; 2 号多核处理器的4个结点编号分别为8 (二进制表示为10-00) 、 9 (二进制表 示为10-01) 、 10 (二进制表示为10-10) 、 11 (二进制表示为10-11) ; 3 号多核处理器的4个结点编号分别为12 (二进制表示为11-00) 、 13 (二进制 表示为11-01) 、 14 (二进制表示为11-10) 、 15 (二进制表示为11-11)。 在路由时,交叉开关依然采用普通的与4*4mesh结构的多核处理器的路由方式 相同的路由方式,当读/写请求到达边界的I/0控制器时,由I/0控制器将读/写请求打包编码为I/O总线数据格式的数据包,沿I/O总线发送至相邻多核处 理器。相邻多核处理器的I/O控制器接收到数据包后,将包含读/写请求的数 据包解包为多核处理器内部的数据传输格式,继续进行路由发送。
相应于本发明的一种处理器系统,还提供一种处理器系统的访存方法。
图14是本发明一种处理器系统的访存方法的流程图,如图14所示,所述
处理器系统的访存方法,包括下列步骤
步骤100'.构建采用二维网格作为基本互连拓扑结构的处理器系统;
图15是本发明中构建多核处理器的核间互连结构的流程图,如图15所示, 所述步骤100',包括下列步骤
步骤110,.在所述二维网格中的每个结点中设置一个交叉开关、多个主 设备和多个从设备;
每一个所述从设备的数据都被所有主设备共享。
所述主设备,包括但不限于处理器核和i/o设备。
所述从设备,包括被分为与所述主设备对应的共享二级缓存模块的二级缓 存和/或I/0设备。
步骤120'.将所述交叉开关与多个主设备和多个从设备连接,并与二维
网格中的其他相邻结点相连接;
所述步骤120',包括下列步骤
步骤121'.将所述交叉开关的四个主设备接口模块和四个从设备接口模 块分别与东、南、西、北四个方向的二维网格中其他相邻结点相连接;
步骤122'.将所述交叉开关的其余主设备接口模块与所述主设备连接; 步骤123'.将所述交叉开关的其余从设备接口模块与所述从设备连接; 步骤130'.在所述处理器系统中的多核处理器的二维网格的边界结点连 接I/O控制器,多核处理器之间通过I/O总线连接; 所述步骤130',包括下列步骤
步骤131'.将所述边界结点上空闲的连接东、南、西、北四个方向的主
设备接口模块和从设备接口模块与VO控制器连接;
步骤132'.将所述处理器系统中的多核处理器之间通过I/O总线连接。 步骤200'.为所述处理器系统中的多核处理器,以及多核处理器的二维
网格中的各结点、结点中的交叉开关和各种设备统一编号;
35图16是本发明中为处理器系统中的设备统一编址的流程图,如图16所示, 所述步骤20(T ,包括下列步骤
步骤210'.根据所述多核处理器在处理器系统中的位置,为所述多核处 理器分配多核处理器编号;
歩骤220'.根据所述多核处理器内的结点在二维网格中的位置,为所述 结点分配结点编号;
步骤230,.为所述多核处理器内的结点的交叉开关的主设备接口模块和 从设备接口模块分配结点内接口编号;
歩骤240,.为所述多核处理器内的结点内的与交叉开关连接的主/从设 备分配全局编号。
所述全局编号,是根据所述多核处理器编号、所述结点编号以及所述结点 内接口编号组合拼接而成,用于决定请求的路由。
在步骤200'中,在统一编号时,所述处理器系统中的多核处理器的各个 结点中包含的二级缓存统一编址,每个二级缓存对应一个宿主结点,并在宿主 结点处维护共享二级缓存模块的目录。
步骤300'.获得物理地址与所述编号的对应关系,并根据所述物理地址
与所述编号的对应关系实现处理器系统中处理器核的访存操作。 所述步骤300',包括下列歩骤
步骤310,.按照固定映射或软件配置的方式获得物理地址与所述编号的 对应关系;
图17是本发明中获得物理地址与所述编号的对应关系的方法流程图,如
图17所示,所述步骤310',包括下列步骤
步骤311'.判断软件是否对物理地址进行过配置,若有,则进入步骤312;
否则,进入步骤313;
步骤312'.按照软件配置方式获得物理地址与所述编号的对应关系; 步骤313'.按照固定映射的方式获得物理地址与所述编号的对应关系。 步骤320'.根据所述物理地址与所述编号的对应关系,通过所述I/0控
制器和I/O总线实现处理器系统中处理器核的访存操作。
图18是本发明中实现处理器系统中处理器核的访存操作的流程图,如图
18所示,所述步骤320',包括下列歩骤步骤32r .所述主设备根据配置地址窗口或固定路由表,决定发送读/写
请求的路由路径,向从设备发送读/写请求;
图19是本发明中主设备向从设备发送发送读/写请求的流程图,如图19 所示,所述步骤321',包括下列步骤.-
步骤3211,.判断所述从设备是否与所述主设备位于同一多核处理器内, 若是,则进入步骤3212';否则,进入步骤3215';
步骤3212'.判断所述从设备是否与所述主设备位于同一结点内,若是, 则进入步骤3213';否则,进入步骤3214,;
歩骤3213'.根据配置地址窗口或固定路由表,决定发送所述读/写请求 的路由路径,将所述读/写请求发送到与所述从设备连接的CSL模块后将读/ 写请求放入请求队列;
歩骤3213'具体说明了主设备和从设备位于同一多核处理器的同一结点 内的情形,所述步骤3213',包括下列步骤
歩骤3213' (a).所述主设备将要发送的读/写请求发送到与之相连的交 叉开关的CML模块;
步骤3213, (b).所述交叉开关的CML模块收到数据后先缓存一拍,并 在下一拍根据配置地址窗口或固定路由表决定与从设备或方向接口连接的 CSL模块后进入请求队列发送给相应CSL模块;
步骤3213, (c).所述CSL模块对来自不同CML模块的请求进行仲裁, 仲裁后对请求进行缓存,并在下一拍送往与之相连的从设备或方向接口 。
步骤3214'.根据配置地址窗口或固定路由表,确定所述从设备所在的结 点的结点编号,决定发送所述读/写请求的路由路径,将所述读/写请求转发到 与所述从设备连接的CSL模块后将读/写请求放入请求队列发送给相应CSL模 块;
步骤3214'具体说明了主设备和从设备位于同一多核处理器的不同结点 的情形,所述步骤3214,,包括下列步骤
步骤3214' (a).执行步骤3213',根据所述从设备所在的结点的结点 编号,决定需要转发的方向接口,并通过与所述转发的方向接口连接的CML 模块将所述读/写请求转发到转发结点;
所述歩骤3214, (a),包括下列步骤步骤3214' (al).所述主设备将要发送的读/写请求发送到与之相连的 交叉开关的CML模块;
步骤3214' U2).所述交叉开关的CML模块收到读/写请求后先缓存一 拍,并在下一拍根据配置地址窗口或固定路由表决定所述转发的方向接口,将 读/写请求发送给与所述转发方向接口相连接的CML模块;
步骤3214, (a3).所述CML模块对来自不同CML模块的请求进行仲裁, 仲裁后对请求进行缓存,并在下一拍送往与之相连的方向接口。
步骤3214, (b).转发结点通过与转发结点的方向接口连接的CML模块 接收所述读/写请求,并判断所述转发结点是否是所述从设备所在的结点,若 是,则执行步骤3213';否则,执行步骤3214' (a)。
步骤3215'.根据配置地址窗口或固定路由表,确定所述从设备所在的多 核处理器的编号,决定发送所述读/写请求的路由路径,通过I/0控制器将所 述读/写请求转发到与所述从设备连接的CSL模块后将读/写请求放入请求队 列发送给相应CSL模块;
步骤3215'具体说明了主设备和从设备位于不同多核处理器上的情形, 所述歩骤3215',包括下列步骤
步骤3215' (a).所述主设备根据所述从设备的全局编号确定所述从设 备所在的结点的结点编号,再根据结点编号确定所述从设备所在的多核处理器 的编号;
步骤3215' (b).所述主设备所在的多核处理器按照数据传输协议格式 将所述读/写请求通过所述主设备所在多核处理器的边界结点的I/O控制器打 包成数据包,并根据所述从设备所在的多核处理器的编号将所述数据包发送给 转发多核处理器;
步骤3215, (b),包括下列步骤
步骤3215' (bl).判断所述主设备发送的读/写请求是否需要经过转发 结点才能到达希望转发的边界结点,若是,则执行步骤3214';否则,执行 步骤3215' (b2);
步骤3215, (b2).通过所述边界结点的I/O控制器打包成数据包,并根 据所述从设备所在的多核处理器的编号将所述数据包发送给转发多核处理器。
步骤3215' (c).转发多核处理器通过其边界结点的I/O控制器对数据
38包进行解包操作得到读/写请求,并判断所述转发多核处理器是否是所述从设
备所在的多核处理器,若是,则执行步骤3212' 3214,;否则执行步骤3215' (b)。
步骤322'.所述从设备接收到所述读/写请求后,按照发来所述读/写请 求的路由路径,向所述主设备返回读/写应答。
图20是本发明中从设备向主设备返回读/写应答的流程图,如图20所示, 所述步骤322',包括下列步骤
步骤3221'.与所述从设备相连接的CSL模块收到从设备发出的读/写应 答后先缓存一拍;
步骤3222'.并在下一拍根据应答信号中的相应发出读/写请求的主设备 的编号确定主设备后,按照发来所述读/写请求的路径进行路由,反向传输所 述读/写应答到与所述主设备相连接的交叉开关的CML模块仲裁;
所述反向传输的过程中,在每一个CML模块和CSL模块处均需要经过两级 缓存,先缓存一拍,并在下一拍将所述读/写应答传输出去。
歩骤3223'.所述CML模块对来自不同CSL模块的应答进行仲裁,仲裁后
对读/写应答缓存一拍,并在下一拍送往相应主设备。
相对于主通道,从通道(R, B)信号处理比较直接,目标编号直接由slave 通道中标示目标主模块的RID与BID信号决定,不需要进行复杂的转换,按照 固定X-Y路由判断其需要发送的本地端口号即可。
图21是本发明的处理器系统上访存操作的实施例的示意图。
较佳地,作为一种可实施方式,如图21所示,根据处理器系统部分的假 设,以实现处理器核0 (00-00-000)向共享二级缓存模块123 (11-11-011) 发送读/写请求为例,处理器系统上访存操作,包括下列步骤
步骤一.处理器核0 (00-00-000)将读/写请求通过与之连接的交叉开关 的方向接口 5 (00-00-100)传输给结点l (00-01),结点l (00-01)再通过 其内部的交叉开关的方向接口 12 (00-01-100)传输给与之相连接的I/0控制 器;
步骤二.所述I/O控制器根据共享二级缓存模块的编号123 (11-11-011), 确定所述共享二级缓存模块123位于结点15 (11-11)内,再根据结点15确 定其位于多核处理器3 (11)内。因此,多核处理器0 (00)内的I/0控制器将读/写请求打包成数据包通过I/O总线传输给多核处理器1 (01);
步骤三.所述多核处理器1 (01)的I/O控制器接收到数据包后,对其进
行解包操作,并将解包后的读/写请求传输给与之相连接的结点4 (01-00), 结点4 (01-00)将读/写请求传输给结点5 (01-01),结点5 (01-01)在将 读/写请求传输给结点7 (01-11),结点7 (01-11)再将读/写请求传输给与 之相连接的1/0控制器,该读/写请求传输方式与步骤一相同;
步骤四.重复步骤二,与结点7 (01-11)相连接的1/0控制器,将读/写 请求打包成数据包通过I/O总线传输给多核处理器3 (11);
步骤五.重复步骤三,多核处理器3 (11)的I/0控制器接收到数据包后, 对其进行解包操作,并将解包后的读/写请求通过结点13 (11-01)传输到结 点15 (11-11),最终到达共享二级缓存模块123 011)。
本发明的有益效果在于
1. 本发明将交叉开关与Mesh网络结构相结合,实现了多核处理器的可扩 展性;
2. 本发明中通过处理器核间共享二级Cache,实现了并行访问的同时降低 了访问延时;
3. 本发明中通过在交叉开关内部包含四级缓存,使得数据通道能够全流水 地传输和交换数据。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本 领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只 是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行 解释。
权利要求
1. 一种多核处理器,其特征在于,采用二维网格作为基本互连拓扑结构,所述二维网格中的每个结点包括交叉开关,主设备,以及从设备,其中所述交叉开关,用于连接所述主设备和从设备,以及与所述二维网格中的其他相邻结点的交叉开关互连,进行处理器核间的数据传输;所述主设备,用于通过与所述交叉开关连接,向所述从设备主动发起读/写请求;所述从设备,用于通过与所述交叉开关连接,接受所述主设备的请求并进行数据或状态响应。
2. 根据权利要求1所述的多核处理器,其特征在于,所述从设备的数据都 能够被所有主设备共享。
3. 根据权利要求1所述的多核处理器,其特征在于,所述交叉开关,包括至少五个主设备接口模块,和至少五个从设备接口模块,其中四个主设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、 北四个方向的二维网格中的其他结点互连,每个主设备接口模块包括两级内部缓存;其余主设备接口模块中的每一主设备接口模块,用于连接主设备,所述每 一主设备接口模块包括两级内部缓存;四个从设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、 北四个方向的二维网格中的其他结点互连,每个从设备接口模块包括两级内部 缓存;其余从设备接口模块中的每一从设备接口模板,用于连接从设备,所述每 一从设备接口模块包括两级内部缓存。
4. 根据权利要求3所述的多核处理器,其特征在于,所述主设备接口模块 和所述从设备接口模块都包括五类数据传输通道,分别是写地址通道、写数据 通道、读地址通道、读数据通道和写应答通道,其中写地址通道、写数据通道、 和读地址通道由主设备发向从设备;读数据通道和写应答通道由从设备发向主 设备。
5. 根据权利要求3所述的多核处理器,其特征在于,所述四个主设备接口模块和所述四个从设备接口模块空闲时,还用于连接1/0控制器。
6. —种处理器系统,包括1/0总线,其特征在于,还包括至少一个多 核处理器和I/0控制器,其中所述多核处理器,采用二维网格作为基本互连拓扑结构,多核处理器间通 过所述I/0总线连接,所述二维网格中的每个结点包括交叉开关,主设备, 以及从设备,其中所述交叉开关,用于连接所述主设备和从设备,以及与所述二维网格中的 其他相邻结点的交叉开关互连,进行处理器核间的数据传输;所述主设备,用于通过与所述交叉开关连接,向所述从设备主动发起读写 请求;所述从设备,用于通过与所述交叉开关连接,接受所述主设备的请求并进 行数据或状态响应。所述I/0控制器,与所述二维网格的边界结点连接,用于实现所述多核处 理器间的数据传输。
7. 根据权利要求6所述的处理器系统,其特征在于,所述从设备的数据都能够被所有主设备共享。
8. 根据权利要求6所述的处理器系统,其特征在于,所述交叉开关,包括 至少五个主设备接口模块,和至少五个从设备接口模块,其中四个主设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、 北四个方向的二维网格中的其他结点互连,每个主设备接口模块包括两级内部 缓存;其余主设备接口模块中的每一主设备接口模块,用于连接主设备,所述每 一主设备接口模块包括两级内部缓存;四个从设备接口模块,用于分别与所述交叉开关所在结点的东、南、西、 北四个方向的二维网格中的其他结点互连,每个从设备接口模块包括两级内部,其余从设备接口模块中的每一从设备接口模板,用于连接从设备,所述每 一从设备接口模块包括两级内部缓存。
9. 根据权利要求8所述的处理器系统,其特征在于,所述主设备接口模块 和所述从设备接口模块都包括五类数据传输通道,分别是写地址通道、写数据通道、读地址通道、读数据通道和写应答通道,其中写地址通道、写数据通道、 和读地址通道由主设备发向从设备;读数据通道和写应答通道由从设备发向主 设备。
10. 根据权利要求8所述的处理器系统,其特征在于,所述四个主设备接 口模块和所述四个从设备接口模块空闲时,还用于连接1/0控制器。
11. 根据权利要求6所述的处理器系统,其特征在于,所述I/0控制器, 根据所述多核处理器的二维网络中各结点在所述处理器系统中的编号,对传输 数据进行解打包操作,实现所述处理器系统中多核处理器间的数据通信。
12. —种多核处理器的访存方法,其特征在于,所述方法包括下列步骤 步骤100.构建采用二维网格作为基本互连拓扑结构的多核处理器的核间互连结构在所述二维网格中的每个结点中设置一个的交叉开关、多个主设备 和多个从设备;将所述交叉开关与多个主设备和多个从设备连接,并与二维网 格中的其他相邻结点相连接;步骤200.为所述多核处理器中的各种设备统一编号;步骤300.获得物理地址与所述编号的对应关系,并根据所述物理地址与所述编号的对应关系实现多核处理器上处理器核间的访存操作。
13. 根据权利要求12所述的多核处理器的访存方法,其特征在于,所述主 设备,包括处理器核和/或I/0设备。
14. 根据权利要求12所述的多核处理器的访存方法,其特征在于,所述从 设备,包括被分为与所述主设备对应的共享二级缓存模块的二级缓存和/或 1/0设备。
15. 根据权利要求12所述的多核处理器的访存方法,其特征在于,所述步 骤IOO,包括下列步骤步骤110.将所述交叉开关中的四个主设备接口模块和四个从设备接口模 块分别与东、南、西、北四个方向的二维网格中其他相邻结点相连接;步骤120.将所述交叉开关中的其余主设备接口模块与所述主设备连接; 步骤130.将所述交叉开关中的其余从设备接口模块与所述从设备连接。
16. 根据权利要求15所述的多核处理器的访存方法,其特征在于,所述步 骤200,包括下列步骤-步骤210.根据所述结点在二维网格中的位置,为所述多核处理器中的结点分配结点编号;步骤220.为所述结点内的交叉开关的主设备接口模块和从设备接口模块 分配结点内接口编号步骤230.为所述结点内的与交叉开关连接的主/从设备分配全局编号。
17. 根据权利要求16所述的多核处理器的访存方法,其特征在于,所述全 局编号,是根据所述结点编号与所述结点内接口编号组合拼接而成,用于决定 请求的路由。
18. 根据权利要求14所述的多核处理器的访存方法,其特征在于,步骤 200中,在为各种设备统一编号时,为所述多核处理器的各个结点中包含的二 级缓存统一编址,每个二级缓存对应一个宿主结点,并在宿主结点处维护共享 二级缓存模块的目录。
19. 根据权利要求14所述的多核处理器的访存方法,其特征在于,所述步 骤300,包括下列步骤步骤310.按照固定映射或软件配置的方式获得物理地址与所述编号的对 应关系;步骤320.根据所述物理地址与所述编号的对应关系,实现多核处理器上 处理器核的访存操作。.
20. 根据权利要求19所述的多核处理器的访存方法,其特征在于,所述步 骤310,包括下列步骤步骤311.判断软件是否对物理地址进行过配置,若有,则进入步骤312; 否则,进入步骤313;步骤312.按照软件配置方式获得物理地址与所述编号的对应关系; 步骤313.按照固定映射的方式获得物理地址与所述编号的对应关系。
21. 根据权利要求20所述的多核处理器的访存方法,其特征在于,所述软 件配置方式,是指用户通过设置在所述交叉开关内部的基址、掩码、编号三个 寄存器,配置所述物理地址空间与从设备或方向接口的编号的对应关系,进行 地址匹配;通过设置在所述交叉开关内部的属性寄存器进行属性匹配。
22. 根据权利要求20所述的多核处理器的访存方法,其特征在于,所述固 定映射方式,是指芯片出厂时默认根据从设备和东、西、南、北四个方向主/ 从接口的编号,将其编号直接映射到相应物理地址上。
23. 根据权利要求19所述的多核处理器的访存方法,其特征在于,所述步 骤320,包括下列步骤步骤321.主设备根据配置地址窗口或固定路由表决定发送所述读/写请 求的路由路径,通过交叉开关向从设备发送读/写请求;步骤322.所述从设备接收到所述读/写请求后,按照发来所述读/写请求 的路径进行路由,通过交叉开关向所述主设备返回读/写应答。
24. 根据权利要求23所述的多核处理器的访存方法,其特征在于,所述步 骤321,包括下列步骤歩骤3211.判断所述从设备是否与所述主设备位于同一结点内,若是,则 进入步骤3212;否则,进入歩骤3213;步骤3212.根据配置地址窗口或固定路由表,决定发送所述读/写请求的 路由路径,将所述读/写请求发送到与所述从设备连接的CSL模块后将读/写请 求放入请求队列发送给相应CSL模块,送往与之相连的从设备;步骤3213.根据配置地址窗口或固定路由表,确定所述从设备所在的结点 的结点编号,决定发送所述读/写请求的路由路径,将所述读/写请求转发到与 所述从设备连接的CSL模块后将读/写请求放入请求队列发送给相应CSL模块,送往与之相连的从设备。
25. 根据权利要求23所述的多核处理器的访存方法,其特征在于,所述步 骤322,包括下列步骤歩骤3221.与所述从设备相连接的CSL模块收到从设备发出的读/写应答 后先缓存一拍;步骤3222.所述CSL模块在下一拍根据应答信号中的相应发出读/写请求 的主设备的编号确定主设备后,按照发来所述读/写请求的路径进行路由,反 向传输所述读/写应答传输到与所述主设备相连接的交叉开关的CML模块仲 裁;步骤3223.所述CML模块对来自不同CSL模块的应答进行仲裁,仲裁后对 读/写应答缓存一拍,并在下一拍送往相应主设备。
26. 根据权利要求24所述的多核处理器的访存方法,其特征在于,所述步 骤3212,包括下列步骤步骤3212 (a).所述主设备将要发送的读/写请求发送到与之相连的交叉开关的CML模块;步骤3212 (b).所述交叉开关的CML模块收到数据后先缓存一拍,并在 下一拍根据配置地址窗口或固定路由表决定与从设备连接的CSL模块后进入 请求队列发送给相应CSL模块;步骤3212 (c).所述CSL模块对来自不同CML模块的请求进行仲裁,仲裁后对请求进行缓存,并在下一拍送往与之相连的从设备。
27. 根据权利要求26所述的多核处理器的访存方法,其特征在于,所述步 骤3213,包括下列步骤步骤3213 (a).根据所述从设备所在的结点的结点编号,决定需要转发 的方向接口,所述主设备发送所述读/写请求到所述方向接口并通过与所述方 向接口连接的CML模块将所述读/写请求转发到转发结点;步骤3213 (b).转发结点通过与转发结点的方向接口连接的CML模块接 收所述读/写请求,并判断所述转发结点是否是所述从设备所在的结点,若是, 则执行步骤3212;否则,返回步骤3213 (a)。
28. 根据权利要求27所述的多核处理器的访存方法,其特征在于,所述步 骤3213 (a),包括下列步骤歩骤3213 (al).所述主设备将要发送的读/写请求发送到与之相连的交 叉开关的CML模块;步骤3213 (a2).所述交叉开关的CML模块收到读/写请求后先缓存一拍, 并在下一拍根据配置地址窗口或固定路由表决定所述转发的方向接口,将读/ 写请求发送给与所述转发方向接口相连接的CML模块;步骤3213 (a3).所述CML模块对来自不同CML模块的请求进行仲裁,仲 裁后对请求进行缓存,并在下一拍送往与之相连的方向接口。
29. 根据权利要求25所述的多核处理器的访存方法,其特征在于,步骤 3222中,所述反向传输的过程中,在每一个CML模块和CSL模块处均需要经 过两级缓存,先缓存一拍,并在下一拍将所述读/写应答传输出去。
30. —种处理器系统的访存方法,其特征在于,所述方法包括下列步骤 步骤100,.构建采用二维网格作为基本互连拓扑结构的处理器系统在所述二维网格中的每个结点中设置一个交叉开关、多个主设备和多个从设备; 将所述交叉开关与多个主设备和多个从设备连接,并与二维网格中的其他相邻结点相连接;在所述处理器系统中的多核处理器的二维网格的边界结点连接1/0控制器,多核处理器之间通过I/0总线连接;步骤200'.为所述处理器系统中的各种设备统一编号;步骤300'.获得物理地址与所述编号的对应关系,并根据所述物理地址与所述编号的对应关系实现处理器系统中处理器核的访存操作。
31. 根据权利要求30所述的处理器系统的访存方法,其特征在于,所述主 设备,包括处理器核和/或I/0设备。
32. 根据权利要求30所述的处理器系统的访存方法,其特征在于,所述从 设备,包括被分为与所述主设备对应的共享二级缓存模块的二级缓存和/或 1/0设备。
33. 根据权利要求30所述的处理器系统的访存方法,其特征在于,所述步 骤100',包括下列步骤步骤110'.将所述交叉开关的四个主设备接口模块和四个从设备接口模 块分别与东、南、西、北四个方向的二维网格中其他相邻结点相连接;步骤120'.将所述边界结点上空闲的连接东、南、西、北四个方向的主 设备接口模块和从设备接口模块与1/0控制器连接;步骤130'.将所述交叉开关的其余主设备接口模块与所述主设备连接; 步骤140'.将所述交叉开关的其余从设备接口模块与所述从设备连接; 步骤150'.将所述处理器系统中的多核处理器之间通过I/O总线连接。
34. 根据权利要求30所述的处理器系统的访存方法,其特征在于,所述步 骤200',包括下列步骤步骤210'.根据所述多核处理器在处理器系统中的位置,为所述多核处 理器分配多核处理器编号;步骤220'.根据所述多核处理器内的结点在二维网格中的位置,为所述 结点分配结点编号;步骤230'.为所述多核处理器内的结点的交叉开关的主设备接口模块和 从设备接口模块分配结点内接口编号;步骤240'.为所述多核处理器内的结点内的与交叉开关连接的主/从设 备分配全局编号。
35. 根据权利要求34所述的处理器系统的访存方法,其特征在于,所述全局编号,是根据所述多核处理器编号、所述结点编号以及所述结点内接口编号 组合拼接而成,用于决定请求的路由。
36. 根据权利要求32所述的处理器系统的访存方法,其特征在于,步骤 200,中,在统一编号时,所述处理器系统中的多核处理器的各个结点中包含 的二级缓存统一编址,每个二级缓存对应一个宿主结点,并在宿主结点处维护 共享二级缓存模块的目录。
37. 根据权利要求33所述的处理器系统的访存方法,其特征在于,所述步 骤300',包括下列步骤步骤310'.按照固定映射或软件配置的方式获得物理地址与所述编号的 对应关系;步骤320'.根据所述物理地址与所述编号的对应关系,通过所述I/0控 制器和I/O总线实现处理器系统中处理器核的访存操作。
38. 根据权利要求37所述的处理器系统的访存方法,其特征在于,所述步 骤310',包括下列步骤步骤311'.判断软件是否对物理地址进行过配置,若有,则进入步骤 312';否则,进入步骤313';步骤312'.按照软件配置方式获得物理地址与所述编号的对应关系; 歩骤313'.按照固定映射的方式获得物理地址与所述编号的对应关系。
39. 根据权利要求37所述的处理器系统的访存方法,其特征在于,所述软 件配置方式,是指用户通过设置在所述交叉开关内部的基址、掩码、编号三个 寄存器,配置所述物理地址空间与从设备或方向接口的编号的对应关系,进行 地址匹配;通过设置在所述交叉开关内部的属性寄存器进行属性匹配。
40. 根据权利要求37所述的处理器系统的访存方法,其特征在于,所述固 定映射方式,是指芯片出厂时默认根据从设备和东、西、南、北四个方向主/ 从接口的编号,将其编号直接映射到相应物理地址上。
41. 根据权利要求37所述的处理器系统的访存方法,其特征在于,所述步 骤320',包括下列步骤歩骤321'.所述主设备根据配置地址窗口或固定路由表,决定发送读/写 请求的路由路径,向从设备发送读/写请求;步骤322'.所述从设备接收到所述读/写请求后,按照发来所述读/写请求的路由路径,向所述主设备返回读/写应答。
42. 根据权利要求41所述的处理器系统的访存方法,其特征在于,所述步 骤321',包括下列步骤步骤3211'.判断所述从设备是否与所述主设备位于同一多核处理器内, 若是,则进入步骤3212,;否则,进入步骤3215,;步骤3212'.判断所述从设备是否与所述主设备位于同一结点内,若是, 则进入步骤3213,;否则,进入步骤3214,;步骤3213'.根据配置地址窗口或固定路由表,决定发送所述读/写请求 的路由路径,将所述读/写请求发送到与所述从设备连接的CSL模块后将读/ 写请求放入请求队列;步骤3214'.根据配置地址窗口或固定路由表,确定所述从设备所在的结 点的结点编号,决定发送所述读/写请求的路由路径,将所述读/写请求转发到 与所述从设备连接的CSL模块后将读/写请求放入请求队列发送给相应CSL模 块;步骤3215'.根据配置地址窗口或固定路由表,确定所述从设备所在的多 核处理器的编号,决定发送所述读/写请求的路由路径,通过I/0控制器将所 述读/写请求转发到与所述从设备连接的CSL模块后将读/写请求放入请求队 列发送给相应CSL模块。
43. 根据权利要求42所述的处理器系统的访存方法,其特征在于,所述步 骤3213',包括下列歩骤步骤3213' (a).所述主设备将要发送的读/写请求发送到与之相连的交 叉开关的CML模块;步骤3213, (b).所述交叉开关的CML模块收到数据后先缓存一拍,并 在下一拍根据配置地址窗口或固定路由表决定与从设备或方向接口连接的 CSL模块后进入请求队列发送给相应CSL模块;步骤3213' (c).所述CSL模块对来自不同CML模块的请求进行仲裁, 仲裁后对请求进行缓存,并在下一拍送往与之相连的从设备。
44. 根据权利要求42所述的处理器系统的访存方法,其特征在于,所述步 骤3214',包括下列步骤步骤3214' (a).根据所述从设备所在的结点的结点编号,决定需要转发的方向接口,并通过与所述转发的方向接口连接的CML模块将所述读/写请 求转发到转发结点;步骤3214, (b).转发结点通过与转发结点的方向接口连接的CML模块 接收所述读/写请求,并判断所述转发结点是否是所述从设备所在的结点,若 是,则执行步骤3213';否则,执行步骤3214, (a)。
45. 根据权利要求44所述的处理器系统的访存方法,其特征在于,所述步 骤3214' (a),包括下列步骤步骤3214' (al).所述主设备将要发送的读/写请求发送到与之相连的 交叉开关的CML模块;歩骤3214' (a2).所述交叉开关的CML模块收到读/写请求后先缓存一 拍,并在下一拍根据配置地址窗口或固定路由表决定所述转发的方向接口,将 读/写请求发送给与所述转发方向接口相连接的CML模块;步骤3214, (a3).所述CML模块对来自不同CML模块的请求进行仲裁, 仲裁后对请求进行缓存,并在下一拍送往与之相连的方向接口。
46. 根据权利要求42所述的处理器系统的访存方法,其特征在于,所述步 骤3215,,包括下列步骤步骤3215' (a).所述主设备根据所述从设备的全局编号确定所述从设 备所在的结点的结点编号,再根据结点编号确定所述从设备所在的多核处理器 的编号;步骤3215' (b).所述主设备所在的多核处理器按照数据传输协议格式 将所述读/写请求通过所述主设备所在多核处理器的边界结点的I/O控制器打 包成数据包,并根据所述从设备所在的多核处理器的编号将所述数据包发送给 转发多核处理器;步骤3215' (c).转发多核处理器通过其边界结点的I/O控制器对数据 包进行解包操作得到读/写请求,并判断所述转发多核处理器是否是所述从设 备所在的多核处理器,若是,则执行步骤3212' 3214';否则执行歩骤3215' (b)。
47. 根据权利要求46所述的处理器系统的访存方法,其特征在于,所述步 骤3215' (b),包括下列步骤步骤3215' (bl).判断所述主设备发送的读/写请求是否需要经过转发结点才能到达希望转发的边界结点,若是,则执行步骤3214';否则,执行步骤3215' (b2);步骤3215' (b2).通过所述边界结点的I/O控制器打包成数据包,并根据所述从设备所在的多核处理器的编号将所述数据包发送给转发多核处理器。
48. 根据权利要求41所述的处理器系统的访存方法,其特征在于,所述步骤322',包括下列步骤步骤3221'.与所述从设备相连接的CSL模块收到从设备发出的读/写应答后先缓存一拍;步骤3222'.并在下一拍根据应答信号中的相应发出读/写请求的主设备的编号确定主设备后,按照发来所述读/写请求的路径进行路由,反向传输所述读/写应答传输到与所述主设备相连接的交叉开关的CML模块仲裁;步骤3223'.所述CML模块对来自不同CSL模块的应答进行仲裁,仲裁后对读/写应答缓存一拍,并在下一拍送往相应主设备。
49. 根据权利要求48所述的多核处理器的访存方法,其特征在于,步骤3222'中,所述反向传输的过程中,在每一个CML模块和CSL模块处均需要经过两级缓存,先缓存一拍,并在下一拍将所述读/写应答传输出去。
全文摘要
本发明公开了一种处理器系统及其访存方法。所述系统,包括I/O总线,还包括至少一个多核处理器和I/O控制器,所述多核处理器,采用二维网格作为基本互连拓扑结构,多核处理器间通过所述I/O总线连接,所述二维网格中的每个结点包括交叉开关,主设备,以及从设备,其中所述交叉开关,用于连接所述主设备和从设备,以及与所述二维网格中的其他相邻结点的交叉开关互连,进行处理器核间的数据传输;所述主设备,用于通过与所述交叉开关连接,向所述从设备主动发起读写请求;所述从设备,用于通过与所述交叉开关连接,接受所述主设备的请求并进行数据或状态响应。所述I/O控制器,与所述二维网格的边界结点连接,用于实现所述多核处理器间的数据传输。
文档编号G06F15/173GK101477512SQ200910077030
公开日2009年7月8日 申请日期2009年1月16日 优先权日2009年1月16日
发明者胡伟武, 翔 高 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1