CN107134294B - 一种ecc信息获取方法及系统 - Google Patents
一种ecc信息获取方法及系统 Download PDFInfo
- Publication number
- CN107134294B CN107134294B CN201710393774.9A CN201710393774A CN107134294B CN 107134294 B CN107134294 B CN 107134294B CN 201710393774 A CN201710393774 A CN 201710393774A CN 107134294 B CN107134294 B CN 107134294B
- Authority
- CN
- China
- Prior art keywords
- ecc
- memory
- ring bus
- control module
- flag bit
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56016—Apparatus features
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1208—Error catch memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C2029/5606—Error catch memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种ECC信息获取方法及系统,该方法为:采用环形结构,将控制模块与各个存储器连接到一条环形总线上,通过控制模块监听环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误,当环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,并在处理器的指示下控制环形总线上的各个存储器上报各自的ECC信息。采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,降低了ASIC的设计难度,而且,通过控制模块监听环形总线上的各个存储器,无需处理器实时监听,节省了处理器的大量处理资源。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种ECC信息获取方法及系统。
背景技术
随着电子技术的不断发展,不同功能的芯片系统也应运而生,在实际应用中,在一个芯片系统内部可能存在数量众多的用于存储各类数据或表项的存储器,而各个存储器通常都具备错误检查和纠正(Error Checking and Correcting,ECC)功能,即具备发现错误、纠正错误的功能,具体来说就是,当存储数据时,生成一ECC代码,与该数据一并保存,当读取数据时,需要将保存的ECC代码与读取数据时生成的ECC代码进行比较,若两个ECC代码相同,则确定读取的数据无误,若两个ECC代码不同,则确定读取的数据有误,可通过解码确定错误位,并进行纠正。采用ECC技术,有效地避免了由于数据读取错误导致整个芯片系统运行中断的问题,从而保证了整个芯片的正常运行。
为了后续能够根据各个存储器在执行ECC校验时发现的错误或者纠正的错误优化芯片性能,通常需要获取存储器在执行ECC校验时发现的错误或者纠正的错误信息。现有技术中,比较常用的方法是:采用分布式结构或者分层式结构,将各个存储器连接到外接处理器上,通过处理器实时监听各个存储器的状态,并在确定各个存储器中有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,从该存储器中获取该存储器在执行ECC校验时发现的错误或者纠正的错误信息。
基于上述分析可知,现有技术中,在采用上述方法获取各个存储器在执行ECC校验的过程中发现的错误信息或者纠正的错误信息时,主要存在以下缺陷:
(1)处理器需要实时监控各个存储器的状态,这就会占用处理器的大量处理资源。
(2)采用分布式结构或者分层式结构将各个存储器连接到处理器上,实质上来讲,这两种结构均属于星形连接方式,而这种星型连接方式,一般要求在同一层面上的各个存储器与处理器之间的距离要保持一致,当连接在处理器上的存储器的数目较多时,很难保证同一层面上的各个存储器与处理器之间的距离均相同,使得在设计集成电路(Application Specific Integrated Circuit,ASIC)时的难度加大。
发明内容
本发明实施例提供了一种ECC信息获取方法及系统,用以解决现有技术中当采用星形连接方式连接各个存储器与处理器时,存在的由于存储器的数目较多,导致集成电路的设计难度较大,以及处理资源消耗量较大的问题。
本发明实施例提供的具体技术方案如下:
一种ECC信息获取方法,应用于环形结构的ECC信息获取系统,ECC信息获取系统中的各个存储器与控制模块之间通过环形总线相连接,其中,方法包括:
控制模块确定环形总线上的各个存储器满足预设的监听条件的情况下,向环形总线上的第一个存储器发送ECC指示信号;
环形总线上的第一个存储器接收到控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器将ECC指示信号发送至控制模块为止;
控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,在处理器的指示下,控制环形总线上的各个存储器依次上报各自的ECC信息。
较佳的,控制模块确定环形总线上的各个存储器满足预设的监听条件的情况下,向环形总线上的第一个存储器发送ECC指示信号之前,进一步包括:
控制模块在接收到复位信号的情况下,控制环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
控制模块通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块;
控制模块接收到环形总线上的最后一个存储器返回的时钟脉冲信号的情况下,认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置。
较佳的,控制模块通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块,包括:
控制模块向环形总线上的第一个存储器发送标志位为1的时钟脉冲信号;
环形总线上的第一个存储器在接收到控制模块发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器将标志位为1的时钟脉冲信号发送至控制模块为止。
较佳的,控制模块确定环形总线上的各个存储器满足预设的监听条件,包括:
控制模块通过向环形总线上的第一个存储器发送标志位为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校验时发现了错误或者纠正了错误之后,进一步包括:
控制模块通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听。
较佳的,控制模块向处理器发起提示,包括:
控制模块通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,控制模块控制环形总线上的各个存储器依次上报各自的ECC信息,包括:
控制模块确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号;
环形总线上的第一个存储器接收到控制模块发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载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信息对应的存储器,并在基于接收到的ECC信息,确定接收到的ECC信息对应的存储器在执行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指示信号之前,控制模块还用于:
在接收到复位信号的情况下,控制环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块;
接收到环形总线上的最后一个存储器返回的时钟脉冲信号的情况下,认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置。
较佳的,控制模块,用于向环形总线上的第一个存储器发送标志位为1的时钟脉冲信号;
环形总线上的第一个存储器,用于接收到控制模块发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器之外的其它每一个存储器,用于接收到前一个存储器发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器将标志位为1的时钟脉冲信号发送至控制模块为止。
较佳的,在控制模块确定环形总线上的各个存储器满足预设的监听条件时,控制模块具体用于:
通过向环形总线上的第一个存储器发送标志位为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信息之后,控制模块进一步用于:
通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听。
较佳的,在控制模块向处理器发起提示时,控制模块具体用于:
通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
较佳的,在控制模块控制环形总线上的各个存储器依次上报各自的ECC信息时,控制模块具体用于:确定环形总线上的各个存储器满足预设的查询条件的情况下,向环形总线上的第一个存储器发送ECC使能信号;
环形总线上的第一个存储器具体用于:接收到控制模块发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将ECC使能信号发送至环形总线上的下一个存储器;
环形总线上的最后一个存储器具体用于:接收到前一个存储器发送的前一个存储器的ECC信息的情况下,将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的ECC使能信号的情况下,加载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信息对应的存储器,并在基于接收到的ECC信息,确定接收到的ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC信息作为目标ECC信息,并提示处理器获取目标ECC信息。
较佳的,在控制模块每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器时,控制模块具体用于:
每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的目标累计数值,确定接收到的ECC信息对应的存储器。
较佳的,在环形总线上的各个存储器依次上报各自的ECC信息的过程中,控制模块还用于:
基于接收到的ECC信息,确定ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将接收到的ECC信息作为目标ECC信息,并通过控制时钟脉冲信号中断,控制环形总线上的各个存储器暂停运转,以及,提示处理器获取目标ECC信息;
确定处理器已获取到目标ECC信息的情况下,通过控制时钟脉冲信号恢复,控制环形总线上的各个存储器继续运转。
本发明实施例的有益效果如下:
本发明实施例中,采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,有效地降低了ASIC的设计难度。而且,通过控制模块监听环形总线上的各个存储器,只有当监听到环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,才会向处理器发起提示,无需处理器实时监听各个存储器在执行ECC校验时是否发现了错误或者纠正了错误,节省了处理器的大量处理资源。
附图说明
图1为本发明实施例一中ECC信息获取方法的流程示意图;
图2A、图2B、图2C和图2D为本发明实施例二中ECC信息获取方法的具体流程示意图;
图2E为本发明实施例二中,当环形总线上的各个存储器处于查询状态时,各个存储器的运转过程示意图;
图3为本发明实施例三中环形结构的ECC信息获取系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中当采用星形连接方式连接各个存储器与处理器时,存在的由于存储器的数目较多,导致集成电路的设计难度较大,以及处理资源消耗量较大的问题,本发明实施例中,采用环形结构,将控制模块与各个存储器连接到同一条环形总线上,通过控制模块监听环形总线上是否有存储器在执行ECC校验时发现了错误或者纠正了错误,当确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,在处理器的指示下控制环形总线上的各个存储器上报各自对应的ECC信息(其中,存储器上报的ECC信息为表征该存储器在执行ECC校验时是否发现了错误或者纠正了错误的相关数据信息)。采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,有效地降低了ASIC的设计难度,而且,通过控制模块监听环形总线上的各个存储器,只有当监听到环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,才会向处理器发起提示,无需处理器实时监听各个存储器在执行ECC校验时是否发现了错误或者纠正了错误,节省了处理器的大量处理资源。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
实施例一
本发明实施例一中,提供了一种ECC信息获取方法,参阅图1所示,ECC信息的获取方法的流程如下:
步骤100:控制模块确定环形总线上的各个存储器满足预设的监听条件的情况下,向环形总线上的第一个存储器发送ECC指示信号。
值得说的是,为了保证ECC信息的获取流程的顺利进行,在执行步骤100之前,还需要控制环形总线上的每一个存储器进行本地时钟配置,具体地,可以采用但不限于以下方式:
步骤1a:控制模块在接收到复位信号的情况下,控制环形总线上的各个存储器进入默认状态。
步骤1b:控制模块在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号。
步骤1c:控制模块通过向环形总线上的第一个存储器发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器后返回至控制模块。
较佳的,在执行步骤1c时,可以采用但不限于以下方式:
首先,控制模块向环形总线上的第一个存储器发送标志位为1的时钟脉冲信号。
然后,环形总线上的第一个存储器在接收到控制模块发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器。
最后,环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器将标志位为1的时钟脉冲信号发送至控制模块为止。
步骤1d:控制模块接收到环形总线上的最后一个存储器返回的时钟脉冲信号(标志位为1)的情况下,认定环形总线上的各个存储器已按照时钟脉冲信号,完成本地时钟配置。
值得说的是,在步骤1b-步骤1d的执行过程中,控制模块可以在本地标示出环形总线的当前状态为默认状态,以便处理器可以实时查看到环形总线的当前状态。
进一步地,控制模块在确定环形总线上的各个存储器已完成本地时钟配置之后,在执行步骤100时,可以采用但不限于以下方式:
步骤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,在此不作具体限定。
步骤101:环形总线上的第一个存储器接收到控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对ECC指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器。
在执行步骤101时,具体包括:
步骤3a:环形总线上的第一个存储器接收到控制模块发送的标志位为0的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误;若是,则执行步骤3b;若否,则执行步骤3c。
步骤3b:环形总线上的第一个存储器将ECC指示信号的标志位由0变为1,并将标志位为1的ECC指示信号发送至环形总线上的下一个存储器。
步骤3c:环形总线上的第一个存储器保持ECC指示信号的标志位为0,并将标志位为0的ECC指示信号发送至环形总线上的下一个存储器。
步骤102:环形总线上除第一个存储器之外的其它每一个存储器接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器将ECC指示信号发送至控制模块为止。
在执行步骤102时,具体包括:
步骤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指示信号发送至控制模块。
步骤103:控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,并在处理器的指示下,控制环形总线上的各个存储器依次上报各自的ECC信息。
在执行步骤103时,具体包括:
步骤5a:控制模块接收到的环形总线上的最后一个存储器返回的ECC指示信号的情况下,认定已完成一轮监听。
步骤5b:控制模块基于接收到的环形总线上的最后一个存储器返回的ECC指示信号,判断环形总线上是否有存储器在执行ECC校验时是否发现了错误或者纠正了错误,若是,则执行步骤5c;否则,执行步骤5m。
较佳的,控制模块可以在确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为1的情况下,认定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误;在确定环形总线上的最后一个存储器返回的ECC指示信号的标志位为0的情况下,认定环形总线上没有存储器在执行ECC校验时发现了错误或者纠正了错误。
步骤5c:控制模块通过生成查询中断,提示处理器环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
步骤5d:控制模块在处理器的指示下,向环形总线上的第一个存储器发送标志位为0的ECC使能信号。
具体地,控制模块可以在接收到处理器在确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误后发送的第三使能信号的情况下,向环形总线上的第一个存储器发送标志位为0的ECC使能信号。
步骤5e:环形总线上的第一个存储器在接收到控制模块发送的标志位为0的ECC使能信号的情况下,进入默认状态,并将标志位为0的ECC使能信号发送至环形总线上的下一个存储器。
步骤5f:环形总线上除第一个存储器之外的其它每一个存储器在接收到前一个存储器发送的标志位为0的ECC使能信号的情况下,进入默认状态,直至环形总线上的最后一个存储器将标志位为0的ECC使能信号返回至控制模块为止。
步骤5g:控制模块接收到环形总线上的最后一个存储器返回的标志位为0的ECC使能信号的情况下,认定环形总线上的各个存储器已进入默认状态。
步骤5h:控制模块向环形总线上的第一个存储器发送标志位为1的ECC使能信号。
值得说的是,在执行步骤5e-步骤5f的过程中,控制模块可以将在本地标示出的环形总线的当前状态由监听状态切换为忙状态,并在步骤5g执行后,将在本地标示出的环形总线的当前状态由忙状态切换为默认状态。这样,处理器就可以通过定期查看环形总线的当前状态,来确定环形总线上的各个存储器是否均进入了默认状态,即当查看到环形总线处于忙状态时,认定环形总线上的各个存储器还未全部进入默认状态,当查看到环形总线处于监听状态时,认定环形总线上的各个存储器已全部进入默认状态,此时,处理器可以通过向控制模块发送第四使能信号,指示控制模块执行步骤5h。当然,控制模块也可以在确定环形总线上的各个存储器已全部进入监听状态后,自动执行步骤5h,无需处理器的指示,具体地,控制模块是自动执行步骤5h,还是在处理器的控制下执行步骤5h,在此不作具体限定。
步骤5i:环形总线上的第一个存储器在接收到控制模块发送的标志位为1的ECC使能信号的情况下,进入查询状态,并以预先定义的起始标志为起始,按照预先定义的数据格式,加载ECC信息,以及将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器。
步骤5j:环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器在接收到前一个存储器发送的前一个存储器的ECC信息的情况下,进入查询状态,并将前一个存储器的ECC信息发送至环形总线上的下一个存储器,以及,在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,按照预先定义的数据格式,加载ECC信息,并将加载的ECC信息发送至环形总线上的下一个存储器后,将标志位为1的ECC使能信号发送至环形总线上的下一个存储器。
步骤5k:环形总线上的最后一个存储器接收到前一个存储器发送的前一个存储器的ECC信息的情况下,进入查询状态,并将前一个存储器的ECC信息发送至控制模块,以及,在接收到前一个存储器发送的标志位为1的ECC使能信号的情况下,以预先定义的起始标志为起始,按照预先定义的数据格式,加载ECC信息,并将加载的ECC信息发送至控制模块后,将标志位为1的ECC使能信号发送至控制模块。
步骤5l:控制模块接收到环形总线上的最后一个存储器发送的标志位为1的ECC使能信号的情况下,确定环形总线上的各个存储器已完成ECC信息的上报,继续执行5m。
值得说的是,在环形总线上的各个存储器依次上报各自的ECC信息的过程中,控制模块每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的目标累计数值,确定接收到的所述ECC信息对应的存储器。进一步地,若控制模块基于接收到的ECC信息,确定接收到的ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误,则可以将接收到的ECC信息作为目标ECC信息,通过控制时钟脉冲信号中断,控制环形总线上的各个存储器暂停运转,并提示处理器获取目标ECC信息,其中,通过控制时钟脉冲信号中断控制环形总线上的各个存储器暂停运转的目的在于:使处理器有足够的时间获取ECC信息。较佳的,控制模块确定处理器已获取到目标ECC信息的情况下,可以通过控制时钟脉冲信号恢复,控制环形总线上的各个存储器继续运转。
步骤5m:控制模块通过向环形总线上的第一个存储器再次发送标志位为1的ECC指示信号,进入下一轮监听。
值得说的是,在执行步骤5i-步骤5k的过程中,控制模块可以将在本地标示出的环形总线的当前状态由默认状态切换为忙状态,并在步骤5l执行后,将在本地标示出的环形总线的当前状态由忙状态切换为查询完成状态。这样,处理器就可以通过定期查看环形总线的当前状态,来确定环形总线上的各个存储器是否已全部完成ECC信息的上报,即当查看到环形总线处于忙状态时,认定环形总线上的各个存储器还未全部完成ECC信息的上报,当查看到环形总线处于查询完成状态时,认定环形总线上的各个存储器已全部完成ECC信息的上报,此时,处理器可以通过向控制模块发送第四使能信号,指示控制模块执行步骤5m。当然,控制模块也可以在确定环形总线上的各个存储器已全部完成ECC信息的上报后,自动执行步骤5m,无需处理器的指示,具体地,控制模块是自动执行步骤5m,还是在处理器的控制下执行步骤5m,在此不作具体限定。
本发明实施例一中,采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,有效地降低了ASIC的设计难度,而且,通过控制模块监听环形总线上的各个存储器,只有当监听到环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,才会向处理器发起提示,无需处理器实时监听各个存储器在执行ECC校验时发现了错误或者纠正了错误,节省了处理器的大量处理资源。
实施例二
本发明实施例二中,采用“控制模块与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指示信号进行相应处理后,将ECC指示信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301之外的其它每一个存储器301,用于接收到前一个存储器301发送的ECC指示信号的情况下,基于前一个存储器301在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器301将ECC指示信号发送至控制模块300为止;
控制模块300,用于基于接收到的环形总线上的最后一个存储器301返回的ECC指示信号,确定环形总线上有存储器301在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,在处理器的指示下,控制环形总线上的各个存储器301依次上报各自的ECC信息。
较佳的,在控制模块300确定环形总线上的各个存储器301满足预设的监听条件的情况下,向环形总线上的第一个存储器301发送ECC指示信号之前,控制模块300还用于:
在接收到复位信号的情况下,控制环形总线上的各个存储器301进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
通过向环形总线上的第一个存储器301发送时钟脉冲信号,使时钟脉冲信号顺序通过环形总线上的每一个存储器301后返回至控制模块300;
接收到环形总线上的最后一个存储器301返回的时钟脉冲信号的情况下,认定环形总线上的各个存储器301已按照时钟脉冲信号,完成本地时钟配置。
较佳的,控制模块300,用于向环形总线上的第一个存储器301发送标志位为1的时钟脉冲信号;
环形总线上的第一个存储器301,用于接收到控制模块300发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,并将标志位为1的时钟脉冲信号发送至环形总线上的下一个存储器301;
环形总线上除第一个存储器301之外的其它每一个存储器301,用于接收到前一个存储器301发送的标志位为1的时钟脉冲信号的情况下,按照时钟脉冲信号配置本地时钟,直至环形总线上的最后一个存储器301将标志位为1的时钟脉冲信号发送至控制模块300为止。
较佳的,在控制模块300确定环形总线上的各个存储器301满足预设的监听条件时,控制模块300具体用于:
通过向环形总线上的第一个存储器301发送标志位为1的ECC使能信号,使标志位为1的ECC使能信号顺序通过环形总线上的每一个存储器301后返回至控制模块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发送的ECC指示信号的情况下,基于前一个存储器301在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至环形总线上的最后一个存储器301将ECC指示信号发送至控制模块300为止时,环形总线上除第一个存储器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校验时发现了错误或者纠正了错误。
较佳的,控制模块300还用于:若确定环形总线上的最后一个存储器301返回的ECC指示信号的标志位为0,则认定环形总线上没有存储器301生成ECC信息。
较佳的,在控制模块300认定环形总线上没有存储器301生成ECC信息之后,控制模块300进一步用于:通过向环形总线上的第一个存储器301再次发送标志位为1的ECC指示信号,进入下一轮监听。
较佳的,在控制模块300向处理器发起提示时,控制模块300具体用于:通过生成查询中断,提示处理器环形总线上有存储器301在执行ECC校验时发现了错误或者纠正了错误。
较佳的,在控制模块300控制环形总线上的各个存储器301依次上报各自的ECC信息时,控制模块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确定环形总线上的各个存储器301满足预设的查询条件时,控制模块300具体用于:
通过向环形总线上的第一个存储器301发送标志位为0的ECC使能信号,使标志位为0的ECC使能信号顺序通过环形总线上的每一个存储器301后返回至控制模块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。
较佳的,在环形总线上的各个存储器301依次上报各自的ECC信息的过程中,包括:
控制模块300每接收到一个ECC信息的情况下,获取接收到的ECC信息对应的存储器301,并在基于接收到的ECC信息,确定接收到的ECC信息对应的存储器301在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC信息作为目标ECC信息,并提示处理器获取目标ECC信息。
较佳的,在控制模块300每接收到一个ECC信息的情况下,确定接收到的ECC信息对应的存储器301时,控制模块300还用于:每接收到一个ECC信息的情况下,获取起始标志的当前累计数值,并将获得的当前累计数值加1,获取目标累计数值,以及基于获得的目标累计数值,确定接收到的所述ECC信息对应的存储器301。
较佳的,在环形总线上的各个存储器301依次上报各自的ECC信息的过程中,控制模块300还用于:
基于接收到的ECC信息,确定接收到的ECC信息对应的存储器301在执行ECC校验时发现了错误或者纠正了错误的情况下,将ECC信息作为目标ECC信息,并通过控制时钟脉冲信号中断,控制环形总线上的各个存储器301暂停运转,以及,提示处理器获取目标ECC信息;
确定处理器已获取到目标ECC信息的情况下,通过控制时钟脉冲信号恢复,控制环形总线上的各个存储器301继续运转。
综上所述,本发明实施例中,采用环形结构,将控制模块与各个存储器连接到同一条环形总线上,利用控制模块监听环形总线上是否有存储器在执行ECC校验时是否发现了错误或者纠正了错误,当确定环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,在处理器的指示下控制环形总线上的各个存储器上报各自对应的ECC信息。采用环形结构连接控制模块与各个存储器,在设计ASIC时,不需要考虑控制模块与各个存储器之间的距离是否一致,各个存储器可以任意布局,有效地降低了ASIC的设计难度,而且,通过控制模块监听环形总线上的各个存储器,只有当环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,才会向处理器发起提示,无需处理器实时监听各个存储器在执行ECC校验时是否发现了错误或者纠正了错误,节省了处理器的大量处理资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (20)
1.一种错误检查和纠正ECC信息获取方法,其特征在于,应用于环形结构的ECC信息获取系统,所述ECC信息获取系统中的各个存储器与控制模块之间通过环形总线相连接,其中,所述方法包括:
所述控制模块确定所述环形总线上的各个存储器满足预设的监听条件的情况下,向所述环形总线上的第一个存储器发送ECC指示信号;
所述环形总线上的第一个存储器接收到所述控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对所述ECC指示信号进行相应处理后,将ECC指示信号发送至所述环形总线上的下一个存储器;
所述环形总线上除所述第一个存储器之外的其它每一个存储器接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至所述环形总线上的最后一个存储器将ECC指示信号发送至所述控制模块为止;
所述控制模块基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,确定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,并在所述处理器的指示下,控制所述环形总线上的各个存储器依次上报各自的ECC信息。
2.如权利要求1所述的方法,其特征在于,所述控制模块确定所述环形总线上的各个存储器满足预设的监听条件的情况下,向所述环形总线上的第一个存储器发送ECC指示信号之前,进一步包括:
所述控制模块在接收到复位信号的情况下,控制所述环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
所述控制模块通过向所述环形总线上的第一个存储器发送所述时钟脉冲信号,使所述时钟脉冲信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
所述控制模块接收到所述环形总线上的最后一个存储器返回的所述时钟脉冲信号的情况下,认定所述环形总线上的各个存储器已按照所述时钟脉冲信号,完成本地时钟配置。
3.如权利要求1所述的方法,其特征在于,所述控制模块确定所述环形总线上的各个存储器满足预设的监听条件,包括:
所述控制模块通过向所述环形总线上的第一个存储器发送标志位为1的ECC使能信号,使标志位为1的所述ECC使能信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
所述控制模块接收到所述环形总线上的最后一个存储器返回的标志位为1的所述ECC使能信号的情况下,确定所述环形总线上的各个存储器已进入监听状态,并认定所述环形总线上的各个存储器已满足预设的监听条件。
4.如权利要求1所述的方法,其特征在于,所述控制模块向所述环形总线上的第一个存储器发送ECC指示信号,包括:
所述控制模块向所述环形总线上的第一个存储器发送标志位为0的ECC指示信号。
5.如权利要求4所述的方法,其特征在于,所述环形总线上的第一个存储器接收到所述控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对所述ECC指示信号进行相应处理后,将ECC指示信号发送至所述环形总线上的下一个存储器,包括:
所述环形总线上的第一个存储器接收到所述控制模块发送的标志位为0的所述ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误;
若是,则将所述ECC指示信号的标志位由0变为1,并将标志位为1的所述ECC指示信号发送至所述环形总线上的下一个存储器;
若否,则保持所述ECC指示信号的标志位为0,并将标志位为0的所述ECC指示信号发送至所述环形总线上的下一个存储器。
6.如权利要求4所述的方法,其特征在于,所述环形总线上除所述第一个存储器之外的其它每一个存储器接收到前一个存储器发送的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指示信号发送至所述控制模块。
7.如权利要求4-6任一项所述的方法,其特征在于,所述控制模块基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,确定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误,包括:
所述控制模块确定所述环形总线上的最后一个存储器返回的所述ECC指示信号的标志位为1的情况下,认定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
8.如权利要求1所述的方法,其特征在于,所述控制模块控制所述环形总线上的各个存储器依次上报各自的ECC信息,包括:
所述控制模块确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号;
所述环形总线上的第一个存储器接收到所述控制模块发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述环形总线上的下一个存储器,以及,在接收到前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上的最后一个存储器接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述控制模块,以及,在接收到所述前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述控制模块后,将所述ECC使能信号发送至所述控制模块。
9.如权利要求1所述的方法,其特征在于,在所述环形总线上的各个存储器依次上报各自的ECC信息的过程中,包括:
所述控制模块每接收到一个ECC信息的情况下,获取接收到的所述ECC信息对应的存储器,并在基于接收到的所述ECC信息,确定接收到的所述ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将所述ECC信息作为目标ECC信息,并提示处理器获取所述目标ECC信息。
10.如权利要求2所述的方法,其特征在于,在所述环形总线上的各个存储器依次上报各自的ECC信息的过程中,还包括:
所述控制模块基于接收到的ECC信息,确定所述ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将所述ECC信息作为目标ECC信息,并通过控制所述时钟脉冲信号中断,控制所述环形总线上的各个存储器暂停运转,以及,提示所述处理器获取所述目标ECC信息;
所述控制模块确定所述处理器已获取到所述目标ECC信息的情况下,通过控制所述时钟脉冲信号恢复,控制所述环形总线上的各个存储器继续运转。
11.一种错误检查和纠正ECC信息获取系统,其特征在于,包括:多个存储器,以及控制模块,各个存储器与控制模块之间采用环形结构连接在环形总线上,其中,
所述控制模块,用于确定所述环形总线上的各个存储器满足预设的监听条件的情况下,向所述环形总线上的第一个存储器发送ECC指示信号;
所述环形总线上的第一个存储器,用于接收到所述控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对所述ECC指示信号进行相应处理后,将ECC指示信号发送至所述环形总线上的下一个存储器;
所述环形总线上除所述第一个存储器之外的其它每一个存储器,用于接收到前一个存储器发送的ECC指示信号的情况下,基于前一个存储器在执行ECC校验时是否发现了错误或者纠正了错误以及自身在执行ECC校验时是否发现了错误或者纠正了错误,对接收到ECC指示信号进行相应处理,直至所述环形总线上的最后一个存储器将ECC指示信号发送至所述控制模块为止;
所述控制模块,用于基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,确定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,向处理器发起提示,并在所述处理器的指示下,控制所述环形总线上的各个存储器依次上报各自的ECC信息。
12.如权利要求11所述的系统,其特征在于,在所述控制模块确定所述环形总线上的各个存储器满足预设的监听条件的情况下,向所述环形总线上的第一个存储器发送ECC指示信号之前,所述控制模块还用于:
在接收到复位信号的情况下,控制所述环形总线上的各个存储器进入默认状态,并在接收到复位解除信号的情况下,按照配置的时钟分频系数,获取相应频率的时钟脉冲信号;
通过向所述环形总线上的第一个存储器发送所述时钟脉冲信号,使所述时钟脉冲信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
接收到所述环形总线上的最后一个存储器返回的所述时钟脉冲信号的情况下,认定所述环形总线上的各个存储器已按照所述时钟脉冲信号,完成本地时钟配置。
13.如权利要求11所述的系统,其特征在于,在所述控制模块确定所述环形总线上的各个存储器满足预设的监听条件时,所述控制模块具体用于:
所述控制模块通过向所述环形总线上的第一个存储器发送标志位为1的ECC使能信号,使标志位为1的所述ECC使能信号顺序通过所述环形总线上的每一个存储器后返回至所述控制模块;
所述控制模块接收到所述环形总线上的最后一个存储器返回的标志位为1的所述ECC使能信号的情况下,确定所述环形总线上的各个存储器已进入监听状态,并认定所述环形总线上的各个存储器已满足预设的监听条件。
14.如权利要求11所述的系统,其特征在于,在所述控制模块向所述环形总线上的第一个存储器发送ECC指示信号时,所述控制模块具体用于:
向所述环形总线上的第一个存储器发送标志位为0的ECC指示信号。
15.如权利要求14所述的系统,其特征在于,在所述环形总线上的第一个存储器接收到所述控制模块发送的ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误,并基于检查结果,对所述ECC指示信号进行相应处理后,将ECC指示信号发送至所述环形总线上的下一个存储器时,所述环形总线上的第一个存储器具体用于:
接收到所述控制模块发送的标志位为0的所述ECC指示信号的情况下,检查自身在执行ECC校验时是否发现了错误或者纠正了错误;
若是,则将所述ECC指示信号的标志位由0变为1,并将标志位为1的所述ECC指示信号发送至所述环形总线上的下一个存储器;
若否,则保持所述ECC指示信号的标志位为0,并将标志位为0的所述ECC指示信号发送至所述环形总线上的下一个存储器。
16.如权利要求14所述的系统,其特征在于,所述环形总线上除第一个存储器和最后一个存储器之外的其他每一个存储器具体用于:接收到前一个存储器发送的所述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指示信号发送至所述控制模块。
17.如权利要求14-16任一项所述的系统,其特征在于,在所述控制模块基于接收到的所述环形总线上的最后一个存储器返回的ECC指示信号,确定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误时,所述控制模块具体用于:
确定所述环形总线上的最后一个存储器返回的所述ECC指示信号的标志位为1的情况下,认定所述环形总线上有存储器在执行ECC校验时发现了错误或者纠正了错误。
18.如权利要求11所述的系统,其特征在于,在所述控制模块控制所述环形总线上的各个存储器依次上报各自的ECC信息时,所述控制模块具体用于:确定所述环形总线上的各个存储器满足预设的查询条件的情况下,向所述环形总线上的第一个存储器发送ECC使能信号;
所述环形总线上的第一个存储器具体用于:接收到所述控制模块发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上除第一个存储器和最后一个存储器之外的其它每一个存储器具体用于:接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述环形总线上的下一个存储器,以及,在接收到前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述环形总线上的下一个存储器后,将所述ECC使能信号发送至所述环形总线上的下一个存储器;
所述环形总线上的最后一个存储器具体用于:接收到前一个存储器发送的所述前一个存储器的ECC信息的情况下,将所述前一个存储器的ECC信息发送至所述控制模块,以及,在接收到所述前一个存储器发送的所述ECC使能信号的情况下,加载ECC信息,并将加载的ECC信息发送至所述控制模块后,将所述ECC使能信号发送至所述控制模块。
19.如权利要求11所述的系统,其特征在于,在所述环形总线上的各个存储器依次上报各自的ECC信息的过程中,所述控制模块用于:
每接收到一个ECC信息的情况下,获取接收到的所述ECC信息对应的存储器,并在基于接收到的所述ECC信息,确定接收到的所述ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将所述ECC信息作为目标ECC信息,并提示处理器获取所述目标ECC信息。
20.如权利要求12所述的系统,其特征在于,在所述环形总线上的各个存储器依次上报各自的ECC信息的过程中,所述控制模块还用于:
基于接收到的ECC信息,确定所述ECC信息对应的存储器在执行ECC校验时发现了错误或者纠正了错误的情况下,将所述ECC信息作为目标ECC信息,并通过控制所述时钟脉冲信号中断,控制所述环形总线上的各个存储器暂停运转,以及,提示所述处理器获取所述目标ECC信息;
确定所述处理器已获取到所述目标ECC信息的情况下,通过控制所述时钟脉冲信号恢复,控制所述环形总线上的各个存储器继续运转。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710393774.9A CN107134294B (zh) | 2017-05-27 | 2017-05-27 | 一种ecc信息获取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710393774.9A CN107134294B (zh) | 2017-05-27 | 2017-05-27 | 一种ecc信息获取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107134294A CN107134294A (zh) | 2017-09-05 |
CN107134294B true CN107134294B (zh) | 2020-04-24 |
Family
ID=59733477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710393774.9A Active CN107134294B (zh) | 2017-05-27 | 2017-05-27 | 一种ecc信息获取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107134294B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333965B (zh) * | 2019-05-30 | 2023-05-26 | 深圳市博德越科技有限公司 | 一种固态硬盘控制器装置及固态硬盘数据校验方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1504908A (zh) * | 2002-12-02 | 2004-06-16 | ���ش�洢����ʽ���� | 存储器系统及其控制方法 |
CN101036132A (zh) * | 2004-08-09 | 2007-09-12 | 桑迪士克股份有限公司 | 环形总线结构及其在快闪存储器系统中的使用 |
US7636880B2 (en) * | 2002-11-29 | 2009-12-22 | Mosaid Technologies Incorporated | Error correction scheme for memory |
CN102257573A (zh) * | 2008-12-18 | 2011-11-23 | 莫塞德技术公司 | 错误检测方法和包括一个或多个存储器设备的系统 |
CN102272731A (zh) * | 2008-11-10 | 2011-12-07 | 弗森-艾奥公司 | 用于预测固态存储装置中的故障的设备、系统和方法 |
-
2017
- 2017-05-27 CN CN201710393774.9A patent/CN107134294B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636880B2 (en) * | 2002-11-29 | 2009-12-22 | Mosaid Technologies Incorporated | Error correction scheme for memory |
CN1504908A (zh) * | 2002-12-02 | 2004-06-16 | ���ش�洢����ʽ���� | 存储器系统及其控制方法 |
CN101036132A (zh) * | 2004-08-09 | 2007-09-12 | 桑迪士克股份有限公司 | 环形总线结构及其在快闪存储器系统中的使用 |
CN102272731A (zh) * | 2008-11-10 | 2011-12-07 | 弗森-艾奥公司 | 用于预测固态存储装置中的故障的设备、系统和方法 |
CN102257573A (zh) * | 2008-12-18 | 2011-11-23 | 莫塞德技术公司 | 错误检测方法和包括一个或多个存储器设备的系统 |
Non-Patent Citations (2)
Title |
---|
A. Leininger;M. Goessel;P. Muhmenthaler.Diagnosis of scan-chains by use of a configurable signature register and error-correcting codes.《Proceedings Design, Automation and Test in Europe Conference and Exhibition》.2004,第2卷全文. * |
环形网通信中的差错控制方法;肖计文,单东;《仪器仪表标准化与计量》;20060911(第4期);第22-24页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107134294A (zh) | 2017-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9240937B2 (en) | Fault detection and recovery as a service | |
WO2015169199A1 (zh) | 分布式环境下虚拟机异常恢复方法 | |
US20160306623A1 (en) | Control module of node and firmware updating method for the control module | |
CN111324494B (zh) | 处理器控制方法、装置和存储介质 | |
CN107134294B (zh) | 一种ecc信息获取方法及系统 | |
CN108388108B (zh) | 一种多重冗余控制系统中同步数据的方法及装置 | |
CN106776206A (zh) | 监听进程状态的方法、装置及电子设备 | |
CN103823727B (zh) | 一种直播录制的备份方法和装置 | |
CN107239363B (zh) | 一种ecc信息上报方法及系统 | |
CN111199146A (zh) | 测试报告生成方法、装置、计算机设备及存储介质 | |
CN102253873A (zh) | Bios报警系统及方法 | |
CN112817883A (zh) | 接口平台的适配方法、设备、系统及计算机可读存储介质 | |
CN113965494A (zh) | 用于冗余进程网络中的故障检测和角色选择的方法 | |
CN111030871A (zh) | 基于双机热备系统的配置信息同步方法和装置 | |
CN114896110A (zh) | 链路检测方法、装置、设备和存储介质 | |
CN116010158A (zh) | 配置寄存器的校验装置、校验系统和芯片设备 | |
CN101944056B (zh) | 一种多任务系统监控方法及装置 | |
US9405629B2 (en) | Information processing system, method for controlling information processing system, and storage medium | |
US10514970B2 (en) | Method of ensuring operation of calculator | |
CN104967892A (zh) | 一种遥控器数据的发送、接收方法及装置 | |
US20210288870A1 (en) | Communication device, information processing method, and system | |
JP2017016319A (ja) | 多重化データ処理装置 | |
CN111666089B (zh) | 电子设备的固件更新方法、芯片、电子设备及存储介质 | |
CN109857700B (zh) | 一种fpga切换方法、装置、系统、电子设备及介质 | |
CN109150359B (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 |