恢复不稳定总线的稳定性的制作方法

文档序号:6352019阅读:174来源:国知局
专利名称:恢复不稳定总线的稳定性的制作方法
恢复不稳定总线的稳定性
背景技术
当设计高可用性计算系统时,鼓励提供可在最小停机时间下快速重获全系统性能的故障恢复机制。出于成本原因,应当将被具体需要以执行故障恢复任务的附加硬件和软件降至最小限度。


图I是示出了根据本发明的实施例的通过介于其间的集成电路间(I2C)总线而耦合的总线主设备和各个从设备的系统级框图。
图2示出了根据本发明的实施例的时钟周期与正由总线传输的数据字之间的相对定时。图3a和3b示出了在发起和終止沿图I所示的总线的数据传输的开始和停止序列期间时钟和数据线上的作为时间的函数的信号电平。图4是根据本发明的实施例的恢复不稳定总线的稳定性的方法的流程图。图5是根据本发明的实施例的用于恢复不稳定总线的稳定性的逻辑模块的表示。
具体实施例方式可以在许多计算环境中使用用于恢复不稳定计算机数据总线的稳定性的方法和逻辑模块,以使用最少的硬件和软件资源来快速重获对数据总线的控制。本发明的实施例可以尤其有益于高可用性计算系统,其中,任何停机时间可以显著影响依赖于高可用性计算系统的输出的其他计算资源的处理功能。图I是示出了根据本发明的实施例的通过介于其间的集成电路间(I2C)总线(20)而耦合的总线主设备和各个从设备的系统级框图。在图I中,总线主设备10通过总线20与从设备30、40和100进行通信。尽管在图中仅示出了三个从设备(30、40和100),但是本发明的实施例可以包括少至ー个从设备或者可能也许包括10个或更多个从设备。本发明的其他实施例还可以包括置于集成电路间总线20与从设备的附加集合(由可能10个或更多个从设备构成)之间的复用器,这些从设备通过该复用器来与总线20进行通信。这意味着总线主设备10可以与可能多至50至100 (或更多个)从设备进行通信,这些从设备或者直接与集成电路间总线20对接或者通过介于其间的复用器间接与总线20对接。图I的示例的总线架构包括上拉电阻器Rl和R2,上拉电阻器Rl和R2与3. 3伏DC源对接。为了引起时钟周期,总线主设备暂时给集成电路间总线20的时钟线22提供信号接地。根据集成电路间总线规范,总线主设备20以100 kHz或可能400 kHz的速率给时钟线22提供信号接地。为了引起从总线主设备10至与总线20对接的从设备中的ー个或多个的数据传输,总线主设备给数据线24提供信号接地。总线20上存在的电压中的这些调制由每个从设备感测并使从设备将这些调制解释为ニ进制I或ニ进制O。图2示出了根据本发明的实施例的时钟周期与正由总线传输的数据字之间的相对定吋。在图2中可见,在数据线24上存在八个数据比特,之后是时段9处的肯定应答(ACK)比特。还可见,数据线24上存在的每个数据比特与时钟线22的时钟周期锁步地(inlockstep with)出现。在图2中,数据比特置于数据线上,以最高有效位开始,每个八比特数据字的传输在时钟线22被拉低时开始。图3a和3b示出了在发起和终止沿图I的总线20的数据传输的开始和停止序列(或比特)期间时钟线(22)和数据线(24)上的作为时间的函数的信号电平。相比于图2的数据和肯定应答比特1-9与时钟线22的周期的对准,当数据线24改变状态而时钟线22被拉高时,开始序列200和停止序列210出现。因此,在图3a中,在时钟线22为高时,将数据线24从高状态转移至低状态指示了开始序列200。在图3b中,当数据线24被从低拉高而时钟线22处于高状态时,发起停止序列210。在这里描述的本发明的实施例中,当总线主设备试图开始或停止与同集成电路间总线20对接的每一个从设备的数据传输时,由图I的总线主设备10发起这些开始和停止序列(或开始和停止比特)。现在返回至图2,给定了时钟线22的周期与置于数据线24上的数据比特之间的对准,那么可见,数据线24与时钟线22之间的定时的发散可以使集成电路间总线(20)变得不同步。在这些情形下,总线主设备10不再可以与从设备30、40和100中的任一个进行通信。在一个示例中,总线主设备10可以传输8比特字加肯定应答比特;然而,由于时钟线22与数据线24之间的定时未对准,预期的接收方(即,从设备30、40和100之一)并未将第九个比特正确识别为肯定应答比特。这进而可以使总线主设备10在以下错误假设下继续至其下一任务从设备已经接收到该数据字并且现在正在根据在接收到的字中编码的数据进行操作。校正时钟线22与数据线24之间的未对准的先前尝试已经涉及在来自总线主设备10的离散输出的控制下,使用从设备30、40和100中的一个或多个上的边带重置管脚。不幸的是,出于成本和复杂度的原因,许多从设备不包括这种重置管脚,并且许多总线主设备也不包括可能用于驱动重置管脚的离散输出。相应地,对边带重置管脚的使用一般不视为可行的选项。先前尝试校正时钟线22与数据线24之间的未对准的另一个选项是对从设备30、40和100中的一个或多个进行重新启动(power cycle)。然而,在其中任何系统停机时间至关重要的高可用性系统中,重新启动与集成电路间总线20对接的元件以校正时钟和数据线之间的未对准的概念也不被视为可行的选项。图4是根据本发明的实施例的恢复不稳定总线的稳定性的方法的流程图。图4的方法可以由图I和5的总线主设备10执行,不过可以使用硬件和软件的其他组合来执行该方法。图4的实施例开始于步骤300,在步骤300处,总线主设备检测到数据总线上的通信差错。这些差错可以是通过分析时钟和数据线之间的定时来检测到,或者可以是通过分析数据总线上存在的实际数据字来检测的。在步骤310处,将总线主设备置于修复模式。在该步骤中,暂时中止总线主设备的正常操作,使得可以将不稳定总线恢复至正常操作。此时,不知道数据总线是正操作于“读取”模式还是“写入”模式。相应地,总线主设备首先在以下假设下继续数据总线正操作于读取模式,在读取模式中,数据正传输自从设备以由总线主设备读入。根据总线正操作于读取模式的假设,执行步骤320,在步骤320处,总线主设备将时钟线(例如,图I的时钟线22)接连循环(cycle)九次。如本文之前所讨论的,将时钟线循环九次向从设备发信号通知正沿数据总线传输数据的完整字节。这确保了在字节传送期间的某个点处,处于读取模式的从设备将未驱动的数据线解释为“未肯定应答的”信号,并且然后,从设备停止提供数据并等待停止条件。然后,该方法继续至步骤330,在步骤330处,总线主设备传输停止比持。此时,如果该ー个或多个从设备确实已经在读取模式中操作,则至少在其中数据总线20依照集成电路间总线进行操作的实施例中,将时钟线循环9次之后跟有停止比特应当使从设备終止传输数据并返回至空闲状态。在执行了步骤330之后,该方法在以下假设下继续至步骤340 曾在数据总线正操作于写入模式时,发生了数据总线的不稳定性,在该写入模式中,正将数据从总线主设备传送至ー个或多个从设备。为了恢复总线的稳定性,执行步骤340,在步骤340处,暂时将时钟线驱动为低,然后释放时钟线。在步骤350处,总线主设备等待确定是否已经自从设备接收到肯定应答比持。如果在步骤350处未接收到肯定应答比特,则该方法返回至步骤340,在步骤340处,再次将时钟线驱动为低,然后释放时钟线。执行步骤340和步骤350高达九次,只要尚未从在数据总线上进行传输的ー个或 多个从设备接收到肯定应答比特。当接收到肯定应答比特时,执行步骤360,在步骤360处,总线主设备立即将停止比特传输至该ー个或多个从设备。此时,执行步骤370,在步骤370处,将总线操作返回至正常。本发明的一些实施例可能并不要求图4中标识的所有步骤。例如,在一些实施例中,用于恢复不稳定总线的稳定性的方法可以包括以下步骤将总线的时钟线循环多次(步骤320);传输停止比特(步骤330);将总线的时钟线循环至少一次(步骤340);以及在总线主设备已经接收到肯定应答比特之后立即传输停止比特(步骤350 )。图5是根据本发明的实施例的用于恢复不稳定总线的稳定性的逻辑模块。图5的逻辑模块被示作可能为总线主设备10的组成部分,但也可以通过现场可编程门阵列(FPGA)、状态机或者与总线主设备10分离且不同的其他设备来实现。图5的逻辑模块包括用于检测通信差错的逻辑(410);用于使操作于读取模式的从设备稳定的逻辑(420);以及用于使操作于写入模式的从设备稳定的逻辑(430)。在本发明的实施例中,用于检测在总线上已出现通信差错的逻辑包括使用集成电路间总线。用于使操作于读取模式的从设备稳定的逻辑(420)包括用于传输之后跟着停止比特的九个时钟周期的逻辑。用于使操作于写入模式的从设备稳定的逻辑模块(430)包括用于暂时将时钟线驱动为低、然后释放时钟线直到已接收到肯定应答比特为止的逻辑。如果尚未接收到肯定应答比持,则以重复的方式,将时钟线驱动为低并释放时钟线,直到已经从该ー个或多个从设备接收到肯定应答比特为止。在已经从该ー个或多个从设备接收到肯定应答比特的这种时间,将数据总线返回至其正常操作状态。综上所述,尽管具体參照各个实施例示出并描述了本发明,但是本领域技术人员将理解,在不脱离如以下权利要求中限定的本发明的精神和范围的前提下,可以对本发明作出许多变型。本发明的该描述应当被理解为包括这里描述的元素的新颖且非显而易见的组合,并且,可以在本申请或后续申请中要求保护这些元素的任何新颖且非显而易见的组合。以上实施例是示意性的,以及没有单个特征或元素对可在本申请或后续申请中要求保护的所有可能组合来说是必要的。在权利要求记载了“一”或“第一”元素或其等同物的情况下,这种权利要求应当被理解为包括一个或多个这种元素的合并,既不需要也不排除两个或更多个 这种元素。
权利要求
1.一种用于恢复不稳定总线的稳定性的方法,包括 将该总线的时钟线循环多次; 传输停止比特; 将该总线的时钟线循环至少一次;以及 在总线主设备已经接收到肯定应答比特之后立即传输停止比特。
2.根据权利要求I所述的方法,其中,将所述时钟线接连循环多次,而不暂停来确定是否已经从与该总线对接的从设备接收到一个或多个数据比特。
3.根据权利要求I所述的方法,其中,第一循环步骤包括将该总线的时钟线循环九次。
4.根据权利要求I所述的方法,其中,所述肯定应答比特是从向所述总线主设备传输的从设备接收到的。
5.根据权利要求I所述的方法,其中,在所述总线主设备未接收到肯定应答的情况下,至少再次重复将总线的时钟线循环。
6.根据权利要求5所述的方法,其中,在所述总线主设备未接收到肯定应答的情况下,高达最多九次地重复将总线的时钟线循环。
7.根据权利要求I所述的方法,还包括在所述第一循环步骤之前,将所述总线主设备置于修复模式。
8.根据权利要求7所述的方法,还包括在将所述总线主设备置于修复模式的步骤之前,检测总线上的通信差错。
9.一种用于恢复不稳定总线的稳定性的逻辑模块,包括 用于检测已经在该总线上出现通信差错的逻辑; 用于使操作于读取模式的从设备稳定的逻辑;以及 用于使操作于写入模式的该从设备稳定的逻辑,其中 使操作于写入模式的该从设备稳定是在使操作于读取模式的该从设备稳定之后进行的。
10.根据权利要求9所述的逻辑模块,其中,总线是集成电路间(I2C)总线。
11.根据权利要求10所述的逻辑模块,其中,用于使操作于读取模式的从设备稳定的逻辑包括用于传输之后跟着停止比特的九个时钟周期的逻辑。
12.根据权利要求10所述的逻辑模块,其中,用于使操作于写入模式的从设备稳定的逻辑还包括用于暂时将时钟线驱动为低并等待自所述从设备接收肯定应答比特的逻辑。
13.根据权利要求12所述的逻辑模块,其中,所述逻辑模块还包括用于在尚未自所述从设备接收到肯定应答比特的情况下,再次暂时将时钟线驱动为低并等待自所述从设备接收肯定应答比特的逻辑。
14.根据权利要求12所述的逻辑模块,其中,所述逻辑模块还包括用于在已经自所述从设备接收到肯定应答比特的情况下,将停止比特传输至所述从设备的逻辑。
15.根据权利要求10所述的逻辑模块,其中,所述逻辑模块还包括用于确定已经自该一个或多个从设备接收到肯定应答比特从而将所述总线返回至正常操作状态的逻辑。
全文摘要
一种用于恢复不稳定总线的稳定性的方法,包括将该总线的时钟循环多次;传输停止比特;将该总线的时钟线循环至少一次;以及在总线主设备已经接收到肯定应答比特之后立即传输停止比特。
文档编号G06F1/04GK102770851SQ201080064762
公开日2012年11月7日 申请日期2010年2月26日 优先权日2010年2月26日
发明者D.马乔罗夫斯基, M.埃里克森 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1