一种防止总线死锁的装置及方法

文档序号:9826219阅读:385来源:国知局
一种防止总线死锁的装置及方法
【技术领域】
[0001]本发明涉及总线控制技术领域,尤其涉及一种防止总线死锁的装置及方法。
【背景技术】
[0002]电子设备普遍存在于社会生产、生活的各个领域,极大地提高了社会的生产力和生活的水平。随着科技的进步,电子设备的芯片设计规模日益增大,芯片设计、芯片中连接各个设备的总线设计、以及总线和处理器或总线和外设之间的交互也越来越复杂。这里,夕卜设是指和总线连接的功能单元。
[0003]一般,电子设备的处理器通过总线和外设交互时,由处理器发出操作指令,外设对操作指令进行响应操作。在这个操作过程中,处理器和外设通过总线连接。当外设对处理器的完成响应操作时,会向处理器发出反馈信号,反馈信号属于总线信号的一部分。处理器向外设发出操作指令,操作指令通过总线向外设发出有效信号,但响应操作和有效信号在不同的总线类型中表现方式不一样,有的是一组信号或一个信号,有的是数据包等;这样,就可能导致处理器和外设之间的数据传递出现异常,因此,需要针对不同类型的信号进行总线设计。
[0004]目前,处理器和外设之间的数据传递出现异常主要包括两个方面:一方面,当总线设计异常时,处理器发出的操作指令无法正确到达外设,进而导致外设没有进行响应操作;另一方面,外设接收到了处理器发出的操作指令,但由于外设的异常导致外设没有产生对应操作指令的响应操作,或响应操作在总线中传递时出现异常,则会导致处理器处于等待状态,进而出现总线死锁现象,直接导致处理器无法继续执行后续指令。通常,通过断电或重新复位才能使处理器或外设正常工作,但断电或重新复位可能会导致系统故障。现有解决总线死锁的解决方法是增加检测电路,或增加协处理器进行总线异常的处理,但该方法无法从根本上解决总线死锁问题。

【发明内容】

[0005]有鉴于此,本发明实施例期望提供一种防止总线死锁的装置及方法,至少能解决现有总线死锁的技术问题。
[0006]本发明实施例的技术方案是这样实现的:
[0007]本发明实施例提供了一种防止总线死锁的装置,所述装置包括:
[0008]外设延时单元,用于监测总线和外设之间的总线状态,得到第一总线状态信号发送给状态监控单元,并根据收到的复位控制指令对总线和外设之间的第一握手信号进行复位操作;
[0009]处理器延时单元,用于监测总线和处理器之间的总线状态,得到第二总线状态信号发送给状态监控单元,并根据收到的复位控制指令对总线和处理器之间的第二握手信号进行复位操作;
[0010]状态监控单元,用于对所述第一总线状态信号内的数据信号进行计时,得到第一计时时间,当所述第一计时时间超过第一设定时间时,向所述外设延时单元发送第一复位控制指令;所述第一复位控制指令用于使所述外设延时单元对所述第一握手信号进行复位操作;和/或对所述第二总线状态信号内的数据信号进行计时,得到第二计时时间,当所述第二计时时间超过第二设定时间时,向所述处理器延时单元发送第二复位控制指令;所述第二复位控制指令用于使所述处理器延时单元对所述第二握手信号进行复位操作。
[0011]上述方案中,所述装置包括:
[0012]总线配置单元,用于向所述外设延时单元发送第一配置信号,所述第一配置信号用于使能所述外设延时单元对所述第一握手信号的复位操作;和/或向所述处理器延时单元发送第二配置信号;所述第二配置信号用于使能所述处理器延时单元对所述第二握手信号的复位操作。
[0013]上述方案中,所述外设延时单元包括:
[0014]第一总线状态监控模块,用于监测总线和外设之间的第一总线状态信号,并将所述第一总线状态信号发送给所述状态监控单元;
[0015]第一复位模块,用于根据所述状态监控单元发来的所述第一复位控制指令对总线和外设之间的所述第一握手信号进行延时,并对所述第一握手信号进行复位操作。
[0016]上述方案中,所述处理器延时单元包括:
[0017]第二总线状态监控模块,用于监控总线和处理器之间的第二总线状态信号,并将所述第二总线状态信号发送给所述状态监控单元;
[0018]第二复位模块,用于根据所述状态监控单元发来的所述第二复位控制指令对总线和处理器之间的所述第二握手信号进行延时,并对所述第二握手信号进行复位操作。
[0019]上述方案中,所述状态监控单元包括:
[0020]看门狗模块,用于对所述外设延时单元监测到的第一总线状态信号内的数据信号进行计时,得到第一计时时间;和/或对处理器延时单元监测到的第二总线状态信号内的数据信号进行计时,得到第二计时时间;
[0021]指令发送模块,用于在第一计时时间超过第一设定时间时和/或第二计时时间超过第二设定时间时,向所述外设延时单元发送第一复位控制指令;和/或向所述处理器延时单元发送第二复位控制指令;所述第一设定时间和第二设定时间小于总线死锁时间。
[0022]上述方案中,所述状态监控单元还包括:
[0023]中断处理模块,用于接收所述指令发送模块发来的第三复位控制指令,根据所述第三复位控制指令禁止所述处理器对总线进行指令操作;并在经过第三设定时间后允许所述处理器对总线进行指令操作。
[0024]本发明实施例还提供了一种防止芯片总线死锁的方法,所述方法包括:
[0025]监测总线和外设之间的总线状态,得到第一总线状态信号;
[0026]监测总线和处理器之间的总线状态,得到第二总线状态信号;
[0027]对所述第一总线状态信号内的数据信号进行计时,得到第一计时时间;当所述第一计时时间超过第一设定时间时,发送第一复位控制指令;和/或对所述第二总线状态信号内的数据信号进行计时,得到第二计时时间;当所述第二计时时间超过第二设定时间时,发送第二复位控制指令;
[0028]根据所述第一复位控制指令对所述第一握手信号进行复位操作;和/或根据所述第二复位控制指令对所述第二握手信号进行复位操作。
[0029]上述方案中,所述方法还包括:
[0030]设置第一配置信号和/或第二配置信号,所述第一配置信号用于使能对所述第一握手信号的复位操作;所述第二配置信号用于使能对所述第二握手信号的复位操作。
[0031 ] 上述方案中,所述方法还包括:
[0032]对所述第一握手信号进行复位操作之前,对总线和外设之间的第一握手信号延时;和/或
[0033]对所述第二握手信号进行复位操作之前,对总线和处理器之间的第二握手信号延时。
[0034]上述方案中,所述方法还包括:
[0035]根据所述复位控制指令禁止对总线进行指令操作,并在经过第三设定时间后允许对总线进行指令操作。
[0036]本发明实施例所提供的防止总线死锁的装置及方法,外设延时单元和处理器延时单元分别对总线状态进行监测,得到第一总线状态信号和第二总线状态信号;对所述第一总线状态信号和第二总线状态信号进行计时,当所述第一总线状态信号和第二总线状态信号内的数据信号的计时时间超过第一设定时间时,向所述外设延时单元和/或处理器延时单元发送复位控制指令,使得所述外设延时单元和/或处理器延时单元对所述第一握手信号和/或第二握手信号进行复位。本发明实施例设置有第一设定时间,作为死锁发生前的时限监控,能够在总线发生死锁现象前,通过外设延时单元和/或处理器延时单元对所述第一握手信号和/或第二握手信号进行复位,这样,就能够使处理器和外设重新进行数据传递,防止总线死锁。
【附图说明】
[0037]图1为本发明实施例1防止总线死锁的装置的组成结构示意图;
[0038]图2为本发明实施例1防止总线死锁的装置增加总线配置单元后的组成结构示意图;
[0039]图3为本发明实施例2防止芯片总线死锁的方法的实现流程示意图;
[0040]图4为本发明实施例3的具体装置的组成结构图。
【具体实施方式】
[0041]以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
[0042]实施例1
[0043]为了解决总线死锁的技术问题,本实施例提供了一种防止总线死锁的装置,应用于通过总线分别与处理器和外设进行数据交互的系
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1