CN110609762B - 一种防止先进高性能总线(ahb)死锁的方法及装置 - Google Patents

一种防止先进高性能总线(ahb)死锁的方法及装置 Download PDF

Info

Publication number
CN110609762B
CN110609762B CN201910905707.XA CN201910905707A CN110609762B CN 110609762 B CN110609762 B CN 110609762B CN 201910905707 A CN201910905707 A CN 201910905707A CN 110609762 B CN110609762 B CN 110609762B
Authority
CN
China
Prior art keywords
module
signal
ahb
deadlock
high performance
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.)
Active
Application number
CN201910905707.XA
Other languages
English (en)
Other versions
CN110609762A (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.)
Shenzhen Hangshun Chip Technology R&D Co Ltd
Original Assignee
Shenzhen Hangshun Chip Technology R&D 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 Shenzhen Hangshun Chip Technology R&D Co Ltd filed Critical Shenzhen Hangshun Chip Technology R&D Co Ltd
Priority to CN201910905707.XA priority Critical patent/CN110609762B/zh
Publication of CN110609762A publication Critical patent/CN110609762A/zh
Application granted granted Critical
Publication of CN110609762B publication Critical patent/CN110609762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种防止先进高性能总线(AHB)死锁的方法及装置,所述方法包括步骤:预设计数阈值,并保存至监听模块中;监听模块对准备信号(HREADY)的低电平长度进行计数,并根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁;监听模块根据判断结果确定是否需要拉高准备信号(HREADY)的电平解除死锁,并向主模块报错。本发明通过对准备信号(HREADY)的低电平长度进行计数,根据计数阈值判断是否发生死锁,并通过监听模块解除死锁,实现了防死锁的目的,并且不会丢失CPU当前芯片执行状态。

Description

一种防止先进高性能总线(AHB)死锁的方法及装置
技术领域
本发明涉及SOC芯片领域,特别涉及一种防止先进高性能总线(AHB) 死锁的方法及装置。
背景技术
先进高性能总线(Advanced High-performance Bus,AHB)是ARM公司提出的一种高速片上通信总线协议,被大多数系统级芯片(System on Chip,SOC)设计采用,用于连接芯片内部各个模块。AHB总线连接的模块有主模块和从模块的分别,他们共享总线。在芯片内部,一般由CPU作为主模块。
在SOC芯片内部,一般由CPU发起操作请求,AHB总线上的从模块根据自身的状态对CPU发出的请求返回不同的响应值。在这个操作过程中,CPU 的操作请求和从模块的响应值都是通过AHB总线传输完成的。
AHB传输包括地址相位和数据相位两个时间段,当从模块无法立即响应 CPU的操作请求时,可以通过把准备信号(HREADY)拉成低电平,以通知 CPU延长操作请求在总线上保留的时间。当响应结束时,可由从模块将 HREADY拉成高电平通知CPU继续进行下一个操作请求。在此过程中,若访问到的从模块发生异常,一直把HREADY拉低,则会导致CPU无法往下继续执行指令,也无法响应中断。
现有技术中,在CPU被锁死后,可通过断电或复位芯片使CPU恢复正常,但是断电或复位芯片会使当前CPU执行状态丢失,并可能触发系统异常。
因而现有技术还有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种防止AHB 总线死锁的方法及装置,通过对HREADY的低电平长度进行计数,根据计数阈值判断是否发生死锁,并通过监听模块解除死锁,实现了防死锁的目的,并且不会丢失CPU当前芯片执行状态。
为了达到上述目的,本发明采取了以下技术方案:
一种防止先进高性能总线(AHB)死锁的方法,包括步骤:
预设计数阈值,并保存至监听模块中;
监听模块对准备信号(HREADY)的低电平长度进行计数,并根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁;
若判断结果为发生死锁,则由监听模块解除死锁,并向主模块报错。
所述根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁的步骤具体包括:
监听模块通过计数器对准备信号(HREADY)的低电平长度进行计数;
当计数达到计数阈值时,则判定先进高性能总线(AHB)发生死锁。
还包括步骤:
若判定先进高性能总线(AHB)发生死锁,则由监听模块记录触发AHB 异常死锁的从模块地址,同时发送一个中断请求至主模块。
还包括步骤:
主模块接收到中断请求后,获取监听模块记录的从模块地址,对所述从模块地址所对应的从模块进行相应的应急处理。
所述若判断结果为发生死锁,则由监听模块解除死锁,并向主模块报错的步骤具体包括:
当判定先进高性能总线(AHB)发生死锁时,监听模块控制传输信号 (HRESP)发送总线错误至先进高性能总线(AHB);
监听模块强制将准备信号(HREADY)拉高,以解除先进高性能总线(AHB) 死锁。
一种防止先进高性能总线(AHB)死锁的装置,包括:
主模块,用于发送控制信号、写数据信号(HWDATA)、系统地址信号 (HADDR)以接入先进高性能总线(AHB)进行数据传输,并接收反馈信号进行处理;
从模块组,用于接收控制信号、写数据信号(HWDATA)进行工作,并反馈读数据信号(HRDATA)、传输信号(HRESP)和准备信号(HREADY)至主模块;
选择模块,用于接收系统地址信号(HADDR),根据系统地址信号(HADDR) 选择从模块组中相应的从模块进行工作,并将所选择的从模块的读数据信号(HRDATA)、传输信号(HRESP)和准备信号(HREADY)传至主模块。
监听模块,用于对准备信号(HREADY)的低电平长度进行计数,并根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁,在发生死锁时解除死锁,并向主模块报错。
所述主模块、监听模块、选择模块和从模块依次连接,所述主模块还与从模块连接。
所述主模块包括CPU,所述CPU与监听模块连接。
所述从模块组包括若干个从模块,每个从模块均与选择模块连接。
所述选择模块包括:
地址译码器,用于根据系统地址信号(HADDR)选择从模块组中相应的从模块进行工作;
第一选择器,用于将从模块发送的读数据信号(HRDATA)传至主模块;
第二选择器,用于将从模块发送的传输信号(HRESP)传至主模块;
第三选择器,用于将从模块发送的准备信号(HREADY)传至主模块;
所述地址译码器、第一选择器、第二选择器和第三选择器均连接所述监听模块及从模块,所述地址译码去还与第一选择器、第二选择器和第三选择器连接。
所述监听模块包括:
计数器,用于对准备信号(HREADY)的低电平长度进行计数;
地址寄存器,用于记录触发AHB异常死锁的从模块地址;
第四选择器,用于强制将准备信号(HREADY)的电平拉高;
第五选择器,用于强制将传输信号(HRESP)状态变为错误,并发送给主模块;
所述计数器与选择模块及第四选择器、第五选择器连接,所述地址寄存器与主模块及选择模块连接,所述第四选择器还与主模块连接,所述第五选择器与主模块及选择模块连接。
相较于现有技术,本发明提供的防止先进高性能总线(AHB)死锁的方法及装置中,所述方法包括步骤:预设计数阈值,并保存至监听模块中;监听模块对HREADY的低电平长度进行计数,并根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁;监听模块根据判断结果确定是否需要拉高HREADY的电平解除死锁,并向主模块报错。本发明通过对HREADY的低电平长度进行计数,根据计数阈值判断是否发生死锁,并通过监听模块解除死锁,实现了防死锁的目的,并且不会丢失CPU当前芯片执行状态。
附图说明
图1为本发明提供的防止AHB总线死锁的方法的流程图;
图2为本发明提供的防止AHB总线死锁的方法中步骤S200的流程图;
图3为本发明提供的防止AHB总线死锁的方法中步骤S300的流程图;
图4为本发明提供的防止AHB总线死锁的方法中步骤S400的流程图;
图5为本发明提供的防止AHB总线死锁的方法中步骤S500的流程图;
图6为本发明提供的防止AHB总线死锁的装置的结构框图;
图7为本发明提供的防止AHB总线死锁的装置的结构图;
图8为本发明提供的传统AHB总线的结构图;
图9为本发明提供的传统的AHB总线传输时的波形图;
图10为本发明提供的传统的AHB总线发生死锁时的波形图;
图11为本发明提供的防止AHB总线死锁的装置发生死锁时的波形图。
具体实施方式
鉴于现有技术中的问题,本发明中提供一种防止先进高性能总线(AHB) 死锁的方法及装置,通过对HREADY的低电平长度进行计数,根据计数阈值判断是否发生死锁,并通过监听模块解除死锁,实现了防死锁的目的,并且不会丢失CPU当前芯片执行状态。
本发明的具体实施方式是为了便于对本发明的技术构思、所解决的技术问题、构成技术方案的技术特征和带来的技术效果做更为详细的说明。需要说明的是,对于这些实施方式的解释说明并不构成对本发明的保护范围的限定。此外,下文所述的实施方式中所涉及的技术特征只要彼此之间不构成冲突就可以相互组合。
在AHB总线中,当从模块无法立即响应CPU的操作请求时,可以通过把HREADY信号拉成低电平来通知CPU延长操作请求在总线上保留的时间,但AHB总线上若有某个从模块发生了异常,一直把HREADY信号拉低,则当 CPU访问到这个从模块时就会一直停在当前数据相位从而发生死锁,导致 CPU无法往下继续执行指令也无法响应中断。
而且由于现有技术中断电和复位两种方法都会使CPU当前执行状态丢失,因此亟需一种能够解决上述技术问题的方案。
综上所述,请参阅图1,本发明提供了一种防止先进高性能总线(AHB) 死锁的方法,包括步骤:
S100、预设计数阈值,并保存至监听模块中。
具体实施时,本发明实施例中,预先设置一个计数阈值,并将计数阈值存储在监听模块中,所述主模块可为CPU,CPU芯片系统根据AHB总线上各个从模块的正常响应速度设置合理的阈值(所述计数阈值大于等于从模块的正常响应周期数),即每个从模块对应设置一个计数阈值,CPU根据 HADDR信号包含的地址所对应的从模块来选择相应的计数阈值;CPU实时检测监听模块中的计数次数。
S200、监听模块对HREADY信号的低电平长度进行计数,并根据预设的计数阈值判断AHB总线是否发生死锁。
具体实施时,本发明实施例中,当前从模块将HREADY信号的电平拉低时,监听模块开始对HREADY信号的长度进行计数,计数标准为一个周期记为一次,CPU对应提取当前从模块的计数阈值,当监听模块的计数次数到达计数阈值时,则判断AHB总线发生死锁;如果监听模块检测到HREADY信号为高,则把监听模块内部计数器清零。
请参阅图2,所述S200步骤具体包括:
S201、监听模块通过计数器对HREADY信号的低电平长度进行计数;
S202、当计数达到计数阈值时,则判定AHB总线发生死锁。
具体的,监听模块中包含一个计数器,在监听模块检测到HREADY信号为低电平时,则控制计数器开始计数;当计数次数达到计数阈值时,则判断AHB总线发生死锁。
S300、监听模块根据判断结果确定是否需要拉高HREADY信号的电平解除死锁,并向主模块报错。
请参阅图3,所述S300步骤具体包括:
S301当判定AHB总线发生死锁时,监听模块控制HRESP信号发送总线 ERROR至AHB总线。
具体实施时,监听模块控制HRESP向主模块报错,具体的,监听模块强制控制从模块的HRESP信号的状态变为ERROR,发送至AHB总线,以向 CPU指示发生错误。
S302、监听模块强制将HREADY信号拉高,以解除AHB总线死锁。
本发明实施例中,在从模块向AHB总线发送ERROR信号后,监听模块将从模块的HREADY信号的电平强制拉高,使得下一个操作请求能够通过AHB 总线进行传输,以解除AHB总线死锁状态。
请参阅图4,在所述S300步骤之后,还包括:
S400、若判定AHB总线发生死锁,则由监听模块记录触发AHB异常死锁的从模块地址,同时发送一个中断请求至主模块。
具体的,监听模块内部设置有地址寄存器,用于记录触发AHB异常死锁的从模块地址。当监听模块判断到AHB总线死锁时,则将当前AHB请求的HADDR值存储到所述地址寄存器中;并同时将一个中断请求发送至CPU 中,以便CPU识别AHB总线异常来源。
请参阅图5,在所述S400步骤之后,还包括:
S500、主模块接收到总线ERROR及中断请求后,获取监听模块记录的从模块地址,对所述从模块地址所对应的从模块进行相应的应急处理。
具体实施时,本实施例中,CPU接收到监听模块发送的总线ERROR及中断请求后,读取监听模块内部的地址寄存器中存储的HADDR值,根据该HADDR 值获取对应的从模块地址,然后根据从模块的具体特性进行相应的异常处理。
基于上述防止先进高性能总线(AHB)死锁的方法,请参阅图6,本发明还提供一种防止先进高性能总线(AHB)死锁的装置,包括:
主模块100,用于发送控制信号、HWDATA信号、HADDR信号以接入AHB 总线进行数据传输,并接收反馈信号进行处理;
从模块组200,用于接收控制信号、HWDATA信号进行工作,并反馈HRDATA 信号、HRESP信号和HREADY信号至主模块100;
选择模块300,用于接收HADDR信号,根据HADDR信号选择从模块组 200中相应的从模块201进行工作,并将所选择的从模块201的HRDATA信号、HRESP信号和HREADY信号传至主模块100。
监听模块400,用于对HREADY信号的低电平长度进行计数,并根据预设的计数阈值判断AHB总线是否发生死锁,在发生死锁时解除死锁,并向主模块100报错。
所述主模块100、监听模块400、选择模块300和从模块201依次连接。
请参阅图7,具体实施时,本实施例中,所述主模块100包括CPU,所述CPU与监听模块400。所述CPU发送控制信号、HWDATA信号和HADDR信号至从模块组200中,所述从模块组200包括若干个从模块201,每个从模块201均与选择模块300连接;所述选择模块300获取HADDR信号中携带的值,并进行地址译码,通过译码所得到的地址选择对应的从模块201进行工作。
进一步的,被选中的从模块201执行指令,并将HRDATA信号、HRESP 信号和HREADY信号反馈给选择模块300,所述选择模块300将从模块201 所反馈的信号发送至监听模块400。
监听模块400实时检测HREADY信号的电平,当检测到HREADY信号为低电平时,监听模块400启动计数器401进行计数,在计数次数达到计数阈值时,判断AHB总线发生死锁;此时,监听模块400改变HRESP信号的状态,向CPU报错,然后强制将HREADY信号拉高,以解除死锁;于此同时,监听模块400向CPU发送一个中断信号,以便CPU获取异常来源。
具体的,请继续参阅图7,所述选择模块300包括:
地址译码器301,用于根据HADDR信号选择从模块组200中相应的从模块201进行工作;
第一选择器DS1,用于将从模块201发送的HRDATA信号传至主模块100;
第二选择器DS2,用于将从模块201发送的HRESP信号传至主模块100;
第三选择器DS3,用于将从模块201发送的HREADY信号传至主模块100;
所述地址译码器301、第一选择器DS1、第二选择器DS2和第三选择器DS3均连接所述监听模块400及从模块201,所述地址译码去还与第一选择器DS1、第二选择器DS2和第三选择器DS3连接。
本实施例中,所述地址译码器301分别与每个从模块201连接,解析 HADDR信号中的地址值,发送相应的HSEL信号至对应的从模块201中,以选择从模块201进行工作,当从模块201执行完指令后,由第一选择器DS1 接收HRDATA信号并发送给CPU,所述第二选择器DS2接收HRESP信号并发送给CPU,所述第三选择器DS3接收HRDATA信号并发送给CPU。
具体的,请继续参阅图7,所述监听模块400包括:
计数器401,用于对HREADY信号的低电平长度进行计数;
地址寄存器402,用于记录触发AHB异常死锁的从模块201地址;
第四选择器DS4,用于强制将HREADY信号的电平拉高;
第五选择器DS5,用于强制将HRESP信号状态变为ERROR,并发送给主模块100;
所述计数器401与选择模块300及第四选择器DS4、第五选择器DS5连接,所述地址寄存器402与主模块100及选择模块300连接,所述第四选择器DS4还与主模块100连接,所述第五选择器DS5与主模块100及选择模块300连接。
本实施例中,所述计数器401与第一选择器DS1连接,以监听HREADY 信号的状态;当HREADY信号为低电平时,计数器401开始计数,当计数次数到达计数阀值时,判断AHB总线中发生死锁,所述地址寄存器402保存发生死锁的从模块201地址;通过第五选择器DS5将HRESP信号的状态改为ERROR,并发送至CPU中进行报错;然后,通过第四选择器DS4与HREADY进行或运算,将HREADY信号强制拉高,以解除AHB总线死锁;同时发送中断信号至CPU,CPU接收到报错及中断信号后,可通过读取地址寄存器402 中的地址值,以判断是哪个从模块201触发了AHB总线死锁,然后根据不同的从模块201特性采用相应的应急处理方法进行异常处理。
进一步的,本发明实施例中,所述监听模块400还包括第六选择器DS6,所述第六选择器DS6与所述计数器401、第三选择器DS3及CPU连接;所述第六选择器DS6用于将HRDATA信号传至CPU,使CPU读取HRDATA信号中的数据。
下面通过具体例子进行说明:
请参阅图8,图8为传统的AHB总线正常运行时的一种结构图。如图所示,地址译码器301根据CPU发出的HADDR信号值进行地址译码,并根据译码得到的地址选择相应的从模块201进行工作,然后由第一选择器DS1、第二选择器DS2和第三选择器DS3分别把选中的从模块201反馈的HRDATA 信号、HRESP信号和HREADY信号返回至CPU中。
请参阅图9,如图所示,传统的AHB总线传输时,当从模块201不能立即返回数据时,从模块201会将HREADY信号的电平拉低,CPU保持地址相位阶段的信号不变,当从模块201把HREADY信号的电平拉高后,CPU就可以读取HRDATA信号中的数据并发出下一个操作请求。
请参阅图10,图10为传统的AHB总线发生死锁时的总线波形图。如图所示,当HREADY信号的电平一直拉低时,AHB总线则会一直保持在数据相位,CPU也就一直处于等待HREADY状态,不能继续往下发出操作请求,AHB 总线保持该状态一直不变,使得数据传输无法继续进行,即为AHB总线死锁状态。
请继续参阅图7,图7为本发明提供的防止先进高性能总线(AHB)死锁的装置,本发明中在传统的AHB总线结构中加入了一个监听模块400,监测HREADY是否发生死锁,并且在监测到死锁发生后,强制控制AHB总线解除死锁使CPU能够往下执行指令,同时发送中断请求给CPU,方便CPU识别触发死锁的从模块201,并根据所述从模块201进行相应的应急处理。
请参阅图11,图11为本发明提供的防止先进高性能总线(AHB)死锁的装置产生死锁时的波形图。在数据相位,计数器401开始计数,每一个时钟周期记为一次,当监听模块400内部计数器401检测到HREADY信号到达预设计数阈值还保持电平时,则判断AHB总线发生死锁,监听模块400 立即强制使HRESP信号发送ERROR信号到AHB总线,并强制拉高HREADY信号,同时,监听模块400把触发AHB总线死锁的从模块201地址保存到地址寄存器402中,然后发出一个中断请求至CPU;CPU在接收到监听模块400 发出的总线错误及中断请求后,通过读取监听模块400内不地址寄存器402 中的地址值,以判断是哪个从模块201触发了总线锁死,然后根据不同的从模块201特性,采用相应的应急处理方法进行异常处理。
综上所述,本发明提供的防止先进高性能总线(AHB)死锁的方法及装置中,所述方法包括步骤:预设计数阈值,并保存至监听模块中;监听模块对HREADY的低电平长度进行计数,并根据预设的计数阈值判断AHB总线是否发生死锁;监听模块根据判断结果确定是否需要拉高HREADY的电平解除死锁,并向主模块报错。本发明通过对HREADY的低电平长度进行计数,根据计数阈值判断是否发生死锁,并通过监听模块解除死锁,实现了防死锁的目的,并且不会丢失CPU当前芯片执行状态。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

Claims (7)

1.一种防止先进高性能总线(AHB)死锁的方法,其特征在于,包括步骤:
预设计数阈值,并保存至监听模块中;
监听模块对准备信号(HREADY)的低电平长度进行计数,并根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁;
若判断结果为发生死锁,则由监听模块解除死锁,并向主模块报错;
其中,若判定先进高性能总线(AHB)发生死锁,则由监听模块记录触发AHB异常死锁的从模块地址,同时发送中断请求至主模块;
主模块接收到中断请求后,获取监听模块记录的从模块地址,对所述从模块地址所对应的从模块进行相应的应急处理;
当监听模块判断先进高性能总线(AHB)死锁时,则将当前先进高性能总线(AHB)请求的HADDR值存储到地址寄存器中;并将中断请求发送至主模块中;
主模块接收到监听模块发送的总线ERROR及中断请求后,读取监听模块内部的地址寄存器中存储的HADDR值,根据HADDR值获取对应的从模块地址,然后根据从模块的具体特性进行相应的异常处理。
2.根据权利要求1所述的防止先进高性能总线(AHB)死锁的方法,其特征在于,所述根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁的步骤具体包括:
监听模块通过计数器对准备信号(HREADY)的低电平长度进行计数;
当计数达到计数阈值时,则判定先进高性能总线(AHB)发生死锁。
3.根据权利要求1所述的防止先进高性能总线(AHB)死锁的方法,其特征在于,所述若判断结果为发生死锁,则由监听模块解除死锁,并向主模块报错的步骤具体包括:
当判定先进高性能总线(AHB)发生死锁时,监听模块控制传输信号(HRESP)发送总线错误至先进高性能总线(AHB);
监听模块强制将准备信号(HREADY)拉高,以解除先进高性能总线(AHB)死锁。
4.一种防止先进高性能总线(AHB)死锁的装置,其特征在于,包括:
主模块,用于发送控制信号、写数据信号(HWDATA)、系统地址信号(HADDR)以接入先进高性能总线(AHB)进行数据传输,并接收反馈信号进行处理;
从模块组,用于接收控制信号、写数据信号(HWDATA)进行工作,并反馈读数据信号(HRDATA)、传输信号(HRESP)和准备信号(HREADY)至主模块;
选择模块,用于接收系统地址信号(HADDR),根据系统地址信号(HADDR)选择从模块组中相应的从模块进行工作,并将所选择的从模块的读数据信号(HRDATA)、传输信号(HRESP)和准备信号(HREADY)传至主模块;
监听模块,用于对准备信号(HREADY)的低电平长度进行计数,并根据预设的计数阈值判断先进高性能总线(AHB)是否发生死锁,在发生死锁时解除死锁,并向主模块报错;
所述主模块、监听模块、选择模块和从模块依次连接,所述主模块还与从模块连接;
所述监听模块包括:
计数器,用于对准备信号(HREADY)的低电平长度进行计数;
地址寄存器,用于记录触发AHB异常死锁的从模块地址;
第四选择器,用于强制将准备信号(HREADY)的电平拉高;
第五选择器,用于强制将传输信号(HRESP)状态变为错误状态,并发送给主模块;
所述计数器与选择模块及第四选择器、第五选择器连接,所述地址寄存器与主模块及选择模块连接,所述第四选择器还与主模块连接,所述第五选择器与主模块及选择模块连接;
当准备信号(HREADY)为低电平时,计数器开始计数,当计数次数到达计数阈值时,判断先进高性能总线(AHB)中发生死锁,所述地址寄存器保存发生死锁的从模块地址;通过第五选择器将传输信号(HRESP)的状态改为ERROR,并发送至主模块中进行报错;然后,通过第四选择器与准备信号(HREADY)进行或运算,将准备信号(HREADY)强制拉高,以解除先进高性能总线(AHB)死锁;并由监听模块发送中断信号至主模块;
主模块接收到报错及中断信号后,通过读取地址寄存器中的地址值,判断是哪个从模块触发了先进高性能总线(AHB)死锁,然后根据不同的从模块特性采用相应的应急处理方法进行异常处理。
5.根据权利要求4所述的防止先进高性能总线(AHB)死锁的装置,其特征在于,所述主模块包括CPU,所述CPU与监听模块连接。
6.根据权利要求4所述的防止先进高性能总线(AHB)死锁的装置,其特征在于,所述从模块组包括若干个从模块,每个从模块均与选择模块连接。
7.根据权利要求4所述的防止先进高性能总线(AHB)死锁的装置,其特征在于,所述选择模块包括:
地址译码器,用于根据系统地址信号(HADDR)选择从模块组中相应的从模块进行工作;
第一选择器,用于将从模块发送的读数据信号(HRDATA)传至主模块;
第二选择器,用于将从模块发送的传输信号(HRESP)传至主模块;
第三选择器,用于将从模块发送的准备信号(HREADY)传至主模块;
所述地址译码器、第一选择器、第二选择器和第三选择器均连接所述监听模块及从模块,所述地址译码器 还与第一选择器、第二选择器和第三选择器连接。
CN201910905707.XA 2019-09-24 2019-09-24 一种防止先进高性能总线(ahb)死锁的方法及装置 Active CN110609762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910905707.XA CN110609762B (zh) 2019-09-24 2019-09-24 一种防止先进高性能总线(ahb)死锁的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910905707.XA CN110609762B (zh) 2019-09-24 2019-09-24 一种防止先进高性能总线(ahb)死锁的方法及装置

Publications (2)

Publication Number Publication Date
CN110609762A CN110609762A (zh) 2019-12-24
CN110609762B true CN110609762B (zh) 2021-04-27

Family

ID=68892620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910905707.XA Active CN110609762B (zh) 2019-09-24 2019-09-24 一种防止先进高性能总线(ahb)死锁的方法及装置

Country Status (1)

Country Link
CN (1) CN110609762B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048849B (zh) * 2022-07-20 2023-11-07 荣耀终端有限公司 一种i2c总线的通信控制方法、装置、设备及存储介质
CN115981880B (zh) * 2023-03-21 2023-06-23 深圳云豹智能有限公司 避免主机访问从机出现死锁的方法、装置、系统、存储介质及芯片

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101676887B (zh) * 2008-08-15 2012-07-25 北京北大众志微系统科技有限责任公司 一种基于ahb总线结构的总线监听方法及装置
CN102073613B (zh) * 2010-12-15 2013-05-08 创新科存储技术有限公司 一种消除i2c总线死锁的装置及方法
CN102521187B (zh) * 2011-11-29 2014-05-28 广东东研网络科技股份有限公司 一种i2c总线通信死锁解决方法
CN103678198B (zh) * 2012-09-14 2017-07-07 京信通信系统(中国)有限公司 总线的锁定解除方法、装置及系统
CN109388605B (zh) * 2017-08-10 2021-04-27 深圳市中兴微电子技术有限公司 一种解除i2c总线死锁的方法和装置
WO2019136595A1 (zh) * 2018-01-09 2019-07-18 深圳市汇顶科技股份有限公司 处理i2c总线死锁的方法、电子设备和通信系统

Also Published As

Publication number Publication date
CN110609762A (zh) 2019-12-24

Similar Documents

Publication Publication Date Title
CN102761439B (zh) Pon接入系统中基于看门狗的异常检测记录装置及方法
US20110320706A1 (en) Storage apparatus and method for controlling the same
CN104021102B (zh) 基于状态机和片内总线的cpci串口板及其工作方法
CN110609762B (zh) 一种防止先进高性能总线(ahb)死锁的方法及装置
CN113190487B (zh) PCIe设备热拔方法及装置
JP2004021613A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
CN103729329A (zh) 核间通信装置及方法
CN110908841A (zh) 一种i2c通信异常恢复方法及装置
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
KR101355326B1 (ko) 포트를 활성 상태로부터 대기 상태로 전이하는 방법, 통신장치에서 이용하기 위한 장치 및 데이터 통신 시스템
WO2023207571A1 (zh) 一种数据传输方法及装置
US9195625B2 (en) Interconnect controller for a data processing device with transaction tag locking and method therefor
CN105718396B (zh) 一种大数据主设备传输的i2c总线装置及其通讯方法
US10088523B2 (en) Debug adapter
CN105335328A (zh) 一种背板i2c总线死锁的消除方法、系统及电子设备
CN112749057A (zh) 用于读事务的总线监视器
CN111124964A (zh) 一种cpu与iic总线的连通控制方法及设备
CN115168141A (zh) 光口管理系统、方法、装置、可编程逻辑器件及存储介质
CN108090009A (zh) 一种多机倒机方法、装置及系统
JP4572138B2 (ja) サーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法
JP2001094537A (ja) エラー処理機能を備えた伝送装置及びエラー処理方法
JP6979913B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2000307600A (ja) デバイス装置のハートビート回路
CN109240955B (zh) 电子装置
JP2014154017A (ja) 障害ログ採取装置、障害ログ採取方法、及び、障害ログ採取プログラム

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