CN112463666A - 一种控制器主从分配方法和装置 - Google Patents

一种控制器主从分配方法和装置 Download PDF

Info

Publication number
CN112463666A
CN112463666A CN202011186851.1A CN202011186851A CN112463666A CN 112463666 A CN112463666 A CN 112463666A CN 202011186851 A CN202011186851 A CN 202011186851A CN 112463666 A CN112463666 A CN 112463666A
Authority
CN
China
Prior art keywords
controller
master
time
bus
time delay
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.)
Withdrawn
Application number
CN202011186851.1A
Other languages
English (en)
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 CN202011186851.1A priority Critical patent/CN112463666A/zh
Publication of CN112463666A publication Critical patent/CN112463666A/zh
Withdrawn legal-status Critical Current

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/1684Details of memory controller using multiple buses
    • 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/1689Synchronisation and timing concerns

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种控制器主从分配方法和装置,方法包括:将并联到共享总线的多个控制器同时上电,使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,否则发出抢主信号并将控制器自身设置为预备主控制器;使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器。本发明能够从主从分配释放BMC资源,并提高主从分配的响应速度。

Description

一种控制器主从分配方法和装置
技术领域
本发明涉及存储控制领域,更具体地,特别是指一种控制器主从分配方法和装置。
背景技术
存储控制器在十年前形成了双控、四控、八控甚至十六控的架构设置,多控之间共同处理业务,大大提升了业务性能。在主控突然宕机后,由另外一控接管业务,大大提高了数据安全和设备的容灾性能。每个控制器均有BMC(基板管理控制器)芯片,BMC芯片用来做机箱温度,电压和风扇控制,同时访问双控的共享器件。正常运行时不能两个BMC同时访问共享器件,否则将违背I2C(内部集成电路)通信规范,出现多主机问题,造成通信失败。所以再存储双控场景下两个BMC之间是一定要区分自己是主还是从的。
目前大多采用主从策略是:BMC利用控制器ID(标识)来配置控制器的主从。同时对于各种特殊场景,如热插拔控制器,BMC挂死,BMC程控主从切换等,BMC内部再做特殊场景处理。但是主从分配将占用BMC芯片资源;确认时间慢,无法满足上层存储软件要求;如果扩展为四控或者八控则需要大量修改bmc代码,扩展性较差;bmc本身基于精简的linux系统,必然存在程序跑飞的几率,带来风险。
针对现有技术中BMC不适于为控制器执行主从分配的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种控制器主从分配方法和装置,能够从主从分配释放BMC资源,并提高主从分配的响应速度。
基于上述目的,本发明实施例的第一方面提供了一种控制器主从分配方法,包括执行以下步骤:
将并联到共享总线的多个控制器同时上电,基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;
使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,是则将控制器自身设置为从控制器,否则发出抢主信号并将控制器自身设置为预备主控制器;
使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,是则将该预备主控制器自身设置为从控制器,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器。
在一些实施方式中,每个控制器各自具有不同的设备标识;基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟包括:
确定具有不同数量级的第一时间长度、第二时间长度、和第三时间长度,其中在数量级上第一时间长度大于第二时间长度大于第三时间长度;
基于第一时间长度和经控制器的设备标识调制的第二时间长度确定第一时间延迟;
基于经控制器的设备标识调制的第三时间长度确定第二时间延迟。
在一些实施方式中,第一时间长度为100毫秒;第二时间长度为10毫秒;第三时间长度为1毫秒;设备标识为多个控制器的排列顺序编号自然数。
在一些实施方式中,方法还包括:响应于主控制器的基板管理控制器的内部软重启或程序跑飞导致其心跳信号丢失,而由剩余的多个从控制器重新确定一个主控制器。
在一些实施方式中,共享总线包括第一总线和第二总线;判断每个控制器在共享总线上是否检测到发生过电平变化包括:
同时在第一总线和第二总线上检测电平变化,并响应于在第一总线和第二总线上检测到完全相同的电平变化而认定发生了电平变化,并响应于在第一总线和第二总线检测到不完全相同的电平变化而认定通信失败并报错。
在一些实施方式中,方法还包括:在发出抢主信号或抢主成功信号的同时,还计算抢主信号或抢主成功信号的校验数据,并将校验数据随抢主信号或抢主成功信号一同发出;
在多个控制器接收抢主信号或抢主成功信号的同时,还接收抢主信号或抢主成功信号的校验数据,基于校验数据而校验抢主信号或抢主成功信号,并响应于校验失败而认定通信失败并报错。
在一些实施方式中,方法还包括:响应于认定通信失败并报错而启用控制器自身的禁止抢主使能,控制器在启用禁止抢主使能期间持续将控制器自身设置为从控制器。
本发明实施例的第二方面提供了一种控制器主从分配装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
将并联到共享总线的多个控制器同时上电,基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;
使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,是则将控制器自身设置为从控制器,否则发出抢主信号并将控制器自身设置为预备主控制器;
使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,是则将该预备主控制器自身设置为从控制器,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器。
在一些实施方式中,每个控制器各自具有不同的设备标识;基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟包括:确定具有不同数量级的第一时间长度、第二时间长度、和第三时间长度,其中在数量级上第一时间长度大于第二时间长度大于第三时间长度;基于第一时间长度和经控制器的设备标识调制的第二时间长度确定第一时间延迟;基于经控制器的设备标识调制的第三时间长度确定第二时间延迟。
在一些实施方式中,共享总线包括第一总线和第二总线;判断每个控制器在共享总线上是否检测到发生过电平变化包括:同时在第一总线和第二总线上检测电平变化,并响应于在第一总线和第二总线上检测到完全相同的电平变化而认定发生了电平变化,并响应于在第一总线和第二总线检测到不完全相同的电平变化而认定通信失败并报错;
步骤还包括:响应于认定通信失败并报错而启用控制器自身的禁止抢主使能,控制器在启用禁止抢主使能期间持续将控制器自身设置为从控制器。
本发明具有以下有益技术效果:本发明实施例提供的控制器主从分配方法和装置,通过将并联到共享总线的多个控制器同时上电,基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,是则将控制器自身设置为从控制器,否则发出抢主信号并将控制器自身设置为预备主控制器;使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,是则将该预备主控制器自身设置为从控制器,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器的技术方案,能够从主从分配释放BMC资源,并提高主从分配的响应速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的控制器主从分配方法的流程示意图;
图2为本发明提供的控制器主从分配方法的控制器抢主示意图;
图3为本发明提供的控制器主从分配方法的控制器逻辑状态图;
图4为本发明提供的控制器主从分配方法的共享总线示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种从主从分配释放BMC资源,并提高主从分配的响应速度的控制器主从分配方法的一个实施例。图1示出的是本发明提供的控制器主从分配方法的流程示意图。
所述的控制器主从分配方法,如图1所示,包括执行以下步骤:
步骤S101,将并联到共享总线的多个控制器同时上电,基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;
步骤S103,使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,是则将控制器自身设置为从控制器,否则发出抢主信号并将控制器自身设置为预备主控制器;
步骤S105,使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,是则将该预备主控制器自身设置为从控制器,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,每个控制器各自具有不同的设备标识;基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟包括:
确定具有不同数量级的第一时间长度、第二时间长度、和第三时间长度,其中在数量级上第一时间长度大于第二时间长度大于第三时间长度;
基于第一时间长度和经控制器的设备标识调制的第二时间长度确定第一时间延迟;
基于经控制器的设备标识调制的第三时间长度确定第二时间延迟。
在一些实施方式中,第一时间长度为100毫秒;第二时间长度为10毫秒;第三时间长度为1毫秒;设备标识为多个控制器的排列顺序编号自然数。
在一些实施方式中,方法还包括:响应于主控制器的基板管理控制器的内部软重启或程序跑飞导致其心跳信号丢失,而由剩余的多个从控制器重新确定一个主控制器。
在一些实施方式中,共享总线包括第一总线和第二总线;判断每个控制器在共享总线上是否检测到发生过电平变化包括:
同时在第一总线和第二总线上检测电平变化,并响应于在第一总线和第二总线上检测到完全相同的电平变化而认定发生了电平变化,并响应于在第一总线和第二总线检测到不完全相同的电平变化而认定通信失败并报错。
在一些实施方式中,方法还包括:在发出抢主信号或抢主成功信号的同时,还计算抢主信号或抢主成功信号的校验数据,并将校验数据随抢主信号或抢主成功信号一同发出;
在多个控制器接收抢主信号或抢主成功信号的同时,还接收抢主信号或抢主成功信号的校验数据,基于校验数据而校验抢主信号或抢主成功信号,并响应于校验失败而认定通信失败并报错。
在一些实施方式中,方法还包括:响应于认定通信失败并报错而启用控制器自身的禁止抢主使能,控制器在启用禁止抢主使能期间持续将控制器自身设置为从控制器。
下面根据具体实施例进一步阐述本发明的具体实施方式。
如果被设置禁止抢主(compete_enable=0),则直接设置自己为从。出现compete_enable=0的场景有:ID校验错误;两条总线数据不一致;bmc无心跳;bmc发起(主从手动设置)命令。
在200ms+ID号*10ms时间内,检测2路时钟和数据,任一信号有高低电平变化,则设置自己为从。例如:某个设备的ID为5,200ms+5*10ms时间内没有时钟和数据变化,则发送抢主命令。
200ms+ID号*10ms时间内,检测2路时钟和数据,所有信号没有高低电平变化,则发起(抢主命令),预设自己为主(master bit=01)
从发起抢主命令,计时ID号*1ms,检测2路时钟和数据,所有信号没有高低电平变化,则发起(抢主成功命令),并设置自己为主(master bit=11)
从发起抢主命令,计时ID号*1ms,检测2路时钟和数据,任一信号有高低电平变化,设置自己为从,并设置自己为从(master bit=00)。这可以解决多个设备同一时刻抢主的问题。
需要注意的是:第一次上电后,bmc从上电到给出心跳信号大约3分钟的时间,为防止3分钟内4个node都将自己设为从。第一次上电的3分钟周期内,默认为都接到了BMC的心跳信号。3分钟后,如果真的出现了为主node的BMC无心跳,则重新触发抢主流程。如果为主node的BMC内部软重启,需要CPLD重新切换主从。为主node的BMC程序跑飞,无心跳输出,也需要CPLD重新切换主从。
其具体流程参见图2,各控制器的抢主信号和抢主间隔信号都彼此间隔开使得不互相干扰并且能够确定一个主控制器。一次主从竞争流程大约需要280ms(八控场景),240ms(四控场景)。对比BMC主从分配,大约需要2-3s才能完成。
在图2的基本流程中,10ms,20ms,30ms,40ms由来为10ms乘以节点序(1,2,3,4,5,6,7,8)。1ms,2ms,3ms,4ms由来为10ms乘以节点序号(1,2,3,4,5,6,7,8)。发了抢主命令后,自动计时,窗口时间到后,自动发送抢主成功命令。
在图2的理想场景中,每个从节点200ms+ID号*10ms检测总线是否有电平变化,无则预设自己为主(master bit=01),同时发送抢主命令;有则设置自己为从(master bit=00)。每个预设主节点,ID号*1ms时间内检测总线是否有电平变化,无则预设自己为主(master bit=11),同时发送抢主成功命令;有则设置自己为从(master bit=00)。Node2,3,4在此处检测到总线上的电平变化,将自己设置为从。自己设为从后,不会发送抢主命令。
在图2的一个节点前移导致抢主命令重叠的场景中,Node2,node1同时发出抢主命令,或者两个抢主命令有部分叠加。在发送抢主命令后都预设为主(master bit=01)。Node3,4在此处检测到总线上的电平变化,将自己设置为从(master bit=00)。Node1的1ms时间窗口后发抢主成功命令同时将自己设为主(master bit=11)。Node2在2ms的时间周期内必将检测到总线电平跳变,则将自己设为从(master bit=00)。最差状态:node2的stop与node1的start叠加在一起,抢主命令周期为80us,1ms时间窗口能够保证node1与node2的抢主成功命令不会叠加。此处灰色代表什么都不发送。
在图2的一个节点前移导致抢主成功重叠的场景中,Node1,3,4在此处检测到总线上的电平变化,将自己设置为从(master bit=00)。Node1已经设置为从,不会发送抢主命令。
在图2的一个节点后移的场景中,Node1后延,刚好错过了主发“抢主”“抢主成功”。但以最快的1节点10ms来说,只要主机从抢主成功到开展主从数据同步时间小于10ms,即可覆盖这个场景。
另外,控制器逻辑状态参见图3。在图3中:
1表示上电复位完成;
2表示Device ID获取失败或者不合法;或者两条总线数据不一致;
8表示Device ID获取成功且合法但compete-enable位为0;
3表示Device ID获取成功且合法且compete-enable位为1;
4表示(200ms+Device ID*10ms)内两条总线均无时钟和数据变化;
5表示(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内两条总线均无时钟和数据变化。
另外如图4所示,共享总线包括互为校验的二根总线。两路总线互为备份,备份总线传输数据与主总线完全一致;如果不一致,则设置(禁止抢主compete_enable=0),并上报错误。这可以解决某一总线CLK和DATA均出现异常的问题。对硬件的需求:两路总线互为备份,各需要2根信号。
从上述实施例可以看出,本发明实施例提供的控制器主从分配方法,通过将并联到共享总线的多个控制器同时上电,基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,是则将控制器自身设置为从控制器,否则发出抢主信号并将控制器自身设置为预备主控制器;使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,是则将该预备主控制器自身设置为从控制器,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器的技术方案,能够从主从分配释放BMC资源,并提高主从分配的响应速度。
需要特别指出的是,上述控制器主从分配方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于控制器主从分配方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种从主从分配释放BMC资源,并提高主从分配的响应速度的控制器主从分配装置的一个实施例。控制器主从分配装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
将并联到共享总线的多个控制器同时上电,基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;
使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,是则将控制器自身设置为从控制器,否则发出抢主信号并将控制器自身设置为预备主控制器;
使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,是则将该预备主控制器自身设置为从控制器,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器。
在一些实施方式中,每个控制器各自具有不同的设备标识;基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟包括:确定具有不同数量级的第一时间长度、第二时间长度、和第三时间长度,其中在数量级上第一时间长度大于第二时间长度大于第三时间长度;基于第一时间长度和经控制器的设备标识调制的第二时间长度确定第一时间延迟;基于经控制器的设备标识调制的第三时间长度确定第二时间延迟。
在一些实施方式中,共享总线包括第一总线和第二总线;判断每个控制器在共享总线上是否检测到发生过电平变化包括:同时在第一总线和第二总线上检测电平变化,并响应于在第一总线和第二总线上检测到完全相同的电平变化而认定发生了电平变化,并响应于在第一总线和第二总线检测到不完全相同的电平变化而认定通信失败并报错;
步骤还包括:响应于认定通信失败并报错而启用控制器自身的禁止抢主使能,控制器在启用禁止抢主使能期间持续将控制器自身设置为从控制器。
从上述实施例可以看出,本发明实施例提供的控制器主从分配装置,通过将并联到共享总线的多个控制器同时上电,基于每个控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个控制器等待直到控制器的基板管理控制器启动并接收到其心跳信号;使每个控制器等待第一时间延迟,并判断每个控制器在第一时间延迟之内在共享总线上是否检测到发生过电平变化,是则将控制器自身设置为从控制器,否则发出抢主信号并将控制器自身设置为预备主控制器;使每个预备主控制器等待第二时间延迟,并判断每个预备主控制器在第二时间延迟之内在共享总线上是否检测到发生过电平变化,是则将该预备主控制器自身设置为从控制器,否则发出抢主成功信号并将该预备主控制器自身设置为主控制器的技术方案,能够从主从分配释放BMC资源,并提高主从分配的响应速度。
需要特别指出的是,上述控制器主从分配装置的实施例采用了所述控制器主从分配方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述控制器主从分配方法的其他实施例中。当然,由于所述控制器主从分配方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述控制器主从分配装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种控制器主从分配方法,其特征在于,包括执行以下步骤:
将并联到共享总线的多个控制器同时上电,基于每个所述控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个所述控制器等待直到所述控制器的基板管理控制器启动并接收到其心跳信号;
使每个所述控制器等待所述第一时间延迟,并判断每个所述控制器在所述第一时间延迟之内在所述共享总线上是否检测到发生过电平变化,是则将所述控制器自身设置为从控制器,否则发出抢主信号并将所述控制器自身设置为预备主控制器;
使每个所述预备主控制器等待所述第二时间延迟,并判断每个所述预备主控制器在所述第二时间延迟之内在所述共享总线上是否检测到发生过电平变化,是则将所述预备主控制器自身设置为从控制器,否则发出抢主成功信号并将所述预备主控制器自身设置为主控制器。
2.根据权利要求1所述的方法,其特征在于,每个所述控制器各自具有不同的所述设备标识;基于每个所述控制器各自的设备标识分别确定第一时间延迟和第二时间延迟包括:
确定具有不同数量级的第一时间长度、第二时间长度、和第三时间长度,其中在数量级上所述第一时间长度大于所述第二时间长度大于所述第三时间长度;
基于所述第一时间长度和经所述控制器的设备标识调制的所述第二时间长度确定所述第一时间延迟;
基于经所述控制器的设备标识调制的所述第三时间长度确定所述第二时间延迟。
3.根据权利要求2所述的方法,其特征在于,所述第一时间长度为100毫秒;所述第二时间长度为10毫秒;所述第三时间长度为1毫秒;所述设备标识为多个所述控制器的排列顺序编号自然数。
4.根据权利要求3所述的方法,其特征在于,还包括:响应于所述主控制器的基板管理控制器的内部软重启或程序跑飞导致其心跳信号丢失,而由剩余的多个所述从控制器重新确定一个主控制器。
5.根据权利要求1所述的方法,其特征在于,所述共享总线包括第一总线和第二总线;判断每个所述控制器在所述共享总线上是否检测到发生过电平变化包括:
同时在所述第一总线和所述第二总线上检测电平变化,并响应于在所述第一总线和所述第二总线上检测到完全相同的电平变化而认定发生了电平变化,并响应于在所述第一总线和所述第二总线检测到不完全相同的电平变化而认定通信失败并报错。
6.根据权利要求1所述的方法,其特征在于,还包括:在发出所述抢主信号或所述抢主成功信号的同时,还计算所述抢主信号或所述抢主成功信号的校验数据,并将所述校验数据随所述抢主信号或所述抢主成功信号一同发出;
在多个所述控制器接收所述抢主信号或所述抢主成功信号的同时,还接收所述抢主信号或所述抢主成功信号的所述校验数据,基于所述校验数据而校验所述抢主信号或所述抢主成功信号,并响应于校验失败而认定通信失败并报错。
7.根据权利要求5或6所述的方法,其特征在于,还包括:响应于认定通信失败并报错而启用所述控制器自身的禁止抢主使能,所述控制器在启用所述禁止抢主使能期间持续将所述控制器自身设置为从控制器。
8.一种控制器主从分配装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤:
将并联到共享总线的多个控制器同时上电,基于每个所述控制器各自的设备标识分别确定第一时间延迟和第二时间延迟,并使每个所述控制器等待直到所述控制器的基板管理控制器启动并接收到其心跳信号;
使每个所述控制器等待所述第一时间延迟,并判断每个所述控制器在所述第一时间延迟之内在所述共享总线上是否检测到发生过电平变化,是则将所述控制器自身设置为从控制器,否则发出抢主信号并将所述控制器自身设置为预备主控制器;
使每个所述预备主控制器等待所述第二时间延迟,并判断每个所述预备主控制器在所述第二时间延迟之内在所述共享总线上是否检测到发生过电平变化,是则将所述预备主控制器自身设置为从控制器,否则发出抢主成功信号并将所述预备主控制器自身设置为主控制器。
9.根据权利要求8所述的装置,其特征在于,每个所述控制器各自具有不同的所述设备标识;基于每个所述控制器各自的设备标识分别确定第一时间延迟和第二时间延迟包括:确定具有不同数量级的第一时间长度、第二时间长度、和第三时间长度,其中在数量级上所述第一时间长度大于所述第二时间长度大于所述第三时间长度;基于所述第一时间长度和经所述控制器的设备标识调制的所述第二时间长度确定所述第一时间延迟;基于经所述控制器的设备标识调制的所述第三时间长度确定所述第二时间延迟。
10.根据权利要求8所述的装置,其特征在于,所述共享总线包括第一总线和第二总线;判断每个所述控制器在所述共享总线上是否检测到发生过电平变化包括:同时在所述第一总线和所述第二总线上检测电平变化,并响应于在所述第一总线和所述第二总线上检测到完全相同的电平变化而认定发生了电平变化,并响应于在所述第一总线和所述第二总线检测到不完全相同的电平变化而认定通信失败并报错;
所述步骤还包括:响应于认定通信失败并报错而启用所述控制器自身的禁止抢主使能,所述控制器在启用所述禁止抢主使能期间持续将所述控制器自身设置为从控制器。
CN202011186851.1A 2020-10-29 2020-10-29 一种控制器主从分配方法和装置 Withdrawn CN112463666A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011186851.1A CN112463666A (zh) 2020-10-29 2020-10-29 一种控制器主从分配方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011186851.1A CN112463666A (zh) 2020-10-29 2020-10-29 一种控制器主从分配方法和装置

Publications (1)

Publication Number Publication Date
CN112463666A true CN112463666A (zh) 2021-03-09

Family

ID=74835162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011186851.1A Withdrawn CN112463666A (zh) 2020-10-29 2020-10-29 一种控制器主从分配方法和装置

Country Status (1)

Country Link
CN (1) CN112463666A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113202804A (zh) * 2021-05-31 2021-08-03 山东英信计算机技术有限公司 一种灵活调节服务器风扇转速的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113202804A (zh) * 2021-05-31 2021-08-03 山东英信计算机技术有限公司 一种灵活调节服务器风扇转速的方法

Similar Documents

Publication Publication Date Title
EP3607704A1 (en) A method for sharing a can bus between a plurality of nodes, a circuit comprising a can bus and a plurality of nodes, and an electric aircraft with such a circuit
US7681073B2 (en) Arbitration system for redundant controllers, with output interlock and automatic switching capabilities
CN108563557B (zh) 一种多通道计算机的通道同步方法及装置
CN111090600B (zh) 一种总线共享的方法
EP2376994B1 (en) Autonomous multi-device event synchronization and sequencing technique eliminating master and slave assignments
CA2531092A1 (en) Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
CN108259227B (zh) 一种双机热备联锁系统的数据同步方法
JP6659552B2 (ja) マルチマスタバス
CN102073562A (zh) 基于硬件的主备倒换仲裁方法
CN110908841A (zh) 一种i2c通信异常恢复方法及装置
CN103744753B (zh) 一种双机系统的数据交互方法与装置
CN112486740B (zh) 一种多控制器之间的主从关系确认方法、系统及相关装置
CN102880527A (zh) 一种基板管理控制器的数据恢复方法
CN112463666A (zh) 一种控制器主从分配方法和装置
CN102891762A (zh) 连续处理网络数据的系统及方法
US20240054085A1 (en) Method for controlling a target memory by programmably selecting an action execution circuit module corresponding to a triggered preset state
US20070183460A1 (en) Method for establishing a user of a data network as a pilot master
CN110764829B (zh) 一种多路服务器cpu隔离方法及系统
CN112433968B (zh) 一种控制器共享同步方法和装置
CN116382060A (zh) 一种故障无间断的can通讯车载域控制器系统
CN115756824A (zh) 一种服务器中处理器信息的带外查询/配置方法及服务器
CN105573869A (zh) 一种基于i2c总线的系统控制器容错控制方法
CN109308234B (zh) 一种控制板卡上多个控制器进行主备切换的方法
JP3266841B2 (ja) 通信制御装置
KR20140092132A (ko) 알티오에스 마이컴의 오에스 태스크의 모니터링 방법

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210309