本发明专利技术实施例公开一种数据写入的方法、控制器和多控制器系统,所述数据写入的方法包括:根据所述第一控制器中待写入数据的大小和目的地址在第二控制器被控制的内存中分配相应的内存空间,所述内存由所述第一控制器通过快速外设部件互连交换非透明桥所控制;将所述待写入数据写入分配的内存空间。本发明专利技术实施例减少了双控制器系统或多控制器系统中的控制器在数据传输过程中的交互次数,提高了双控制器系统或多控制器系统中链路的利用率。
【技术实现步骤摘要】
本专利技术实施例涉及通信
,特别涉及一种数据写入的方法、控制 器和多控制器系统。
技术介绍
通常,双控制器系统应用于对数据完整性及服务连续性要求较高的网络中,例如存储器局域网络(Storage Area Network;以下简称SAN)。双 控制器系统的作用是,当其中一个控制器作为主控制器提供服务时,使用另 一个控制器作为该主控制器的镜像备份控制器。当主控制器发生故障而无法 继续提供服务时,该镜像备份控制器接管主控制器的业务,保障数据的完整 性和服务的连续性。因此,需要在双控制器系统的两个控制器之间建立内部通信链路,例如 以太网络卡对连等,用以传输数据,保持两个控制器的同步状态。现有的双控制器系统采用直接数据存取(Direct Memory Access;以下简 称DMA)引擎,将一个控制器的数据传输到另一个控制器的内存。具体地, 以包括控制器1和控制器2的双控制器系统为例,在控制器1向控制器2的 内存写数据时,控制器1需要先发送通知写请求,通知控制器2准备内存, 控制器2准备好内存以后,向控制器l发送内存准备完毕通知,然后控制器 1才能将数据写入控制器2的内存。控制器1从控制器2的内存中读数据的 过程与上述写数据的过程类似,也需要经过多次交互才能完成。现有的多控制器系统,例如包括三个或三个以上控制器的系统,采用 DMA引擎在多个控制器的内存之间的数据传输过程与双控制器系统中的数 据传输过程类似,同样需要经过多次交互才能完成。在实现本专利技术的过程中,专利技术人发现,现有的双控制器系统或多控制器 系统中,控制器内存之间的数据传输过程需要进行多次交互才能完成,链路 的利用率较低。
技术实现思路
本专利技术实施例提供一种数据写入的方法、控制器和多控制器系统,以减 少双控制器系统或多控制器系统中的控制器在数据传输过程中的交互次数, 提高链路的利用率。本专利技术实施例提供一种数据写入的方法,包括根据所述第 一控制器中待写入数据的大小和目的地址在第二控制器被控 制的内存中分配相应的内存空间,所述内存由所述第 一控制器通过快速外设 部件互连交换非透明桥所控制;将所述待写入数据写入分配的内存空间。本专利技术实施例还提供一种第一控制器,包括控制模块,用于通过快速外设部件互连交换非透明桥控制第二控制器的 一段内存;分配模块,用于根据所述第一控制器中待写入数据的大小和目的地址在 所述第二控制器被所述控制模块控制的内存中分配相应的内存空间;写入模块,用于将所述待写入数据写入所述分配模块分配的内存空间。 本专利技术实施例还4是供一种多控制器系统,包括至少两个上述第 一控制器。 通过本专利技术实施例,第一控制器通过快速外设部件互连交换非透明桥控 制第二控制器的一,爻内存,根据待写入数据的大小和目的地址在第二控制器 ^皮控制的内存中分配相应的内存空间,并将^f寺写入数据写入分配的内存空间。 从而减少了双控制器系统或多控制器系统中的控制器在数据传输过程中的交 互次数,提高了双控制器系统或多控制器系统中链路的利用率。附图说明为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或 现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中 的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一提供的数据写入的方法的流程图; 图2为本专利技术实施例二提供的内存物理地址映射的示意图; 图3为本专利技术实施例三提供的将待写入数据写入分配的内存空间的方法 的流程图4为本专利技术实施例四提供的第一控制器的结构示意图; 图5为本专利技术实施例五提供的第一控制器的结构示意图。具体实施例方式下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地 描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施 例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的 前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例一提供的数据写入的方法的流程图,如图1所示, 包括步骤101,第一控制器根据第一控制器中待写入数据的大小和目的地址 在第二控制器被控制的内存中分配相应的内存空间,上述内存由第 一控制器 通过'决速夕卜i殳部"f牛互连交4灸非透明(Peripheral Component Interconnect Express switch Non-Transparency;以下简称PCIE switch NT)桥所控制。其中,第 二控制器为至少两个控制器中除第 一控制器之外的 一个控制器。具体地,本实施例的双控制器系统或多控制器系统中,第一控制器可以 通过PCIE switch NT桥,直接访问第二控制器的内存,在上电过程中,第一控制器应用内部通信协议与第二控制器进行交互,控制第二控制器的一段内 存,使第二控制器本身不再控制这段内存。第一控制器根据第二控制器中待 被控制的内存的物理地址,在第 一控制器的内存中配置该第 一控制器的第一PCIE switch NT桥的物理地址;并在该第一 PCIE switch NT桥中,保存第二 控制器中待净皮控制的内存的物理地址与第一 PC正switch NT桥的物理地址的 映射关系;例如可以在第一 PCIE switch NT桥的一个寄存器中,保存第二 控制器中待被控制的内存的物理地址与第一 PCIE switch NT桥的物理地址的 映射关系。具体地,以包括控制器1和控制器2的双控制器系统为例,假定控制器 2将0 0X200000000这段内存交由控制器l控制,假设控制器1自身的内存 占用的物理地址为0 0X200000000,则控制器1可以在该控制器1的内存中, 将该控制器1的第一 PC正switch NT桥的物理地址配置为 0X200000000 0X400000000,并在第一 PCIE switch NT桥中保存该第一 PCIE switch NT桥的物理地址与控制器2中待被控制的内存的物理地址的映射关 系,即保存控制器1中0X200000000 0X400000000这段内存的物理地址与控 制器2中0 0X200000000这段内存的物理地址的映射关系。图2为本专利技术实 施例二提供的内存物理地址映射的示意图,如图2所示,控制器l自身的内 存占用的物理地址为0~0X200000000,第一 PC正switch NT桥占用的物理地 址为0X200000000 0X400000000,即控制器2净皮控制的内存在控制器1的内 存中映射的物理地址为0X200000000 0X400000000。对于具有三个或三个以上控制器的多控制器系统中,例如在包括控制 1、控制器2和控制器3的多控制器系统中,控制器1可以通过两个PCIE switch NT桥分别对控制器2和控制器3的一段内存进行控制,控制器2和控制器3 被控制的内存的物理地址的映射方式与上述双控制器系统中的映射方式相 同,在此不再赘述。步骤102,第一控制器将待写入数据写入分配的内存 间。图3为本专利技术实施例三提供的将待写入数据写入分配的内存空间的方法 的流程图,如图3所示,该实施例包括步骤301,第一控制器才艮据待写入数据的大小和目的地址,在第一P本文档来自技高网...
【技术保护点】
一种数据写入的方法,其特征在于,包括: 根据所述第一控制器中待写入数据的大小和目的地址在第二控制器被控制的内存中分配相应的内存空间,所述内存由所述第一控制器通过快速外设部件互连交换非透明桥所控制; 将所述待写入数据写入分配的内存 空间。
【技术特征摘要】
【专利技术属性】
技术研发人员:叶向荣,
申请(专利权)人:成都市华为赛门铁克科技有限公司,
类型:发明
国别省市:90[中国|成都]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。