CN112433968A - 一种控制器共享同步方法和装置 - Google Patents

一种控制器共享同步方法和装置 Download PDF

Info

Publication number
CN112433968A
CN112433968A CN202011183021.3A CN202011183021A CN112433968A CN 112433968 A CN112433968 A CN 112433968A CN 202011183021 A CN202011183021 A CN 202011183021A CN 112433968 A CN112433968 A CN 112433968A
Authority
CN
China
Prior art keywords
data
transmitted
master controller
slave
slave controllers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011183021.3A
Other languages
English (en)
Other versions
CN112433968B (zh
Inventor
江博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011183021.3A priority Critical patent/CN112433968B/zh
Publication of CN112433968A publication Critical patent/CN112433968A/zh
Application granted granted Critical
Publication of CN112433968B publication Critical patent/CN112433968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Abstract

本发明公开了一种控制器共享同步方法和装置,方法包括:由一个主控制器和多个从控制器的基板管理控制器分别将待传输数据各自加载到缓冲寄存器;由主控制器将待传输数据经由共享总线广播到多个从控制器,并分别接收由多个从控制器广播的待传输数据以写入缓冲寄存器;由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;响应于有从控制器接收到数据同步请求,而由该从控制器将待传输数据广播到主控制器和多个其它从控制器,并分别接收由主控制器和多个其它从控制器广播的待传输数据以写入缓冲寄存器。本发明能够从数据共享和同步释放BMC资源,并且提高数据传输的响应速度。

Description

一种控制器共享同步方法和装置
技术领域
本发明涉及存储控制领域,更具体地,特别是指一种控制器共享同步方法和装置。
背景技术
存储控制器在十年前形成了双控、四控、八控甚至十六控的架构设置,多控之间共同处理业务,大大提升了业务性能。另外,主控在一个控制器突然宕机后,由另外一控接管业务,大大提高了数据安全和设备的容灾性能。每一个控制器由BMC(基板管理控制器)来做机箱管理,一是提供上层存储软件读写访问,二是收集本控制器内相关设备的状态信息和多控制器之间的共享信息。
在四控场景中,本控BMC不但需要实时获取本控制器内设备的状态信息,同时还要实时掌握其他几个控制器对应设备的状态信息。所以当出现四控或者八控场景中,BMC之间的数据同步,高可靠性,快速立即响应会变的越来越重要,因为很多信息是直接导致上层存储软件集群建立的关键信息。
数据同步完全可以后多个控制器BMC之间来完成,但是第一BMC本身是采用精简linux系统,系统无可避免会出现程序跑飞等问题;第二随着现代存储的发展,对BMC代码安全防错和功能需要越来越多,BMC本身已经比较臃肿,往往采用轮询方式来收集设备信息,轮询周期有受限与BMC内部自身资源和代码功能量,此会造成响应速度慢;第三从设计层面来讲,BMC专门处理管理策略,而设备的状态信息收集工作由BMC处理导致涉及逻辑不清晰。
针对现有技术中BMC不适于为控制器执行数据同步的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种控制器共享同步方法和装置,能够从数据共享和同步释放BMC资源,并且提高数据传输的响应速度。
基于上述目的,本发明实施例的第一方面提供了一种控制器共享同步方法,包括循环执行以下步骤:
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器;
由主控制器将待传输数据经由共享总线广播到多个从控制器,并由主控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器;
由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;
响应于有从控制器接收到数据同步请求,而由该从控制器将待传输数据经由共享总线广播到主控制器和多个其它从控制器,并由该从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该从控制器的缓冲寄存器;
使一个主控制器和多个从控制器分别处理其各自的缓冲寄存器中获得的数据以实现数据的共享和同步。
在一些实施方式中,由主控制器的复杂可编程逻辑器件依次向每个从控制器分别发出数据同步请求包括:由主控制器确定请求周期,并且在向一个从控制器发出数据同步请求之后等待至少一个请求周期再向下一个从控制器发出数据同步请求。
在一些实施方式中,每个缓冲寄存器均配置为具有多个存储列,并且多个存储列与一个主控制器和多个从控制器一一对应;
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器包括:将待传输数据各自加载到缓冲寄存器中与一个主控制器或多个从控制器之一相对应的存储列上。
在一些实施方式中,由主控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器包括:将由多个从控制器广播的待传输数据分别写入主控制器的缓冲寄存器中与多个从控制器各自相对应的存储列上;
由该从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该从控制器的缓冲寄存器包括:将由主控制器和多个其它从控制器广播的待传输数据分别写入该从控制器的缓冲寄存器中与主控制器和多个其它从控制器各自相对应的存储列上。
在一些实施方式中,方法还包括:
在由主控制器将待传输数据经由共享总线广播到多个从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到多个从控制器;
在由主控制器经由共享总线分别接收由多个从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失;
在由该从控制器将待传输数据经由共享总线广播到主控制器和多个其它从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到主控制器和多个其它从控制器;
在由该从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失。
在一些实施方式中,共享总线包括第一总线和第二总线;经由共享总线传输包括:同时在第一总线和第二总线上传输,并响应于在第一总线和第二总线上的传输数据相同而认定传输成功,响应于在第一总线和第二总线上的传输数据不同而认定传输失败。
在一些实施方式中,一个主控制器和多个从控制器的缓冲寄存器均为一个主控制器和多个从控制器的复杂可编程逻辑器件的寄存器。
本发明实施例的第二方面提供了一种控制器共享同步装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时循环执行以下步骤:
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器;
由主控制器将待传输数据经由共享总线广播到多个从控制器,并由主控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器;
由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;
响应于有从控制器接收到数据同步请求,而由该从控制器将待传输数据经由共享总线广播到主控制器和多个其它从控制器,并由该从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该从控制器的缓冲寄存器;
使一个主控制器和多个从控制器分别处理其各自的缓冲寄存器中获得的数据以实现数据的共享和同步。
在一些实施方式中,每个缓冲寄存器均配置为具有多个存储列,并且多个存储列与一个主控制器和多个从控制器一一对应;
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器包括:将待传输数据各自加载到缓冲寄存器中与一个主控制器或多个从控制器之一相对应的存储列上;
由主控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器包括:将由多个从控制器广播的待传输数据分别写入主控制器的缓冲寄存器中与多个从控制器各自相对应的存储列上;
由该从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该从控制器的缓冲寄存器包括:将由主控制器和多个其它从控制器广播的待传输数据分别写入该从控制器的缓冲寄存器中与主控制器和多个其它从控制器各自相对应的存储列上。
在一些实施方式中,步骤还包括:
在由主控制器将待传输数据经由共享总线广播到多个从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到多个从控制器;
在由主控制器经由共享总线分别接收由多个从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失;
在由该从控制器将待传输数据经由共享总线广播到主控制器和多个其它从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到主控制器和多个其它从控制器;
在由该从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失。
本发明具有以下有益技术效果:本发明实施例提供的控制器共享同步方法和装置,通过由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器;由主控制器将待传输数据经由共享总线广播到多个从控制器,并由主控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器;由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;响应于有从控制器接收到数据同步请求,而由该从控制器将待传输数据经由共享总线广播到主控制器和多个其它从控制器,并由该从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该控制器的缓冲寄存器;使一个主控制器和多个从控制器分别处理其各自的缓冲寄存器中获得的数据以实现数据的共享和同步的技术方案,能够从数据共享和同步释放BMC资源,并且提高数据传输的响应速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的控制器共享同步方法的流程示意图;
图2为本发明提供的控制器共享同步方法的详细流程图;
图3为本发明提供的控制器共享同步方法的控制器逻辑状态图;
图4为本发明提供的控制器共享同步方法的共享总线示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种从数据共享和同步释放BMC资源,并且提高数据传输的响应速度的控制器共享同步方法的一个实施例。图1示出的是本发明提供的控制器共享同步方法的流程示意图。
所述的控制器共享同步方法,如图1所示,包括将一个主控制器和多个从控制器并联到共享总线上,并循环执行以下步骤以在一个主控制器和多个从控制器之间经由共享总线而共享和同步数据:
步骤S101,由一个主控制器和多个从控制器的基板管理控制器分别将一个主控制器和多个从控制器的待传输数据各自加载到一个主控制器和多个从控制器的缓冲寄存器;
步骤S103,由主控制器将主控制器的待传输数据经由共享总线广播到多个从控制器,并由主控制器从多个从控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器;
步骤S105,由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;
步骤S107,响应于一个从控制器接收到数据同步请求,而由该控制器将该控制器的待传输数据经由共享总线广播到主控制器和多个其它从控制器,并由该控制器从主控制器和多个其它从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该控制器的缓冲寄存器;
步骤S109,使一个主控制器和多个从控制器分别处理其各自的缓冲寄存器中获得的数据以实现数据的共享和同步。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,由主控制器的复杂可编程逻辑器件依次向每个从控制器分别发出数据同步请求包括:由主控制器确定请求周期,并且在向一个从控制器发出数据同步请求之后等待至少一个请求周期再向下一个从控制器发出数据同步请求。
在一些实施方式中,每个缓冲寄存器均配置为具有多个存储列,并且多个存储列与一个主控制器和多个从控制器一一对应;
将一个主控制器和多个从控制器的待传输数据各自加载到一个主控制器和多个从控制器的缓冲寄存器包括:将待传输数据各自加载到缓冲寄存器中与一个主控制器或多个从控制器之一相对应的存储列上。
在一些实施方式中,从多个从控制器分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器包括:将由多个从控制器广播的待传输数据分别写入主控制器的缓冲寄存器中与多个从控制器各自相对应的存储列上;
从主控制器和多个其它从控制器分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该控制器的缓冲寄存器包括:将由主控制器和多个其它从控制器广播的待传输数据分别写入该控制器的缓冲寄存器中与主控制器和多个其它从控制器各自相对应的存储列上。
在一些实施方式中,在由主控制器将主控制器的待传输数据广播到多个从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到多个从控制器;在由主控制器从多个从控制器分别接收由多个从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失;
在由该控制器将该控制器的待传输数据广播到主控制器和多个其它从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到主控制器和多个其它从控制器;在由该控制器从主控制器和多个其它从控制器分别接收由主控制器和多个其它从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失。
在一些实施方式中,共享总线包括第一总线和第二总线;经由共享总线传输包括:同时在第一总线和第二总线上传输,并响应于在第一总线和第二总线上的传输数据相同而认定传输成功,响应于在第一总线和第二总线上的传输数据不同而认定传输失败。
在一些实施方式中,一个主控制器和多个从控制器的缓冲寄存器均为一个主控制器和多个从控制器的复杂可编程逻辑器件的寄存器。
下面根据具体实施例进一步阐述本发明的具体实施方式。
首先由设备标识确认或者BMC、上层软件制定等方式,确定哪个设备是主机。确定主机后参见图2的顺序执行数据共享和同步。在图2中每个CPLD都有一个(BMC读取缓冲区)。以列为单位。黑色列代表本节点信息。根据BMC要求,需要提供8个状态信息,一个状态信息一个比特(如主从状态,在位状态,BMC监控状态)。一个方块代表其对应列的CRC校验,也是供BMC读取使用。
如图2所示,首先,主机发送同步数据命令,广播local node此刻abcdefgh数值;同时local node更新BMC读取缓冲区对应节点列abcdefgh数值,同时开启一1ms计时器。其他CPLD收到广播后,进行CRC校验。校验失败时,根据帧内“发送设备地址”将节点列对应的CRCbit位设置为1。校验正确时,根据帧内“发送设备地址”将节点列对应的CRC bit位设置为0,同时更新BMC读取缓冲区对应列abcdefgh数值。
主机1ms计时器满后,主机对id=1(id与本主机id一致,则跳过)发送同步请求,同时开启1ms计时器。然后id=1的从机发送同步数据命令,广播local node此刻abcdefgh数值;同时local node更新BMC读取缓冲区对应节点列abcdefgh数值。其他CPLD收到广播后,进行CRC校验。校验失败时,根据帧内“发送设备地址”将节点列对应的CRC bit位设置为1。校验正确时,根据帧内“发送设备地址”将节点列对应的CRC bit位设置为0,同时更新BMC读取缓冲区对应列abcdefgh数值。
主机1ms计时器满后,主机对id=2(id与本主机id一致,则跳过)发送同步请求,同时开启1ms计时器。然后id=2的从机发送同步数据命令,广播local node此刻abcdefgh数值;同时local node更新BMC读取缓冲区对应节点列abcdefgh数值。其他CPLD收到广播后,进行CRC校验。校验失败时,根据帧内“发送设备地址”将节点列对应的CRC bit位设置为1。校验正确时,根据帧内“发送设备地址”将节点列对应的CRC bit位设置为0,同时更新BMC读取缓冲区对应列abcdefgh数值。
主机1ms计时器满后,主机对id=3(id与本主机id一致,则跳过)发送同步请求,同时开启1ms计时器。id=3的从机发送同步数据命令,广播local node此刻abcdefgh数值;同时local node更新BMC读取缓冲区对应节点列abcdefgh数值。其他CPLD收到广播后,进行CRC校验。校验失败时,根据帧内“发送设备地址”将节点列对应的CRC bit位设置为1。校验正确时,根据帧内“发送设备地址”将节点列对应的CRC bit位设置为0,同时更新BMC读取缓冲区对应列abcdefgh数值。
这种方式可以确保四个或者八个BMC读取自己CPLD(复杂逻辑可编程器件)寄存器时,所有数据都是一致的。由此来体现本方法的高可靠性。数据同步全部由CPLD实现,借助CPLD逻辑的实时运行特性,可以将每一刷新数据循环设定在固定的4ms+80us。
CPLD逻辑状态机详见图3。在图3中:
1表示上电复位完成;
2表示Device ID获取失败或者不合法,或者两条总线数据不一致;
8表示Device ID获取成功且合法但compete-enable位为0;
4表示(200ms+Device ID*10ms)内两条总线均无时钟和数据变化;
6表示发出抢主命令后(Device ID*1ms)时间内两条总线均无时钟和数据变化;
7表示发出抢主命令后(Device ID*1ms)内两条总线中至少一条出现了数据变化(时钟或者数据);
9表示1ms计时满;
11表示self data boardcoast中的同步数据发送完成;
10、12、14、17表示收到上层BMC的主从手动设置命令或者BMC挂死(上电3分钟内默认bmc正常)或者连续3个周期出现多主。或者使用总线与备份总线数据不一致;
13表示1ms计时器满,且没有遍历完所有的从node。(目的为循环遍历所有从node);
16表示1ms计时器满,且遍历完所有的从node;
17表示收到主机的“同步请求”;
18表示“同步数据”命令完成;
21表示200ms内两条总线均无时钟和数据变化。
本发明实施例将四个或者八个控制器都挂载在共享总线上。每一个设备都可以为主,也可以为从。由此物理连线方式,可以任意扩展为八控、十六控。总线上有多个设备。同一时刻只能有一个主设备存在。CPLD之间的通信协议需要自定义。为增加数据的可靠性,再备份一条总线,如图4所示。主从设备每次发送命令或者数据都需要在两条总线上同时进行。接受设备只有在两条总线的数据上检测到一样的数据后,才可以开展后续操作,否则丢弃并报错。
另外为增加数据的可靠性,本发明实施例在每个发周期或者收周期尾部都增加一个8bit的CRC校验,当校验失败后,则将数据帧丢失并上报错误。
从上述实施例可以看出,本发明实施例提供的控制器共享同步方法,通过由一个主控制器和多个从控制器的基板管理控制器分别将一个主控制器和多个从控制器的待传输数据各自加载到一个主控制器和多个从控制器的缓冲寄存器;由主控制器将主控制器的待传输数据经由共享总线广播到多个从控制器,并由主控制器从多个从控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器;由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;响应于一个从控制器接收到数据同步请求,而由该控制器将该控制器的待传输数据经由共享总线广播到主控制器和多个其它从控制器,并由该控制器从主控制器和多个其它从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该控制器的缓冲寄存器;使一个主控制器和多个从控制器分别处理其各自的缓冲寄存器中获得的数据以实现数据的共享和同步的技术方案,能够从数据共享和同步释放BMC资源,并且提高数据传输的响应速度。
需要特别指出的是,上述控制器共享同步方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于控制器共享同步方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种从数据共享和同步释放BMC资源,并且提高数据传输的响应速度的控制器共享同步装置的一个实施例。控制器共享同步装置包括:
挂载有一个主控制器和多个从控制器的共享总线;
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时并循环执行以下步骤以在一个主控制器和多个从控制器之间经由共享总线而共享和同步数据:
由一个主控制器和多个从控制器的基板管理控制器分别将一个主控制器和多个从控制器的待传输数据各自加载到一个主控制器和多个从控制器的缓冲寄存器;
由主控制器将主控制器的待传输数据经由共享总线广播到多个从控制器,并由主控制器从多个从控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器;
由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;
响应于一个从控制器接收到数据同步请求,而由该控制器将该控制器的待传输数据经由共享总线广播到主控制器和多个其它从控制器,并由该控制器从主控制器和多个其它从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该控制器的缓冲寄存器;
使一个主控制器和多个从控制器分别处理其各自的缓冲寄存器中获得的数据以实现数据的共享和同步。
在一些实施方式中,每个缓冲寄存器均配置为具有多个存储列,并且多个存储列与一个主控制器和多个从控制器一一对应;
将一个主控制器和多个从控制器的待传输数据各自加载到一个主控制器和多个从控制器的缓冲寄存器包括:将待传输数据各自加载到缓冲寄存器中与一个主控制器或多个从控制器之一相对应的存储列上;
从多个从控制器分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器包括:将由多个从控制器广播的待传输数据分别写入主控制器的缓冲寄存器中与多个从控制器各自相对应的存储列上;
从主控制器和多个其它从控制器分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该控制器的缓冲寄存器包括:将由主控制器和多个其它从控制器广播的待传输数据分别写入该控制器的缓冲寄存器中与主控制器和多个其它从控制器各自相对应的存储列上。
在一些实施方式中,在由主控制器将主控制器的待传输数据广播到多个从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到多个从控制器;在由主控制器从多个从控制器分别接收由多个从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失;
在由该控制器将该控制器的待传输数据广播到主控制器和多个其它从控制器的同时,还计算待传输数据的校验数据,并将校验数据随待传输数据一同广播到主控制器和多个其它从控制器;在由该控制器从主控制器和多个其它从控制器分别接收由主控制器和多个其它从控制器广播的待传输数据的同时,还接收待传输数据的校验数据,基于校验数据而校验待传输数据,并响应于校验失败而认定传输数据丢失。
从上述实施例可以看出,本发明实施例提供的控制器共享同步装置,通过由一个主控制器和多个从控制器的基板管理控制器分别将一个主控制器和多个从控制器的待传输数据各自加载到一个主控制器和多个从控制器的缓冲寄存器;由主控制器将主控制器的待传输数据经由共享总线广播到多个从控制器,并由主控制器从多个从控制器经由共享总线分别接收由多个从控制器广播的待传输数据以写入主控制器的缓冲寄存器;由主控制器的复杂可编程逻辑器件依次向每个从控制器经由共享总线分别发出数据同步请求;响应于一个从控制器接收到数据同步请求,而由该控制器将该控制器的待传输数据经由共享总线广播到主控制器和多个其它从控制器,并由该控制器从主控制器和多个其它从控制器经由共享总线分别接收由主控制器和多个其它从控制器广播的待传输数据以写入该控制器的缓冲寄存器;使一个主控制器和多个从控制器分别处理其各自的缓冲寄存器中获得的数据以实现数据的共享和同步的技术方案,能够从数据共享和同步释放BMC资源,并且提高数据传输的响应速度。
需要特别指出的是,上述控制器共享同步装置的实施例采用了所述控制器共享同步方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述控制器共享同步方法的其他实施例中。当然,由于所述控制器共享同步方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述控制器共享同步装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种控制器共享同步方法,其特征在于,包括循环执行以下步骤:
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器;
由所述主控制器将待传输数据经由所述共享总线广播到多个所述从控制器,并由所述主控制器经由所述共享总线分别接收由多个所述从控制器广播的待传输数据以写入所述主控制器的缓冲寄存器;
由所述主控制器的复杂可编程逻辑器件依次向每个所述从控制器经由所述共享总线分别发出数据同步请求;
响应于有从控制器接收到所述数据同步请求,而由所述从控制器将待传输数据经由所述共享总线广播到所述主控制器和多个其它从控制器,并由所述从控制器经由所述共享总线分别接收由所述主控制器和多个其它从控制器广播的待传输数据以写入所述从控制器的缓冲寄存器;
使一个所述主控制器和多个所述从控制器分别处理其各自的所述缓冲寄存器中获得的数据以实现数据的共享和同步。
2.根据权利要求1所述的方法,其特征在于,由所述主控制器的复杂可编程逻辑器件依次向每个所述从控制器分别发出数据同步请求包括:
由所述主控制器确定请求周期,并且在向一个所述从控制器发出所述数据同步请求之后等待至少一个请求周期再向下一个所述从控制器发出所述数据同步请求。
3.根据权利要求1所述的方法,其特征在于,每个所述缓冲寄存器均配置为具有多个存储列,并且多个所述存储列与一个所述主控制器和多个所述从控制器一一对应;
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器包括:将所述待传输数据各自加载到所述缓冲寄存器中与一个所述主控制器或多个所述从控制器之一相对应的所述存储列上。
4.根据权利要求3所述的方法,其特征在于,由所述主控制器经由所述共享总线分别接收由多个所述从控制器广播的待传输数据以写入所述主控制器的缓冲寄存器包括:将由多个所述从控制器广播的所述待传输数据分别写入所述主控制器的所述缓冲寄存器中与多个所述从控制器各自相对应的所述存储列上;
由所述从控制器经由所述共享总线分别接收由所述主控制器和多个其它从控制器广播的待传输数据以写入所述从控制器的缓冲寄存器包括:将由所述主控制器和多个其它从控制器广播的所述待传输数据分别写入所述从控制器的缓冲寄存器中与所述主控制器和多个其它从控制器各自相对应的所述存储列上。
5.根据权利要求1所述的方法,其特征在于,还包括:
在由所述主控制器将待传输数据经由所述共享总线广播到多个所述从控制器的同时,还计算所述待传输数据的校验数据,并将所述校验数据随所述待传输数据一同广播到多个所述从控制器;
在由所述主控制器经由所述共享总线分别接收由多个所述从控制器广播的待传输数据的同时,还接收所述待传输数据的校验数据,基于所述校验数据而校验所述待传输数据,并响应于校验失败而认定传输数据丢失;
在由所述从控制器将待传输数据经由所述共享总线广播到所述主控制器和多个其它从控制器的同时,还计算所述待传输数据的校验数据,并将所述校验数据随所述待传输数据一同广播到所述主控制器和多个其它从控制器;
在由所述从控制器经由所述共享总线分别接收由所述主控制器和多个其它从控制器广播的待传输数据的同时,还接收所述待传输数据的校验数据,基于所述校验数据而校验所述待传输数据,并响应于校验失败而认定传输数据丢失。
6.根据权利要求1所述的方法,其特征在于,所述共享总线包括第一总线和第二总线;经由所述共享总线传输包括:
同时在所述第一总线和所述第二总线上传输,并响应于在所述第一总线和所述第二总线上的传输数据相同而认定传输成功,响应于在所述第一总线和所述第二总线上的传输数据不同而认定传输失败。
7.根据权利要求1所述的方法,其特征在于,一个所述主控制器和多个所述从控制器的所述缓冲寄存器均为一个所述主控制器和多个所述从控制器的所述复杂可编程逻辑器件的寄存器。
8.一种控制器共享同步装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时并循环执行以下步骤:
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器;
由所述主控制器将待传输数据经由所述共享总线广播到多个所述从控制器,并由所述主控制器经由所述共享总线分别接收由多个所述从控制器广播的待传输数据以写入所述主控制器的缓冲寄存器;
由所述主控制器的复杂可编程逻辑器件依次向每个所述从控制器经由所述共享总线分别发出数据同步请求;
响应于有从控制器接收到所述数据同步请求,而由所述从控制器将待传输数据经由所述共享总线广播到所述主控制器和多个其它从控制器,并由所述从控制器经由所述共享总线分别接收由所述主控制器和多个其它从控制器广播的待传输数据以写入所述从控制器的缓冲寄存器;
使一个所述主控制器和多个所述从控制器分别处理其各自的所述缓冲寄存器中获得的数据以实现数据的共享和同步。
9.根据权利要求8所述的装置,其特征在于,每个所述缓冲寄存器均配置为具有多个存储列,并且多个所述存储列与一个所述主控制器和多个所述从控制器一一对应;
由并联到共享总线的一个主控制器和多个从控制器的基板管理控制器分别将待传输数据加载到各自的缓冲寄存器包括:将所述待传输数据各自加载到所述缓冲寄存器中与一个所述主控制器或多个所述从控制器之一相对应的所述存储列上;
由所述主控制器经由所述共享总线分别接收由多个所述从控制器广播的待传输数据以写入所述主控制器的缓冲寄存器包括:将由多个所述从控制器广播的所述待传输数据分别写入所述主控制器的所述缓冲寄存器中与多个所述从控制器各自相对应的所述存储列上;
由所述从控制器经由所述共享总线分别接收由所述主控制器和多个其它从控制器广播的待传输数据以写入所述从控制器的缓冲寄存器包括:将由所述主控制器和多个其它从控制器广播的所述待传输数据分别写入所述从控制器的缓冲寄存器中与所述主控制器和多个其它从控制器各自相对应的所述存储列上。
10.根据权利要求8所述的装置,其特征在于,所述步骤还包括:
在由所述主控制器将待传输数据经由所述共享总线广播到多个所述从控制器的同时,还计算所述待传输数据的校验数据,并将所述校验数据随所述待传输数据一同广播到多个所述从控制器;
在由所述主控制器经由所述共享总线分别接收由多个所述从控制器广播的待传输数据的同时,还接收所述待传输数据的校验数据,基于所述校验数据而校验所述待传输数据,并响应于校验失败而认定传输数据丢失;
在由所述从控制器将待传输数据经由所述共享总线广播到所述主控制器和多个其它从控制器的同时,还计算所述待传输数据的校验数据,并将所述校验数据随所述待传输数据一同广播到所述主控制器和多个其它从控制器;
在由所述从控制器经由所述共享总线分别接收由所述主控制器和多个其它从控制器广播的待传输数据的同时,还接收所述待传输数据的校验数据,基于所述校验数据而校验所述待传输数据,并响应于校验失败而认定传输数据丢失。
CN202011183021.3A 2020-10-29 2020-10-29 一种控制器共享同步方法和装置 Active CN112433968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011183021.3A CN112433968B (zh) 2020-10-29 2020-10-29 一种控制器共享同步方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011183021.3A CN112433968B (zh) 2020-10-29 2020-10-29 一种控制器共享同步方法和装置

Publications (2)

Publication Number Publication Date
CN112433968A true CN112433968A (zh) 2021-03-02
CN112433968B CN112433968B (zh) 2022-07-26

Family

ID=74696495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011183021.3A Active CN112433968B (zh) 2020-10-29 2020-10-29 一种控制器共享同步方法和装置

Country Status (1)

Country Link
CN (1) CN112433968B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244753A (zh) * 2021-11-29 2022-03-25 上海繁易信息科技股份有限公司 基于rs485总线的多个上位机与控制器快速通讯结构及快速通讯方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990325A (zh) * 2019-10-31 2020-04-10 苏州浪潮智能科技有限公司 一种基于i2c总线的数据传输方法与装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990325A (zh) * 2019-10-31 2020-04-10 苏州浪潮智能科技有限公司 一种基于i2c总线的数据传输方法与装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244753A (zh) * 2021-11-29 2022-03-25 上海繁易信息科技股份有限公司 基于rs485总线的多个上位机与控制器快速通讯结构及快速通讯方法
CN114244753B (zh) * 2021-11-29 2023-09-29 上海繁易信息科技股份有限公司 基于rs485总线的多个上位机与控制器快速通讯方法

Also Published As

Publication number Publication date
CN112433968B (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
CN100458707C (zh) 实现用户配置的方法、系统及主核和从核
CN105224362A (zh) 上位机对下位机进行程序升级的方法及系统
CN107070731B (zh) 一种主从仲裁方法及系统
CN110580235B (zh) 一种sas扩展器通信方法及装置
Chau et al. Design of a fault-tolerant COTS-based bus architecture
JPH086910A (ja) クラスタ型計算機システム
CN110716793A (zh) 一种分布式事务的执行方法、装置、设备及存储介质
KR20170013319A (ko) 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템
CN112433968B (zh) 一种控制器共享同步方法和装置
CN111880947A (zh) 一种数据传输方法及装置
JP3247074B2 (ja) アドレス設定方法、及びこのアドレス設定方法が適用される通信システム
CN115987999A (zh) 多机系统的主从竞争方法、装置、arm及存储介质
CN113890880A (zh) 一种多节点间的数据同步方法、系统、设备及存储介质
CN108037942B (zh) 一种嵌入式设备的自适应数据恢复与更新方法及装置
CN112463666A (zh) 一种控制器主从分配方法和装置
JP3266841B2 (ja) 通信制御装置
CN113032477A (zh) 基于gtid的长距离数据同步方法、装置及计算设备
CN218974903U (zh) 一种国产服务器bios固件备份装置
US10983879B1 (en) System and method for managing recovery of multi-controller NVMe drives
CN117130558A (zh) 存储设备指令聚合方法、装置、计算机设备及存储介质
CN112214466B (zh) 分布式集群系统及数据写入方法、电子设备、存储装置
JP2752760B2 (ja) 電源制御方式
US8291143B1 (en) Single line communication
CN117640349A (zh) 网络附加存储系统集群的故障恢复方法、装置及主机设备
CN116303130A (zh) 存储设备异步事件上报方法及其应用设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant