CN107239363B - 一种ecc信息上报方法及系统 - Google Patents
一种ecc信息上报方法及系统 Download PDFInfo
- Publication number
- CN107239363B CN107239363B CN201710393776.8A CN201710393776A CN107239363B CN 107239363 B CN107239363 B CN 107239363B CN 201710393776 A CN201710393776 A CN 201710393776A CN 107239363 B CN107239363 B CN 107239363B
- Authority
- CN
- China
- Prior art keywords
- memory
- ecc
- ring bus
- control module
- signal
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种ECC信息上报方法及系统,该方法为:控制模块与各个存储器之间采用环形结构连接在环形总线上,通过控制模块控制环形总线上的各个存储器依次上报各自的ECC信息,每接收到一个ECC信息的情况下,确定该ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误后,将该ECC信息作为目标ECC信息,提示处理器获取该目标ECC信息。采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,降低了ASIC的设计难度,而且,通过控制模块提示处理器获取目标ECC信息,节省了处理器主动查询并读取错误信息时占用的CPU资源。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种ECC信息上报方法及系统。
背景技术
随着电子技术的不断发展,不同功能的芯片系统也应运而生,在实际应用中,在一个芯片系统内部可能存在数量众多的用于存储各类数据或表项的存储器,而各个存储器通常都具备错误检查和纠正(Error Checking and Correcting,ECC)功能,即具备发现错误、纠正错误的功能,具体来说就是,当存储数据时,生成一ECC代码,与该数据一并保存,当读取数据时,需要将保存的ECC代码与读取数据时生成的ECC代码进行比较,若两个ECC代码相同,则确定读取的数据无误,若两个ECC代码不同,则确定读取的数据有误,可通过解码确定错误位,并进行纠正。采用ECC技术,有效地避免了由于数据读取错误导致整个芯片系统运行中断的问题,从而保证了整个芯片的正常运行。
为了后续能够根据各个存储器在执行ECC校验时发现的错误或者纠正的错误优化芯片性能,通常需要获取存储器在执行ECC校验时发现的错误或者纠正的错误信息。现有技术中,比较常用的方法是:采用分布式结构或者分层式结构,将各个存储器连接到外接处理器上,通过处理器的控制模块实时监听各个存储器的状态,处理器的控制模块在确定各个存储器中有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器的中央处理器(Central Processing Unit,CPU)发起中断,处理器的CPU接收到该中断的情况下,从处理器的控制模块中,获取各个存储器分别对应的表征该存储器在执行ECC校验时是否发现了错误或者纠正了错误的相关数据信息,并基于获得的各个存储器的相关数据信息,从各个存储器中,查询出在执行ECC校验时确实发现了错误或者纠正了错误的存储器,以及从该存储器中读取该存储器发现的错误信息或者纠正的错误信息。
基于上述分析可知,现有技术中,在采用上述方法获取各个存储器在执行ECC校验的过程中发现的错误信息或者纠正的错误信息时,主要存在以下缺陷:
(1)采用分布式结构或者分层式结构将各个存储器连接到处理器上,实质上来讲,这两种结构均属于星形连接方式,而这种星型连接方式,一般要求在同一层面上的各个存储器与处理器之间的距离要保持一致,当连接在处理器上的存储器的数目较多时,很难保证同一层面上的各个存储器与处理器之间的距离均相同,使得在设计集成电路(Application Specific Integrated Circuit,ASIC)时的难度加大。
(2)随着连接在处理器上的存储器的数目的增加,处理器在从各个存储器中查询出确实发现了错误或者纠正了错误的存储器时,会占用大量的CPU资源,而且,在查询出在执行ECC校验时确实发现了错误或者纠正了错误的存储器后,还需要从该存储器中读取该存储器发现的错误信息或者纠正的错误信息,这就使得在获取存储器发现的错误信息或者纠正的错误信息时的执行效率较低。
发明内容
本发明实施例提供了一种ECC信息上报方法及系统,用以解决现有技术中当采用星形连接方式连接各个存储器与处理器时,存在的由于存储器的数目较多,导致集成电路的设计难度较大,发现的错误信息或者纠正的错误信息的获取效率较低,以及CPU资源占用量较大的问题。
本发明实施例提供的具体技术方案如下:
一种ECC信息上报方法,应用于环形结构的ECC信息上报系统,ECC信息上报系统中的各个存储器与控制模块之间通过环形总线相连接,其中,方法包括:
控制模块确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号;
环形总线上的第一个存储器接收到控制模块发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至控制模块后,将ECC使能信号发送至控制模块;
控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器,并在基于接收到的ECC信息,确定ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC信息作为目标ECC信息,并提示处理器获取目标ECC信息。
较佳的,控制模块确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号之前,进一步包括:
控制模块在接收到复位信号的情况下,控制环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
控制模块通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块;
控制模块接收到环形总线上的最后一个存储器返回的时钟脉冲信号的情况下,认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置。
较佳的,控制模块通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块,包括:
控制模块向环形总线上的第一个存储器发送标志位为1的时钟脉冲信号;
环形总线上的第一个存储器在接收到控制模块发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器将标志位为1的时钟脉冲信号发送至控制模块为止。
较佳的,控制模块认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置之后,控制模块确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号之前,还包括:
控制模块确定环形总线上的各个存储器满足预设的监听条件的情况下,向环形总线上的第一个存储器发送ECC指示信号;
环形总线上的第一个存储器接收到控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器将ECC指示信号发送至控制模块为止;
控制模块接收到环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听,并基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,判断环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,控制模块确定环形总线上的各个存储器满足预设的监听条件,包括:
控制模块通过向环形总线上的第一个存储器发送标志位为1的ECC使能信号,使标志位为1的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块;
控制模块接收到环形总线上的最后一个存储器返回的标志位为1的ECC使能信号的情况下,确定环形总线上的各个存储器已进入监听状态,并认定环形总线上的各个存储器已满足预设的监听条件。
较佳的,控制模块通过向环形总线上的第一个存储器发送标志位为1的ECC使能信号,使标志位为1的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块,包括:
控制模块向环形总线上的第一个存储器发送标志位为1的ECC使能信号;
环形总线上的第一个存储器在接收到控制模块发送的标志位为1的ECC使能信号的情况下,进入监听状态,并将标志位为1的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,进入监听状态,直至环形总线上的最后一个存储器将标志位为1的ECC使能信号返回至控制模块为止。
较佳的,控制模块向环形总线上的第一个存储器发送ECC指示信号,包括:
控制模块向环形总线上的第一个存储器发送标志位为0的ECC指示信号。
较佳的,环形总线上的第一个存储器接收到控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器,包括:
环形总线上的第一个存储器接收到控制模块发送的标志位为0的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误;
若是,则将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;
若否,则保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器。
较佳的,环形总线上除第一个存储器之外的其它每一个存储器接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器将ECC指示信号发送至控制模块为止,包括:
环形总线上除第一个存储器和最后一个存储器之外的其他每一个存储器在接收到前一个存储器发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器在接收到前一个存储器发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至控制模块;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至控制模块;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至控制模块。
较佳的,控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,判断环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误,包括:
控制模块确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为1的情况下,认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误;确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为0的情况下,认定环形总线上没有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,若控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,认定环形总线上没有存储器在执行ECC校验时发现了错误或者纠正了错,则进一步包括:
控制模块通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听。
较佳的,若控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,则进一步包括:
控制模块通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,控制模块确定环形总线上的各个存储器满足预设的查询条件,包括:
控制模块通过向环形总线上的第一个存储器发送标志位为0的ECC使能信号,使标志位为0的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块;
控制模块接收到环形总线上的最后一个存储器返回的标志位为0的ECC使能信号的情况下,确定环形总线上的各个存储器已进入默认状态,并认定环形总线上的各个存储器已满足预设的查询条件。
较佳的,控制模块通过向环形总线上的第一个存储器发送标志位为0的ECC使能信号,使标志位为0的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块,包括:
控制模块向环形总线上的第一个存储器发送标志位为0的ECC使能信号;
环形总线上的第一个存储器在接收到控制模块发送的标志位为0的ECC使能信号的情况下,进入默认状态,并将标志位为0的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为0的ECC使能信号的情况下,进入默认状态,直至环形总线上的最后一个存储器将标志位为0的ECC使能信号返回至控制模块为止。
较佳的,控制模块向环形总线上的第一个存储器发送ECC使能信号,包括:
控制模块向环形总线上的第一个存储器发送标志位为1的ECC使能信号。
较佳的,环形总线上的第一个存储器接收到控制模块发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至控制模块。。
较佳的,控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器,包括:
控制模块每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的目标累计数值,确定接收到的ECC信息对应的存储器。
较佳的,控制模块将ECC信息作为目标ECC信息之后,提示处理器获取目标ECC信息之前,进一步包括:
控制模块通过控制时钟脉冲信号中断,控制环形总线上的各个存储器暂停运转;
控制模块提示处理器获取目标ECC信息之后,确定处理器已获取到目标ECC信息的情况下,还包括:
控制模块通过控制时钟脉冲信号恢复,控制环形总线上的各个存储器继续运转。
一种ECC信息上报系统,包括:多个存储器,以及控制模块,各个存储器与控制模块之间采用环形结构连接在环形总线上,其中,
控制模块,用于确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号;
环形总线上的第一个存储器,用于接收到控制模块发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器,用于接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器,用于接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至控制模块后,将ECC使能信号发送至控制模块;
控制模块,用于每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器,并在基于接收到的ECC信息,确定ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC信息作为目标ECC信息,并提示处理器获取目标ECC信息。
较佳的,在控制模块确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号之前,控制模块进一步用于:
在接收到复位信号的情况下,控制环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块;
接收到环形总线上的最后一个存储器返回的时钟脉冲信号的情况下,认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置。
较佳的,在控制模块通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块时,控制模块具体用于:向环形总线上的第一个存储器发送标志位为1的时钟脉冲信号;
环形总线上的第一个存储器具体用于:接收到控制模块发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器将标志位为1的时钟脉冲信号发送至控制模块为止。
较佳的,在控制模块认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置之后,在控制模块确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号之前,控制模块还用于:确定环形总线上的各个存储器满足预设的监听条件的情况下,向环形总线上的第一个存储器发送ECC指示信号;
环形总线上的第一个存储器还用于:接收到控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器还用于:接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器将ECC指示信号发送至控制模块为止;
控制模块还用于:接收到环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听,并基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,判断环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,在控制模块确定环形总线上的各个存储器满足预设的监听条件时,控制模块具体用于:
通过向环形总线上的第一个存储器发送标志位为1的ECC使能信号,使标志位为1的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块;
接收到环形总线上的最后一个存储器返回的标志位为1的ECC使能信号的情况下,确定环形总线上的各个存储器已进入监听状态,并认定环形总线上的各个存储器已满足预设的监听条件。
较佳的,在控制模块通过向环形总线上的第一个存储器发送标志位为1的ECC使能信号,使标志位为1的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块时,控制模块具体用于:向环形总线上的第一个存储器发送标志位为1的ECC使能信号;
环形总线上的第一个存储器具体用于:接收到控制模块发送的标志位为1的ECC使能信号的情况下,进入监听状态,并将标志位为1的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,进入监听状态,直至环形总线上的最后一个存储器将标志位为1的ECC使能信号返回至控制模块为止。
较佳的,在控制模块向环形总线上的第一个存储器发送ECC指示信号时,控制模块具体用于:向环形总线上的第一个存储器发送标志位为0的ECC指示信号。
较佳的,在环形总线上的第一个存储器接收到控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器时,环形总线上的第一个存储器具体用于:
接收到控制模块发送的标志位为0的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误;
若是,则将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;
若否,则保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器。
较佳的,环形总线上除第一个存储器和最后一个存储器之外的其他每一个存储器具体用于:接收到前一个存储器发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器具体用于:接收到前一个存储器发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至控制模块;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至控制模块;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至控制模块。
较佳的,在控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,判断环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误时,控制模块具体用于:
确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为1的情况下,认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误;确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为0的情况下,认定环形总线上没有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,若控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,认定环形总线上没有存储器在执行ECC校验时发现了错误或者纠正了错误,则控制模块进一步用于:
通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听。
较佳的,若控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,则控制模块进一步用于:
通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,在控制模块确定环形总线上的各个存储器满足预设的查询条件时,控制模块具体用于:
通过向环形总线上的第一个存储器发送标志位为0的ECC使能信号,使标志位为0的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块;
接收到环形总线上的最后一个存储器返回的标志位为0的ECC使能信号的情况下,确定环形总线上的各个存储器已进入默认状态,并认定环形总线上的各个存储器已满足预设的查询条件。
较佳的,在控制模块通过向环形总线上的第一个存储器发送标志位为0的ECC使能信号,使标志位为0的ECC使能信号顺序通过环形总线上的每一个存储器后返回至控制模块时,控制模块具体用于:向环形总线上的第一个存储器发送标志位为0的ECC使能信号;
环形总线上的第一个存储器具体用于:接收到控制模块发送的标志位为0的ECC使能信号的情况下,进入默认状态,并将标志位为0的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的标志位为0的ECC使能信号的情况下,进入默认状态,直至环形总线上的最后一个存储器将标志位为0的ECC使能信号返回至控制模块为止。
较佳的,在控制模块向环形总线上的第一个存储器发送ECC使能信号时,控制模块具体用于:向环形总线上的第一个存储器发送标志位为1的ECC使能信号。
较佳的,环形总线上的第一个存储器具体用于:接收到控制模块发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器具体用于:接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至控制模块。
较佳的,在控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器时,控制模块具体用于:
每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的目标累计数值,确定接收到的ECC信息对应的存储器。
较佳的,在控制模块将ECC信息作为目标ECC信息之后,在控制模块提示处理器获取目标ECC信息之前,控制模块进一步用于:通过控制时钟脉冲信号中断,控制环形总线上的各个存储器暂停运转;
在控制模块提示处理器获取目标ECC信息之后,在控制模块确定处理器已获取到目标ECC信息的情况下,控制模块还用于:通过控制时钟脉冲信号恢复,控制环形总线上的各个存储器继续运转。
本发明实施例的有益效果如下:
本发明实施例中,采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,降低了ASIC的设计难度,而且,通过控制模块根据环形总线上的各个存储器依次上报的ECC信息,从环形总线上的各个存储器中,查询出在执行ECC校验时发现了错误或者纠正了错误的存储器,并将该存储器的ECC信息作为目标ECC信息后,提示处理器获取该目标ECC信息,处理器无需主动进行查询,只需根据控制模块的提示直接获取目标ECC信息即可,从而节省了处理器主动查询并读取信息时占用的大量CPU资源。
附图说明
图1为本发明实施例一中ECC信息上报方法的流程示意图;
图2A、图2B、图2C和图2D为本发明实施例二中ECC信息上报方法的具体流程示意图;
图2E为本发明实施例二中,当环形总线上的各个存储器处于查询状态时,各个存储器的运转过程示意图;
图3为本发明实施例三中环形结构的ECC信息上报系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中当采用星形连接方式连接各个存储器与处理器时,存在的由于存储器的数目较多,导致集成电路的设计难度较大,以及处理资源消耗量较大的问题,本发明实施例中,采用环形结构,将控制模块与各个存储器连接到同一条环形总线上,通过控制模块控制环形总线上的各个存储器依次上报各自的ECC信息(其中,存储器上报的ECC信息为表征该存储器在执行ECC校验时是否发现了错误或者纠正了错误的相关数据信息),每接收到一个ECC信息的情况下,确定该ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误后,将该ECC信息作为目标ECC信息,提示处理器获取该目标ECC信息。采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,降低了ASIC的设计难度,而且,通过控制模块根据环形总线上的各个存储器依次上报的ECC信息,从环形总线上的各个存储器中,查询出在执行ECC校验时发现了错误或者纠正了错误的存储器,并将该存储器的ECC信息作为目标ECC信息后,提示处理器获取该目标ECC信息,处理器无需主动进行查询,只需根据控制模块的提示直接获取目标ECC信息即可,从而节省了处理器主动查询并读取信息时占用的大量CPU资源。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
实施例一
本发明实施例一中,提供了一种ECC信息上报方法,参阅图1所示,ECC信息上报方法的流程如下:
步骤100:控制模块确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号。
值得说的是,为了保证ECC信息的获取流程的顺利进行,在执行步骤100之前,还需要控制环形总线上的每一个存储器进行本地时钟配置,具体地,可以采用但不限于以下方式:
步骤1A:控制模块在接收到复位信号的情况下,控制环形总线上的各个存储器进入默认状态。
步骤1B:控制模块在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号。
步骤1C:控制模块通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块。较佳的,在执行步骤1C时,可以采用但不限于以下方式:
首先,控制模块向环形总线上的第一个存储器发送标志位为1的时钟脉冲信号。
然后,环形总线上的第一个存储器在接收到控制模块发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器。
最后,环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器将标志位为1的时钟脉冲信号发送至控制模块为止。
步骤1D:控制模块接收到环形总线上的最后一个存储器返回的时钟脉冲信号(标志位为1)的情况下,认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置。
值得说的是,在步骤1B-步骤1D的执行过程中,控制模块可以在本地标示出环形总线的当前状态为默认状态,以便处理器可以实时查看到环形总线的当前状态。
进一步地,控制模块认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置之后,为了能够及时获取ECC信息,在执行步骤100之前,控制模块可实时监听环形总线上的各个存储器的状态,当确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,以便在处理器的指示下,控制环形总线上的各个存储器依次上报各自的ECC信息,具体地,可以采用但不限于以下方式:
步骤2A:控制模块确定环形总线上的各个存储器满足预设的监听条件的情况下,向环形总线上的第一个存储器发送ECC指示信号。较佳的,在执行步骤2A时,可以采用但不限于以下方式:
步骤2a:控制模块向环形总线上的第一个存储器发送标志位为1的ECC使能信号。
值得说的是,控制模块可以在确定环形总线上的各个存储器已完成本地时钟配置的情况下,向处理器发起提示,并在处理器的指示下执行步骤2a,比如,在接收到处理器发送的第一使能信号的情况下,执行步骤2a。当然,控制模块也可以在确定环形总线上的各个存储器已完成本地时钟配置的情况下,自动执行步骤2a,无需处理器的指示。具体地,控制模块是自动执行步骤2a,还是在处理器的控制下执行步骤2a,在此不作具体限定。
步骤2b:环形总线上的第一个存储器在接收到控制模块发送的标志位为1的ECC使能信号的情况下,进入监听状态,并将标志位为1的ECC使能信号发送至环形总线上的下一个存储器。
步骤2c:环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,进入监听状态,直至环形总线上的最后一个存储器将标志位为1的ECC使能信号返回至控制模块为止。
步骤2d:控制模块接收到环形总线上的最后一个存储器返回的标志位为1的ECC使能信号的情况下,确定环形总线上的各个存储器已进入监听状态,并进一步认定环形总线上的各个存储器已满足预设条件。
步骤2e:控制模块向环形总线上的第一个存储器发送ECC指示信号。较佳的,控制模块可以向环形总线上的第一个存储器发送标志位为0的ECC指示信号。
值得说的是,在步骤2b-步骤2c的执行过程中,控制模块可以将在本地标示出的环形总线的当前状态由默认状态切换为忙状态,并在步骤2d执行后,将在本地标示出的环形总线的当前状态由忙状态切换为监听状态。这样,处理器就可以通过定期查看环形总线上的当前状态,来确定环形总线上的各个存储器是否均进入了监听状态,即当查看到环形总线处于忙状态时,认定环形总线上的各个存储器还未全部进入监听状态,当查看到环形总线处于监听状态时,认定环形总线上的各个存储器已全部进入监听状态,此时,处理器可以通过向控制模块发送第二使能信号,指示控制模块执行步骤2e。当然,控制模块也可以在确定环形总线上的各个存储器已全部进入监听状态后,自动执行步骤2e,无需处理器的指示,具体地,控制模块是自动执行步骤2e,还是在处理器的控制下执行步骤2e,在此不作具体限定。
步骤2B:环形总线上的第一个存储器接收到控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器。较佳的,在执行步骤2B时,可以包括:
步骤3a:环形总线上的第一个存储器接收到控制模块发送的标志位为0的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误;若是,则执行步骤3b;若否,则执行步骤3c。
步骤3b:环形总线上的第一个存储器将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器。
步骤3c:环形总线上的第一个存储器保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器。
步骤2C:环形总线上除第一个存储器之外的其它每一个存储器接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器将ECC指示信号发送至控制模块为止。较佳的,在执行步骤2C时,可以包括:
步骤4a:环形总线上除第一个存储器和最后一个存储器之外的其他每一个存储器在接收到前一个存储器发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器。
步骤4b:环形总线上的最后一个存储器在接收到前一个存储器发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至控制模块;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至控制模块;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至控制模块。
步骤2D:控制模块接收到环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听,并基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,判断环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误。具体地,在执行步骤2D时,可能存在但不限于以下两种情况:
第一种情况:控制模块接收到环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听后,确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为0的情况下,认定环形总线上没有存储器在执行ECC校验时发现了错误或者纠正了错误。
在此情况下,控制模块可通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听。
第二种情况:控制模块接收到环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听后,确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为1的情况下,认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
在此情况下,为了保证处理器能够及时获知环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,控制模块在认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误之后,可以向处理器发起提示,具体地,控制模块可通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
进一步地,控制模块通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误之后,可以在处理器的控制下继续执行步骤100。具体地,在执行步骤100时,可以采用但不限于以下方式:
步骤5A:控制模块向环形总线上的第一个存储器发送标志位为0的ECC使能信号。
具体地,控制模块可以在接收到处理器在确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误后发送的第三使能信号的情况下,向环形总线上的第一个存储器发送标志位为0的ECC使能信号。
步骤5B:环形总线上的第一个存储器在接收到控制模块发送的标志位为0的ECC使能信号的情况下,进入默认状态,并将标志位为0的ECC使能信号发送至环形总线上的下一个存储器。
步骤5C:环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为0的ECC使能信号的情况下,进入默认状态,直至环形总线上的最后一个存储器将标志位为0的ECC使能信号返回至控制模块为止。
步骤5D:控制模块接收到环形总线上的最后一个存储器返回的标志位为0的ECC使能信号的情况下,认定环形总线上的各个存储器已进入默认状态,并认定环形总线上的各个存储器已满足预设的查询条件。
步骤5E:控制模块向环形总线上的第一个存储器发送ECC使能信号。较佳的,控制模块可以向环形总线上的第一个存储器发送标志位为1的ECC使能信号。
值得说的是,在执行步骤5B-步骤5C的过程中,控制模块可以将在本地标示出的环形总线的当前状态由监听状态切换为忙状态,并在步骤5D执行后,将在本地标示出的环形总线的当前状态由忙状态切换为默认状态。这样,处理器就可以通过定期查看环形总线的当前状态,来确定环形总线上的各个存储器是否均进入了默认状态,即当查看到环形总线处于忙状态时,认定环形总线上的各个存储器还未全部进入默认状态,当查看到环形总线处于监听状态时,认定环形总线上的各个存储器已全部进入默认状态,此时,处理器可以通过向控制模块发送第四使能信号,指示控制模块执行步骤5E。当然,控制模块也可以在确定环形总线上的各个存储器已全部进入监听状态后,自动执行步骤5E,无需处理器的指示,具体地,控制模块是自动执行步骤5E,还是在处理器的控制下执行步骤5E,在此不作具体限定。
步骤101:环形总线上的第一个存储器接收到控制模块发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器。
较佳的,在执行步骤101时,可以包括:
步骤6A:环形总线上的第一个存储器接收到控制模块发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息。
步骤6B:环形总线上的第一个存储器将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器。
步骤102:环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器。
较佳的,在执行步骤102时,可以包括:
步骤7A:环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器。
步骤7B:环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息。
步骤7C:环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器。
步骤103:环形总线上的最后一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至控制模块后,将ECC使能信号发送至控制模块。
较佳的,在执行步骤103时,可以包括:
步骤8A:环形总线上的最后一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块。
步骤8B:环形总线上的最后一个存储器接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息。
步骤8C:环形总线上的最后一个存储器将加载的ECC信息发送至控制模块后,将标志位为1的ECC使能信号发送至控制模块。
值得说的是,在执行步骤101-步骤103的过程中,控制模块可以将在本地标示出的环形总线的当前状态由默认状态切换为忙状态,并在接收到环形总线上的最后一个存储器发送的标志位为1的ECC使能信号的情况下,认定环形总线上的各个存储器已完成ECC信息的上报后,将在本地标示出的环形总线的当前状态由忙状态切换为查询完成状态。这样,处理器就可以通过定期查看环形总线的当前状态,来确定环形总线上的各个存储器是否已全部完成ECC信息的上报,即当查看到环形总线处于忙状态时,认定环形总线上的各个存储器还未全部完成ECC信息的上报,当查看到环形总线处于查询完成状态时,认定环形总线上的各个存储器已全部完成ECC信息的上报,此时,处理器可以通过向控制模块发送第四使能信号,指示控制模块通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听。当然,控制模块也可以在确定环形总线上的各个存储器已全部完成ECC信息的上报后,自动通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听,无需处理器的指示,具体地,控制模块是自动执行,还是在处理器的控制下执行,在此不作具体限定。
步骤104:控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器,并在基于接收到的ECC信息,确定ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC信息作为目标ECC信息,并提示处理器获取目标ECC信息。
较佳的,在执行步骤103时,可以包括:
步骤9A:控制模块每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的目标累计数值,确定接收到的ECC信息对应的存储器。
步骤9B:控制模块基于接收到的ECC信息,确定ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将接收到的ECC信息作为目标ECC信息,通过控制时钟脉冲信号中断,控制环形总线上的各个存储器暂停运转,并提示处理器获取目标ECC信息,其中,通过控制时钟脉冲信号中断控制环形总线上的各个存储器暂停运转的目的在于:使处理器有足够的时间获取ECC信息。
步骤9C:控制模块确定处理器已获取到目标ECC信息的情况下,通过控制时钟脉冲信号恢复,控制环形总线上的各个存储器继续运转。
本发明实施例一中,采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,降低了ASIC的设计难度,而且,通过控制模块根据环形总线上的各个存储器依次上报的ECC信息,从环形总线上的各个存储器中,查询出在执行ECC校验时发现了错误或者纠正了错误的存储器,并将该存储器的ECC信息作为目标ECC信息后,提示处理器获取该目标ECC信息,处理器无需主动进行查询,只需根据控制模块的提示直接获取目标ECC信息即可,从而节省了处理器主动查询并读取信息时占用的大量CPU资源。
实施例二
本发明实施例二中,采用“控制模块与3个存储器通过环形总线相连接”为具体应用场景对上述实施例作进一步详细说明,参阅图2A、图2B、图2C和图2D所示,ECC信息上报方法的具体流程如下:
步骤200:在系统上电复位后,控制模块控制环形总线上的3个存储器进入默认状态(下述称默认状态为IDLE状态),并在本地标示出环形总线的当前状态为默认状态。
步骤201:在系统解除复位后,控制模块按照配置的时钟分频系数,获取相应频率的时钟脉冲信号(下述称时钟脉冲信号为mem_ring_sync信号)。
步骤202:控制模块向环形总线上的第一个存储器发送标志位为1的mem_ring_sync信号。
步骤203:环形总线上的第一个存储器在接收到控制模块发送的标志位为1的mem_ring_sync信号的情况下,按照mem_ring_sync信号配置本地时钟,并将标志位为1的mem_ring_sync信号发送至环形总线上的第二个存储器。
步骤204:环形总线上的第二个存储器在接收到第一个存储器发送的标志位为1的mem_ring_sync信号的情况下,按照mem_ring_sync信号配置本地时钟,并将标志位为1的mem_ring_sync信号发送至环形总线上的最后一个存储器。
步骤205:环形总线上的最后一个存储器在接收到第二个存储器发送的标志位为1的mem_ring_sync信号的情况下,按照mem_ring_sync信号配置本地时钟,并将标志位为1的mem_ring_sync信号发送至控制模块。
步骤206:控制模块接收到环形总线上的最后一个存储器返回的标志位为1的mem_ring_sync信号的情况下,认定环形总线上的3个存储器已按照mem_ring_sync信号完成本地时钟配置,并向处理器发起提示,提示处理器环形总线上的3个存储器已完成本地时钟配置。
步骤207:控制模块在接收到处理器在确定环形总线上的3个存储器已完成本地时钟配置后发送的第一使能信号(比如:active1信号)的情况下,向环形总线上的第一个存储器发送标志位为1的ECC使能信号(下述称ECC使能信号为mem_ring_ena信号),并将在本地标示出的环形总线的当前状态由默认状态切换为忙状态。
步骤208:环形总线上的第一个存储器在接收到控制模块发送的标志位为1的mem_ring_ena信号的情况下,进入监听状态(下述称监听状态为LISTEN状态),并将标志位为1的mem_ring_ena信号发送至环形总线上的第二个存储器。
步骤209:环形总线上的第二个存储器在接收到第一个存储器发送的标志位为1的mem_ring_ena信号的情况下,进入LISTEN状态,并将标志位为1的mem_ring_ena信号发送至环形总线上的最后一个存储器。
步骤210:环形总线上的最后一个存储器在接收到第二个存储器发送的标志位为1的mem_ring_ena信号的情况下,进入LISTEN状态,并将标志位为1的mem_ring_ena信号返回至控制模块。
步骤211:控制模块接收到环形总线上的最后一个存储器返回的标志位为1的mem_ring_ena信号的情况下,认定环形总线上的各个存储器已进入LISTEN状态,并将在本地标示出的环形总线的当前状态由忙状态切换为LISTEN状态。
步骤212:控制模块接收到处理器在查看到环形总线的当前状态为LISTEN状态后发送的第二使能信号(比如:active2信号)的情况下,向环形总线上的第一个存储器发送标志位为0的ECC指示信号(下述称ECC指示信号为mem_ring_intr信号)。
步骤213:环形总线上的第一个存储器接收到控制模块发送的标志位为0的mem_ring_intr信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,若是,则执行步骤214;若否,则执行步骤215。
步骤214:环形总线上的第一个存储器将mem_ring_intr信号的标志位由0变为1,并将标志位为1的mem_ring_intr信号发送至环形总线上的第二个存储器,继续执行步骤216。
步骤215;环形总线上的第一个存储器保持mem_ring_intr信号的标志位为0不变,并将标志位为0的mem_ring_intr信号发送至环形总线上的第二个存储器,继续执行步骤216。
步骤216:环形总线上的第二个存储器接收到第一个存储器发送的mem_ring_intr信号的情况下,判断mem_ring_intr信号的标志位是否为1;若是,则执行步骤217;若否,则执行步骤218。
步骤217:环形总线上的第二个存储器直接将标志位为1的mem_ring_intr信号发送至环形总线上的最后一个存储器。
步骤218:环形总线上的第二个存储器检查自身在执行ECC校验时是否发现了错误或者纠正了错误,若是,则执行步骤219;若否,则执行步骤220。
步骤219:环形总线上的最后一个存储器将mem_ring_intr信号的标志位由0变为1,并将标志位为1的mem_ring_intr信号发送至控制模块,继续执行步骤221。
步骤220:环形总线上的最后一个存储器保持mem_ring_intr信号的标志位为0,并将标志位为0的mem_ring_intr信号发送至控制模块,继续执行步骤221。
步骤221:控制模块接收到环形总线上的最后一个存储器返回的mem_ring_intr信号的情况下,认定已完成一轮监听,并判断接收到的环形总线上的最后一个存储器返回的mem_ring_intr信号的标志位是否为1;若是,则执行步骤223;若否,则执行步骤222。
步骤222:控制模块认定环形总线上没有存储器在执行ECC校验时发现了错误或者纠正了错误,并返回步骤212,进入下一轮监听。
步骤223:控制模块认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,并通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
步骤224:控制模块接收到处理器在确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误后发送的第三使能信号(比如:active3信号)的情况下,向环形总线上的第一个存储器发送标志位为0的mem_ring_ena信号,并将在本地标示出的环形总线的当前状态由监听状态切换为忙状态。
步骤225:环形总线上的第一个存储器在接收到控制模块发送的标志位为0的mem_ring_ena信号的情况下,进入IDLE状态,并将标志位为0的mem_ring_ena信号发送至环形总线上的第二个存储器。
步骤226:环形总线上的第二个存储器在接收到第一个存储器发送的标志位为0的mem_ring_ena信号的情况下,进入IDLE状态,并将标志位为0的mem_ring_ena信号发送至环形总线上的最后一个存储器。
步骤227:环形总线上的最后一个存储器在接收到第二个存储器发送的标志位为0的mem_ring_ena信号的情况下,进入IDLE状态,并将标志位为0的mem_ring_ena信号返回至控制模块。
步骤228:控制模块接收到环形总线上的最后一个存储器返回的标志位为0的mem_ring_ena信号的情况下,认定环形总线上的各个存储器已进入IDLE状态,并将在本地标示出的环形总线的当前状态由忙状态切换为IDLE状态。
步骤229:控制模块接收到处理器在查看到环形总线上的各个存储器已进入IDLE状态后发送的第四使能信号(比如:active4信号)的情况下,向环形总线上的第一个存储器发送标志位为1的mem_ring_ena信号,并将在本地标示出的环形总线的当前状态由IDLE状态切换为忙状态。
步骤230:环形总线上的第一个存储器在接收到控制模块发送的标志位为1的mem_ring_ena信号的情况下,进入查询状态,并以数据起始信号(下述称数据起始信号为mem_ring_data信号)的标志位从0变为1为起始标志,根据自身在执行ECC校验时是否发现了错误或者纠正了错误,选取相应的数据格式加载ECC信息。
具体地,在只发现了一个错误且纠正了该错误的情形下,以mem_ring_data信号的标志位从0变为1为起始标志,按照表一所示的数据格式,加载ECC信息;在除只发现了一个错误且纠正了该错误的情形之外的其它情形下,以mem_ring_data信号的标志位从0变为1为起始标志,按照表二所示的数据格式,加载ECC信息,其中,除只发现了一个错误且纠正了该错误的情形之外的其它情形可以是但不限于:未发现错误且未纠正错误,或者,发现了多个错误但未纠正错误,或者,发现了多个错误且纠正了一个错误,或者,发现了多个错误且纠正了多个错误,等等。
表一
表二
Bit | Name | Description |
31 | mem_err | 表征发现了一个错误 |
30 | mem_cor | 表征纠正了一个错误 |
29 | mem_err_ovf | 表征发现了多个错误 |
28 | mem_cor_ovf | 表征纠正了多个错误 |
值得说的是,在加载ECC信息时,若存储器未发现错误且未纠正错误,则存储器以mem_ring_data信号的标志位从0变为1为起始标志,依次在表一中31Bit位、30Bit位、29Bit位和28Bit位上写入数据0即可,即此时,存储器只需加载包含起始标志在内的5Bit的ECC信息即可。
进一步地,在加载ECC信息时,若存储器只发现了一个错误且纠正了该错误,则存储器以mem_ring_data信号的标志位从0变为1为起始标志,依次在表一中31Bit位和30Bit位上写入数据1,在29Bit位和28Bit位上写入数据0,并在表征有错误位地址的27Bit位上写入数据1,在26-0Bit位上写入发现并纠正的错误位的地址信息,即此时,存储器需加载包含起始标志在内的32Bit的ECC信息。
较佳的,为了保证ECC信息的顺利传递,避免由于ECC信息过大导致传递失败的问题,若存储器发现了多个错误但未纠正错误,则存储器以mem_ring_data信号的标志位从0变为1为起始标志,依次在表二中31Bit位和30Bit位上写入数据0,在29Bit位上写入数据1,在28Bit位上写入数据0即可,即此时,存储器只需加载包含起始标志在内的5Bit的ECC信息,无需在ECC信息中写入发现的多个错误位的地址信息;若存储器发现了多个错误且纠正了一个错误,则存储器以mem_ring_data信号的标志位从0变为1为起始标志,依次在表二中31Bit位和30Bit位上接入数据0,在表二中29Bit位和28Bit位上写入数据1即可,即此时,存储器只需加载包含起始标志在内的5Bit的ECC信息,无需在ECC信息中写入发现的多个错误位的地址信息,也无需写入纠正的一个错误位的地址信息;若存储器发现了多个错误且纠正了多个错误,则存储器以mem_ring_data信号的标志位从0变为1为起始标志,依次在表二中31Bit位和30Bit位上写入数据0,在29Bit位和28Bit位上写入数据1即可,即此时,存储器只需加载包含起始标志在内的5Bit的ECC信息,无需在ECC信息中写入发现的多个错误位的地址信息和纠正的多个错误位的地址信息。
步骤231:环形总线上的第一个存储器将加载的ECC信息发送至环形总线上的第二个存储器,并在将ECC信息发送至环形总线上的第二个存储器后,将标志位为1的mem_ring_ena信号发送至环形总线上的第二个存储器。
步骤232:环形总线上的第二个存储器接收到第一个存储器发送的第一个存储器的ECC信息的情况下,将第一个存储器的ECC信息发送至环形总线上的最后一个存储器。
步骤233:环形总线上的第二个存储器接收到第一个存储器发送的标志位为1的mem_ring_ena信号的情况下,进入查询状态,并以mem_ring_data信号的标志位从0变为1为起始标志,根据自身在执行ECC校验时是否发现了错误或者纠正了错误,选取相应的数据格式加载ECC信息(具体的加载方式同于上述描述的方式相同,在此不再赘述),继续执行步骤240。
步骤234:在环形总线上的第二个存储器加载ECC信息的过程中,环形总线上的最后一个存储器在接收到第二个存储器发送的第一个存储器的ECC信息的情况下,将第一个存储器的ECC信息直接发送至控制模块,继续执行步骤241。
步骤235:控制模块接收到环形总线上的最后一个存储器返回的ECC信息的情况下,获取起始标志的当前累计数值0,并将当前累计数值0加1,获取目标累计数值1,以及基于目标累计数值1,确定接收到的ECC信息对应的存储器是环形总线上的第一个存储器。
步骤236:控制模块基于接收到的ECC信息,判断环形总线上的第一个存储器在执行ECC校验时是否发现了错误或者纠正了错误,若是,则执行步骤237;若否,则执行步骤239。
步骤237:控制模块通过控制mem_ring_sync信号的中断,控制环形总线上的各个存储器暂停运转,并提示处理器获取第一个存储器的ECC信息。
步骤238:控制模块确定处理器已获取到第一个存储器的ECC信息的情况下,通过控制mem_ring_sync信号恢复,控制环形总线上的各个存储器继续运转,继续执行步骤239。
步骤239:控制模块等待接收环形总线上的最后一个存储器返回的下一个ECC信息。
步骤240:环形总线上的第二个存储器将加载的ECC信息发送至环形总线上的最后一个存储器,并在将ECC信息发送至环形总线上的最后一个存储器后,将标志位为1的mem_ring_ena信号发送至环形总线上的最后一个存储器。
步骤241:环形总线上的最后一个存储器接收到第二个存储器发送的第二个存储器的ECC信息的情况下,将第二个存储器的ECC信息发送至控制模块,继续执行步骤247。
步骤242:控制模块接收到环形总线上的最后一个存储器返回的ECC信息的情况下,获取起始标志的当前累计数值1,并将当前累计数值1加1,获取目标累计数值2,以及基于目标累计数值2,确定接收到的ECC信息对应的存储器是环形总线上的第二个存储器。
步骤243:控制模块基于接收到的ECC信息,判断环形总线上的第二个存储器在执行ECC校验时是否发现了错误或者纠正了错误,若是,则执行步骤244;若否,则执行步骤246。
步骤244:控制模块通过控制mem_ring_sync信号的中断,控制环形总线上的各个存储器暂停运转,并提示处理器获取第二个存储器的ECC信息。
步骤245:控制模块确定处理器已获取到第二个存储器的ECC信息的情况下,通过控制mem_ring_sync信号恢复,控制环形总线上的各个存储器继续运转,继续执行步骤246。
步骤246:控制模块等待接收环形总线上的最后一个存储器返回的下一个ECC信息。
步骤247:环形总线上的最后一个存储器接收到上一个存储器发送的标志位为1的mem_ring_ena信号的情况下,进入查询状态,并以mem_ring_data信号的标志位从0变为1为起始标志,根据自身在执行ECC校验时是否发现了错误或者纠正了错误,选取相应的数据格式加载ECC信息(具体的加载方式同于上述描述的方式相同,在此不再赘述)。
步骤248:环形总线上的最后一个存储器将加载的最后一个存储器的ECC信息发送至控制模块,并在将ECC信息发送至控制模块后,将标志位为1的mem_ring_ena信号发送至控制模块。
步骤249:控制模块接收到环形总线上的最后一个存储器返回的ECC信息的情况下,获取起始标志的当前累计数值2,并将当前累计数值2加1,获取目标累计数值3,以及基于目标累计数值3,确定接收到的ECC信息对应的存储器是第三个存储器。
步骤250:控制模块基于接收到的ECC信息,判断第三个存储器在执行ECC校验时是否发现了错误或者纠正了错误,若是,则执行步骤251;若否,则继续执行步骤253。
步骤251:控制模块通过控制mem_ring_sync信号的中断,控制环形总线上的各个存储器暂停运转,并提示处理器获取ECC信息。
步骤252:控制模块确定处理器已获取到最后一个存储器的ECC信息的情况下,控制mem_ring_sync信号恢复,以便继续执行步骤253。
步骤253:控制模块接收到环形总线上的最后一个存储器返回的标志位为1的mem_ring_ena信号的情况下,认定环形总线上的各个存储器已完成ECC信息的上报,并将在本地标示出的环形总线的当前状态由忙状态切换为查询完成状态。
基于步骤229-步骤253中描述的运转过程,当环形总线上的各个存储器处于查询状态时,各个存储器的运转过程可以简单地概括为如图2E所示的运转过程,具体为:
控制模块向环形总线上的第一个存储器发送标志位为1的mem_ring_ena信号。
环形总线上的第一个存储器接收到控制模块发送的标志位为1的mem_ring_ena信号的情况下,加载自身的ECC信息,假设为第一ECC信息。
环形总线上的第一个存储器将第一ECC信息发送至环形总线上的第二个存储器。
环形总线上的第二个存储器接收到环形总线上的第一个存储器发送的第一ECC信息的情况下,将第一ECC信息发送至环形总线上的第三个存储器。
在环形总线上的第二个存储器将第一ECC信息发送至环形总线上的第三个存储器的过程中,环形总线上的第一个存储器将标志位为1的mem_ring_ena信号发送至环形总线上的第二个存储器。
环形总线上的第二个存储器接收到环形总线上的第一个存储器发送的标志位为1的mem_ring_ena信号的情况下,加载自身的ECC信息,假设为第二ECC信息。
在环形总线上的第二个存储器加载第二ECC信息的过程中,环形总线上的第三个存储器将第一ECC信息发送至控制模块。
环形总线上的第二个存储器将第二ECC信息发送至环形总线上的第三个存储器。
环形总线上的第三个存储器将第二ECC信息发送至控制模块。
在环形总线上的第三个存储器将第二ECC信息发送至控制模块的过程中,环形总线上的第二个存储器将标志位为1的mem_ring_ena信号发送至环形总线上的第三个存储器。
环形总线上的第三个存储器接收到环形总线上的第二个存储器发送的标志位为1的第一ECC信息的情况下,加载自身的ECC信息,假设为第三ECC信息。
环形总线上的第三个存储器将第三ECC信息发送至控制模块。
环形总线上的第三个存储器将标志位为1的mem_ring_ena信号发送至控制模块。
步骤254:控制模块通过向环形总线上的第一个存储器再次发送标志位为1的mem_ring_intr信号,进入下一轮监听。
实施例三
本发明实施例三中,提供了一种如图3所示的ECC信息上报系统,该系统至少包括:控制模块300(在具体实施时,控制模块300可以与处理器相连接),以及多个存储器301,各个存储器301与控制模块300之间采用环形结构连接在环形总线上,其中,
控制模块300,用于确定环形总线上的各个存储器301满足预设的查询条件的情况下,向环形总线上的第一个存储器301发送ECC使能信号;
环形总线上的第一个存储器301,用于接收到控制模块300发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器301后,将ECC使能信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301和最后一个存储器301之外的其它每一个存储器301,用于接收到前一个存储器301发送的前一个存储器301的ECC信息的情况下,将前一个存储器301的ECC信息发送至环形总线上的下一个存储器301,以及,在接收到前一个存储器301发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器301后,将ECC使能信号发送至环形总线上的下一个存储器301;
环形总线上的最后一个存储器301,用于接收到前一个存储器301发送的前一个存储器301的ECC信息的情况下,将前一个存储器301的ECC信息发送至控制模块300,以及,在接收到前一个存储器301发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至控制模块300后,将ECC使能信号发送至控制模块300;
控制模块300,用于每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器301,并在基于接收到的ECC信息,确定ECC信息对应的存储器301在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC信息作为目标ECC信息,并提示处理器获取目标ECC信息。
较佳的,在控制模块300确定环形总线上的各个存储器301满足预设的查询条件的情况下,向环形总线上的第一个存储器301发送ECC使能信号之前,控制模块300进一步用于:
在接收到复位信号的情况下,控制环形总线上的各个存储器301进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
通过向环形总线上的第一个存储器301发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器301后返回至控制模块300;
接收到环形总线上的最后一个存储器301返回的时钟脉冲信号的情况下,认定环形总线上的各个存储器301已按照时钟脉冲信号,完成本地时钟配置。
较佳的,在控制模块300通过向环形总线上的第一个存储器301发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器301后返回至控制模块300时,控制模块300具体用于:
控制模块300向环形总线上的第一个存储器301发送标志位为1的时钟脉冲信号;
环形总线上的第一个存储器301在接收到控制模块300发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301之外的其它每一个存储器301在接收到前一个存储器301发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器301将标志位为1的时钟脉冲信号发送至控制模块300为止。
较佳的,在控制模块300认定环形总线上的各个存储器301已按照时钟脉冲信号,完成本地时钟配置之后,在控制模块300确定环形总线上的各个存储器301满足预设的查询条件的情况下,向环形总线上的第一个存储器301发送ECC使能信号之前,控制模块300还用于:确定环形总线上的各个存储器301满足预设的监听条件的情况下,向环形总线上的第一个存储器301发送ECC指示信号;
环形总线上的第一个存储器301还用于:接收到控制模块300发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301之外的其它每一个存储器301还用于:接收到前一个存储器301发送的ECC指示信号的情况下,基于前一个存储器301在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器301将ECC指示信号发送至控制模块300为止;
控制模块300还用于:接收到环形总线上的最后一个存储器301返回的ECC指示信号的情况下,认定已完成一轮监听,并基于接收到的环形总线上的最后一个存储器301返回的ECC指示信号,判断环形总线上是否有存储器301在执行ECC校验时发现了错误或者纠正了错误。
较佳的,控制模块300确定环形总线上的各个存储器301满足预设的监听条件,包括:
控制模块300通过向环形总线上的第一个存储器301发送标志位为1的ECC使能信号,使标志位为1的ECC使能信号顺序通过环形总线上的每一个存储器301后返回至控制模块300;
控制模块300接收到环形总线上的最后一个存储器301返回的标志位为1的ECC使能信号的情况下,确定环形总线上的各个存储器301已进入监听状态,并认定环形总线上的各个存储器301已满足预设的监听条件。
较佳的,控制模块300通过向环形总线上的第一个存储器301发送标志位为1的ECC使能信号,使标志位为1的ECC使能信号顺序通过环形总线上的每一个存储器301后返回至控制模块300,包括:
控制模块300向环形总线上的第一个存储器301发送标志位为1的ECC使能信号;
环形总线上的第一个存储器301在接收到控制模块300发送的标志位为1的ECC使能信号的情况下,进入监听状态,并将标志位为1的ECC使能信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301之外的其它每一个存储器301在接收到前一个存储器301发送的标志位为1的ECC使能信号的情况下,进入监听状态,直至环形总线上的最后一个存储器301将标志位为1的ECC使能信号返回至控制模块300为止。
较佳的,在控制模块300向环形总线上的第一个存储器301发送ECC指示信号时,控制模块300具体用于:向环形总线上的第一个存储器301发送标志位为0的ECC指示信号。
较佳的,在环形总线上的第一个存储器301接收到控制模块300发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器301时,环形总线上的第一个存储器301具体用于:
接收到控制模块300发送的标志位为0的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误;
若是,则将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器301;
若否,则保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器301。
较佳的,环形总线上除第一个存储器301和最后一个存储器301之外的其他每一个存储器301具体用于:接收到前一个存储器301发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器301;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器301;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器301;
环形总线上的最后一个存储器301具体用于:接收到前一个存储器301发送的ECC指示信号的情况下,若ECC指示信号的标志位为1,则保持ECC指示信号的标志位为1,并将标志位为1的ECC指示信号发送至控制模块300;若ECC指示信号的标志位为0,则检查自身在执行ECC校验时是否发现了错误或者纠正了错误,在确定自身在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至控制模块300;在确定自身在执行ECC校验时未发现错误或者纠正错误的情况下,保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至控制模块300。
较佳的,在控制模块300基于接收到的环形总线上的最后一个存储器301返回的ECC指示信号,判断环形总线上是否有存储器301在执行ECC校验时发现了错误或者纠正了错误时,控制模块300具体用于:
确定环形总线上的最后一个存储器301返回的ECC指示信号的标志位为1的情况下,认定环形总线上有存储器301在执行ECC校验时发现了错误或者纠正了错误;确定环形总线上的最后一个存储器301返回的ECC指示信号的标志位为0的情况下,认定环形总线上没有存储器301在执行ECC校验时发现了错误或者纠正了错误。
较佳的,若控制模块300基于接收到的环形总线上的最后一个存储器301返回的ECC指示信号,认定环形总线上没有存储器301在执行ECC校验时发现了错误或者纠正了错误,则控制模块300进一步用于:通过向环形总线上的第一个存储器301再次发送标志位为1的ECC指示信号,进入下一轮监听。
较佳的,若控制模块300基于接收到的环形总线上的最后一个存储器301返回的ECC指示信号,认定环形总线上有存储器301在执行ECC校验时发现了错误或者纠正了错误,则控制模块300进一步用于:通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,控制模块300确定环形总线上的各个存储器301满足预设的查询条件,包括:
控制模块300通过向环形总线上的第一个存储器301发送标志位为0的ECC使能信号,使标志位为0的ECC使能信号顺序通过环形总线上的每一个存储器301后返回至控制模块300;
控制模块300接收到环形总线上的最后一个存储器301返回的标志位为0的ECC使能信号的情况下,确定环形总线上的各个存储器301已进入默认状态,并认定环形总线上的各个存储器301已满足预设的查询条件。
较佳的,控制模块300通过向环形总线上的第一个存储器301发送标志位为0的ECC使能信号,使标志位为0的ECC使能信号顺序通过环形总线上的每一个存储器301后返回至控制模块300,包括:
控制模块300向环形总线上的第一个存储器301发送标志位为0的ECC使能信号;
环形总线上的第一个存储器301在接收到控制模块300发送的标志位为0的ECC使能信号的情况下,进入默认状态,并将标志位为0的ECC使能信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301之外的其它每一个存储器301在接收到前一个存储器301发送的标志位为0的ECC使能信号的情况下,进入默认状态,直至环形总线上的最后一个存储器301将标志位为0的ECC使能信号返回至控制模块300为止。
较佳的,在控制模块300向环形总线上的第一个存储器301发送ECC使能信号时,控制模块300具体用于:向环形总线上的第一个存储器301发送标志位为1的ECC使能信号。
较佳的,环形总线上的第一个存储器301具体用于:接收到控制模块300发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至环形总线上的下一个存储器301后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301和最后一个存储器301之外的其它每一个存储器301具体用于:接收到前一个存储器301发送的前一个存储器301的ECC信息的情况下,将前一个存储器301的ECC信息发送至环形总线上的下一个存储器301,以及,在接收到前一个存储器301发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至环形总线上的下一个存储器301后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器301;
环形总线上的最后一个存储器301具体用于:接收到前一个存储器301发送的前一个存储器301的ECC信息的情况下,将前一个存储器301的ECC信息发送至控制模块300,以及,在接收到前一个存储器301发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至控制模块300。
较佳的,在控制模块300每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器301时,控制模块300具体用于:
每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的目标累计数值,确定接收到的ECC信息对应的存储器301。
较佳的,在控制模块300将ECC信息作为目标ECC信息之后,在控制模块300提示处理器获取目标ECC信息之前,控制模块300进一步用于:通过控制时钟脉冲信号中断,控制环形总线上的各个存储器301暂停运转;
在控制模块300提示处理器获取目标ECC信息之后,在控制模块300确定处理器已获取到目标ECC信息的情况下,控制模块300还用于:通过控制时钟脉冲信号恢复,控制环形总线上的各个存储器301继续运转。
综上所述,本发明实施例中,采用环形结构,将控制模块与各个存储器连接到同一条环形总线上,通过控制模块控制环形总线上的各个存储器依次上报各自的ECC信息,每接收到一个ECC信息的情况下,确定该ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误后,将该ECC信息作为目标ECC信息,提示处理器获取该目标ECC信息。采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,降低了ASIC的设计难度,而且,通过控制模块根据环形总线上的各个存储器依次上报的ECC信息,从环形总线上的各个存储器中,查询出在执行ECC校验时发现了错误或者纠正了错误的存储器,并将该存储器的ECC信息作为目标ECC信息后,提示处理器获取该目标ECC信息,处理器无需主动进行查询,只需根据控制模块的提示直接获取目标ECC信息即可,从而节省了处理器主动查询并读取信息时占用的大量CPU资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (20)
1.一种错误检查和纠正ECC信息上报方法,其特征在于,应用于环形结构的ECC信息上报系统,所述ECC信息上报系统中的各个存储器与控制模块之间通过环形总线相连接,其中,所述方法包括:
所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号;
所述环形总线上的第一个存储器接收到所述控制模块发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述环形总线上的下一个存储器,以及,在接收到前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上的最后一个存储器接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述控制模块,以及,在接收到所述前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述控制模块后,将所述ECC使能信号发送至所述控制模块;
所述控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器,并在基于接收到的ECC信息,确定所述ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将所述ECC信息作为目标ECC信息,并提示处理器获取所述目标ECC信息。
2.如权利要求1所述的方法,其特征在于,所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号之前,进一步包括:
所述控制模块在接收到复位信号的情况下,控制所述环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
所述控制模块通过向所述环形总线上的第一个存储器发送所述时钟脉冲信号,使所述时钟脉冲信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
所述控制模块接收到所述环形总线上的最后一个存储器返回的所述时钟脉冲信号的情况下,认定所述环形总线上的各个存储器已按照所述时钟脉冲信号,完成本地时钟配置。
3.如权利要求2所述的方法,其特征在于,所述控制模块认定所述环形总线上的各个存储器已按照所述时钟脉冲信号,完成本地时钟配置之后,所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号之前,还包括:
所述控制模块确定所述环形总线上的各个存储器满足预设的监听条件的情况下,向所述环形总线上的第一个存储器发送ECC指示信号;
所述环形总线上的第一个存储器接收到所述控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对所述ECC指示信号进行相应处理后,将ECC指示信号发送至所述环形总线上的下一个存储器;
所述环形总线上除所述第一个存储器之外的其它每一个存储器接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至所述环形总线上的最后一个存储器将ECC指示信号发送至所述控制模块为止;
所述控制模块接收到所述环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听,并基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,判断所述环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误。
4.如权利要求3所述的方法,其特征在于,若所述控制模块基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,认定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,则进一步包括:
所述控制模块通过生成查询中断,提示所述处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
5.如权利要求1所述的方法,其特征在于,所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件,包括:
所述控制模块通过向所述环形总线上的第一个存储器发送标志位为0的所述ECC使能信号,使标志位为0的所述ECC使能信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
所述控制模块接收到所述环形总线上的最后一个存储器返回的标志位为0的所述ECC使能信号的情况下,确定所述环形总线上的各个存储器已进入默认状态,并认定所述环形总线上的各个存储器已满足预设的查询条件。
6.如权利要求5所述的方法,其特征在于,所述控制模块通过向所述环形总线上的第一个存储器发送标志位为0的所述ECC使能信号,使标志位为0的所述ECC使能信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块,包括:
所述控制模块向所述环形总线上的第一个存储器发送标志位为0的所述ECC使能信号;
所述环形总线上的第一个存储器在接收到所述控制模块发送的标志位为0的所述ECC使能信号的情况下,进入默认状态,并将标志位为0的所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为0的所述ECC使能信号的情况下,进入默认状态,直至所述环形总线上的最后一个存储器将标志位为0的所述ECC使能信号返回至所述控制模块为止。
7.如权利要求1所述的方法,其特征在于,所述控制模块向所述环形总线上的第一个存储器发送ECC使能信号,包括:
所述控制模块向所述环形总线上的第一个存储器发送标志位为1的ECC使能信号。
8.如权利要求7所述的方法,其特征在于,所述环形总线上的第一个存储器接收到所述控制模块发送的标志位为1的所述ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至所述环形总线上的下一个存储器后,将标志位为1的所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述环形总线上的下一个存储器,以及,在接收到前一个存储器发送的标志位为1的所述ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至所述环形总线上的下一个存储器后,将标志位为1的所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上的最后一个存储器接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述控制模块,以及,在接收到所述前一个存储器发送的标志位为1的所述ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至所述控制模块。
9.如权利要求1所述的方法,其特征在于,所述控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器,包括:
所述控制模块每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的所述目标累计数值,确定接收到的ECC信息对应的存储器。
10.如权利要求1所述的方法,其特征在于,所述控制模块将所述ECC信息作为目标ECC信息之后,提示所述处理器获取所述目标ECC信息之前,进一步包括:
所述控制模块通过控制时钟脉冲信号中断,控制所述环形总线上的各个存储器暂停运转;
所述控制模块提示所述处理器获取所述目标ECC信息之后,确定所述处理器已获取到所述目标ECC信息的情况下,还包括:
所述控制模块通过控制所述时钟脉冲信号恢复,控制所述环形总线上的各个存储器继续运转。
11.一种错误检查和纠正ECC信息上报系统,其特征在于,包括:多个存储器,以及控制模块,各个存储器与控制模块之间采用环形结构连接在环形总线上,其中,
所述控制模块,用于确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号;
所述环形总线上的第一个存储器,用于接收到所述控制模块发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器,用于接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述环形总线上的下一个存储器,以及,在接收到前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上的最后一个存储器,用于接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述控制模块,以及,在接收到所述前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述控制模块后,将所述ECC使能信号发送至所述控制模块;
所述控制模块,用于每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器,并在基于接收到的ECC信息,确定所述ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将所述ECC信息作为目标ECC信息,并提示处理器获取所述目标ECC信息。
12.如权利要求11所述的系统,其特征在于,在所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号之前,所述控制模块还用于:
在接收到复位信号的情况下,控制所述环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
通过向所述环形总线上的第一个存储器发送所述时钟脉冲信号,使所述时钟脉冲信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
在接收到所述环形总线上的最后一个存储器返回的所述时钟脉冲信号的情况下,认定所述环形总线上的各个存储器已按照所述时钟脉冲信号,完成本地时钟配置。
13.如权利要求12所述的系统,其特征在于,在所述控制模块认定所述环形总线上的各个存储器已按照所述时钟脉冲信号,完成本地时钟配置之后,在所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号之前,所述控制模块还用于:确定所述环形总线上的各个存储器满足预设的监听条件的情况下,向所述环形总线上的第一个存储器发送ECC指示信号;
所述环形总线上的第一个存储器还用于:接收到所述控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对所述ECC指示信号进行相应处理后,将ECC指示信号发送至所述环形总线上的下一个存储器;
所述环形总线上除所述第一个存储器之外的其它每一个存储器还用于:接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至所述环形总线上的最后一个存储器将ECC指示信号发送至所述控制模块为止;
所述控制模块还用于:接收到所述环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听,并基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,判断所述环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误。
14.如权利要求13所述的系统,其特征在于,若所述控制模块基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,确定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,则所述控制模块进一步用于:通过生成查询中断,提示所述处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
15.如权利要求11所述的系统,其特征在于,在所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件时,所述控制模块具体用于:
通过向所述环形总线上的第一个存储器发送标志位为0的所述ECC使能信号,使标志位为0的所述ECC使能信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
接收到所述环形总线上的最后一个存储器返回的标志位为0的所述ECC使能信号的情况下,确定所述环形总线上的各个存储器已进入默认状态,并认定所述环形总线上的各个存储器已满足预设的查询条件。
16.如权利要求15所述的系统,其特征在于,在所述控制模块通过向所述环形总线上的第一个存储器发送标志位为0的所述ECC使能信号,使标志位为0的所述ECC使能信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块时,所述控制模块具体用于:向所述环形总线上的第一个存储器发送标志位为0的所述ECC使能信号;
所述环形总线上的第一个存储器具体用于:接收到所述控制模块发送的标志位为0的所述ECC使能信号的情况下,进入默认状态,并将标志位为0的所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的标志位为0的所述ECC使能信号的情况下,进入默认状态,直至所述环形总线上的最后一个存储器将标志位为0的所述ECC使能信号返回至所述控制模块为止。
17.如权利要求11所述的系统,其特征在于,在所述控制模块向所述环形总线上的第一个存储器发送ECC使能信号时,所述控制模块具体用于:向所述环形总线上的第一个存储器发送标志位为1的ECC使能信号。
18.如权利要求11所述的系统,其特征在于,所述环形总线上的第一个存储器具体用于:接收到所述控制模块发送的标志位为1的所述ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至所述环形总线上的下一个存储器后,将标志位为1的所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述环形总线上的下一个存储器,以及,在接收到前一个存储器发送的标志位为1的所述ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至所述环形总线上的下一个存储器后,将标志位为1的所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上的最后一个存储器具体用于:接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述控制模块,以及,在接收到所述前一个存储器发送的标志位为1的所述ECC使能信号的情况下,以预先定义的起始标志为起始,并基于自身在执行ECC校验时是否发现了错误或者纠正了错误,从预先定义的数据格式中,选取相应的数据格式加载ECC信息,以及,将加载的ECC信息发送至所述控制模块。
19.如权利要求11所述的系统,其特征在于,在所述控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器时,所述控制模块具体用于:
每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的所述目标累计数值,确定接收到的ECC信息对应的存储器。
20.如权利要求11所述的系统,其特征在于,在所述控制模块将所述ECC信息作为目标ECC信息之后,在所述控制模块提示所述处理器获取所述目标ECC信息之前,所述控制模块进一步用于:通过控制时钟脉冲信号中断,控制所述环形总线上的各个存储器暂停运转;
在所述控制模块提示所述处理器获取所述目标ECC信息之后,在所述控制模块确定所述处理器已获取到所述目标ECC信息的情况下,所述控制模块还用于:通过控制所述时钟脉冲信号恢复,控制所述环形总线上的各个存储器继续运转。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710393776.8A CN107239363B (zh) | 2017-05-27 | 2017-05-27 | 一种ecc信息上报方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710393776.8A CN107239363B (zh) | 2017-05-27 | 2017-05-27 | 一种ecc信息上报方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107239363A CN107239363A (zh) | 2017-10-10 |
CN107239363B true CN107239363B (zh) | 2020-04-24 |
Family
ID=59985689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710393776.8A Active CN107239363B (zh) | 2017-05-27 | 2017-05-27 | 一种ecc信息上报方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107239363B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009044B (zh) * | 2017-11-09 | 2021-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种实时校验flash数据正确性的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8375146B2 (en) * | 2004-08-09 | 2013-02-12 | SanDisk Technologies, Inc. | Ring bus structure and its use in flash memory systems |
US7661058B1 (en) * | 2006-04-17 | 2010-02-09 | Marvell International Ltd. | Efficient raid ECC controller for raid systems |
US7904639B2 (en) * | 2006-08-22 | 2011-03-08 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
KR101687038B1 (ko) * | 2008-12-18 | 2016-12-15 | 노바칩스 캐나다 인크. | 에러 검출 방법 및 하나 이상의 메모리 장치를 포함하는 시스템 |
CN105356962B (zh) * | 2015-11-20 | 2018-05-04 | 上海联影医疗科技有限公司 | 环形网络系统及其节点时间同步方法 |
-
2017
- 2017-05-27 CN CN201710393776.8A patent/CN107239363B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107239363A (zh) | 2017-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108183957B (zh) | 主从同步方法及装置 | |
TWI446683B (zh) | 分散式電池管理系統及其標識分配方法 | |
CN109308227B (zh) | 故障检测控制方法及相关设备 | |
CN110990339B (zh) | 分布式存储的文件读写方法、装置、平台及可读存储介质 | |
CN108228789B (zh) | 从节点触发的同步异常恢复方法及装置 | |
CN107239363B (zh) | 一种ecc信息上报方法及系统 | |
CN108388108B (zh) | 一种多重冗余控制系统中同步数据的方法及装置 | |
CN107134294B (zh) | 一种ecc信息获取方法及系统 | |
CN103823727B (zh) | 一种直播录制的备份方法和装置 | |
CN108200157B (zh) | 主节点触发回退的日志同步方法及装置 | |
CN115509803A (zh) | 软件恢复方法、电子设备及存储介质 | |
CN112817883A (zh) | 接口平台的适配方法、设备、系统及计算机可读存储介质 | |
CN113965494A (zh) | 用于冗余进程网络中的故障检测和角色选择的方法 | |
CN105868038B (zh) | 内存错误处理方法及电子设备 | |
CN101944056B (zh) | 一种多任务系统监控方法及装置 | |
CN114327673B (zh) | 一种任务启动方法、装置、电子设备及存储介质 | |
JP2013011987A (ja) | 異常状態検知装置及び異常状態検知方法 | |
CN114896110A (zh) | 链路检测方法、装置、设备和存储介质 | |
CN112769634B (zh) | 一种基于Zookeeper的可横向扩展的分布式系统及开发方法 | |
US9405629B2 (en) | Information processing system, method for controlling information processing system, and storage medium | |
JP2019020864A (ja) | 演算装置 | |
CN112673344A (zh) | 软件升级的方法、装置和系统 | |
US20210288870A1 (en) | Communication device, information processing method, and system | |
CN112433968A (zh) | 一种控制器共享同步方法和装置 | |
CN111666089B (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 |