CN111858132A - 使用带内链路检测和/或校正位错误的装置、系统和方法 - Google Patents
使用带内链路检测和/或校正位错误的装置、系统和方法 Download PDFInfo
- Publication number
- CN111858132A CN111858132A CN202010227173.2A CN202010227173A CN111858132A CN 111858132 A CN111858132 A CN 111858132A CN 202010227173 A CN202010227173 A CN 202010227173A CN 111858132 A CN111858132 A CN 111858132A
- Authority
- CN
- China
- Prior art keywords
- bit error
- data
- band
- memory device
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
实施例涉及使用带内链路检测和/或校正位错误的装置、系统和方法。实施例包括串行总线控制器,该串行总线控制器可以耦合到带内串行外围接口SPI链路,以向从装置请求数据写入和后续的数据读取,并且响应于读取数据的请求,通过带内SPI链路接收位错误报告,并可选地校正位错误。实施例包括例如闪存装置的从装置,以通过带内SPI链路检测和报告的位错误,其中,闪存装置响应于写入和/或擦除数据的请求,计算或确定错误校正码ECC并存储相应的奇偶校验数据。在实施例中,在接收到后续的读取数据的请求之后,闪存装置访问所存储的奇偶校验数据以检查位错误的ECC,并且如果检测到位错误,则通过带内SPI链路报告检测到的位错误。可能描述和要求保护其他实施例。
Description
技术领域
本发明的实施例一般涉及计算领域,并且更具体地涉及通过串行外围接口(SPI)来检测和校正位错误(bit error)。
背景技术
非易失性内存产品(例如闪存)的原始设备制造商(OEM)和购买者正在报告大量的系统故障。例如,与设备磨损有关的串行外围接口(SPI)闪存问题导致的成本每年超过数千万美元。仅使用一年后,出厂系统上的闪存设备就会出现单位或多位错误。根据位错误的位置,可能会发生随机系统故障。发生故障的系统由客户退回,随后由OEM/计算机维修中心进行维修。遗憾的是,故障的根本原因并不明确,因为没有用于检测闪存位错误的标准的机制。
发明内容
针对上述问题,本发明的实施例提供一种装置,包括:端口,用于耦合到带内链路,所述带内链路包括将所述装置与内存设备耦合的一个或多个串行外围接口(SPI)总线线路;以及串行总线控制器,用于耦合到所述端口或包括所述端口,并通过所述带内链路向所述内存设备请求数据的写入和后续的数据的读取;以及响应读取数据的请求,所述串行总线控制器用于:从所述内存设备接收指示数据中的位错误的报告;以及可选地通过所述带内链路校正所述位错误。
本发明的实施例还提供一种用于通过带内链路检测和报告内存设备中的位错误的内存控制器,包括:端口,用于耦合至所述带内链路,其中所述带内链路包括一个或多个串行外围接口(SPI)总线线路;以及逻辑单元,耦合至所述端口以用于:响应于写入数据和/或擦除数据的带内请求,计算或确定错误校正码(ECC),并将奇偶校验数据存储在与所述处理器耦合的内存设备中;以及在接收到后续读取数据的请求后,访问所述存储的奇偶校验数据以检查数据中位错误的ECC,并且如果检测到位错误,则通过带内链路报告检测到的位错误。
本发明的实施例还提供一种检测位错误的方法,包括:响应于写入数据的请求,由内存设备的内存控制器计算或确定错误校正码(ECC),并将奇偶校验数据存储在所述内存设备中;响应于后续的读取数据的请求,由所述内存控制器访问存储的奇偶校验数据以检查位错误;以及如果检测到所述位错误,则由所述内存控制器通过包括一个或多个串行外围接口(SPI)总线线路的带内链路报告检测到的位错误。
附图说明
通过以下详细说明并结合附图,将容易理解实施例。为了便于该描述,相似的参考标号表示相似的结构元件。在附图的图中,通过示例而非限制的方式示出了实施例。
图1示出根据本发明的实施例的与串行总线环境中的位错误的检测和校正相关联的示例实施例。
图2是根据本发明的实施例的与图1的串行总线环境中的写入操作和错误校正码(ECC)生成相关联的示例时序/功能图。
图3是根据本发明的实施例的与对应于图2的写入操作的后续读取操作和错误检测相关联的示例时序/功能图。
图4是根据本发明的实施例的示出检测和报告内存设备中的位错误的过程的示例流程图。
图5示出根据各种实施例的示例计算设备。
具体实施方式
本发明的实施例针对用于在串行总线环境中带内检测和校正位错误的装置、方法和系统。在实施例中,与主机或主设备相关联的串行总线控制器(“主机控制器”)由一个或多个串行外围接口(SPI)总线线路链接至例如从内存设备(诸如,闪存)的内存控制器。因此,在实施例中,内存控制器通过一个或多个SPI总线线路的带内链路检测并报告位错误。在实施例中,内存设备或内存控制器对数据的写入操作执行运行时错误校正码(ECC)生成,并在读操作时执行相应的ECC检查。在实施例中,内存控制器在带内错误中断信号上(例如在一个或多个SPI总线线路的主输入/从输出(MISO)线路上)报告位错误。此外,在实施例中,作为响应,主机控制器可选地通过带内链路校正位错误。因此,在实施例中,现有的带内链路在不需要在芯片组或闪存设备上添加引脚的情况下用于位错误的检测、报告和校正。还可能描述和/或要求保护另外的实施例。
在下文描述中,将使用本领域技术人员通常采用的术语来描述说明性实施方式的各个方面,以将其工作的实质传达给本领域其他技术人员。然而,对于本领域技术人员将显而易见的是,可以仅利用所描述的方面中的一些来实践本发明的实施例。为了说明的目的,描述了具体的数字、材料和配置以便提供对说明性实施方式的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本发明的实施例。在其他情况下,省略或简化了众所周知的特征,以免使说明性实施方式不清楚。
在下面的详细说明中,参考形成详细说明的一部分的附图,其中,相同的附图标记始终表示相同的部分,并且其中通过在其中本发明的主题可以被实践的说明性实施例的方式示出。应当理解,在不脱离本发明的范围的情况下,可以利用其他实施例并且可以进行结构或逻辑上的改变。因此,以下详细说明不应被视为具有限制意义,并且实施例的范围由所附权利要求及其等同物限定。
出于本发明的目的,短语“A或B”表示(A)、(B)或(A和B)。出于本发明的目的,短语“A、B或C”是指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A,B和C)。
该说明书可以使用基于透视图的描述,例如顶部/底部、内/外、上方/下方等。这样的描述仅用于便于讨论,而不旨在将本文描述的实施例的应用限制为任何特定的方向。
该说明书可以使用短语“在一实施例中”或“在多个实施例中”,其可以分别指代一个或多个相同或不同的实施例。此外,关于本发明的实施例使用的术语“包括”、“包含”、“具有”等是同义的。
本文可以使用术语“与……耦合”及其派生词。“耦合”可以表示以下一个或多个。“耦合”可以表示两个或多个元件直接物理地或电接触。然而,“耦合”还可以意味着两个或更多个元件间接地彼此接触,但是仍然彼此协作或相互作用,并且可以意味着在被称为彼此耦合的元件之间耦合或连接的一个或更多个其他元件。术语“直接耦合”可以表示两个或更多个元件直接接触。
图1示出根据本发明的实施例的与串行总线环境中的位错误的检测和校正相关联的示例实施例。如上所述,本发明的实施例与串行总线环境100(例如,SPI环境)中的位错误的检测和校正相关联。环境100示出了主设备或主机设备101的示例串行总线控制器130,例如,其可以包括或可以被包括在芯片组或片上系统(SoC)上,并耦合到闪存或内存设备103。在实施例中,串行总线控制器130包括逻辑单元和/或处理器,逻辑单元包括电路、固件、其他软件等中的一个或多个,处理器用于执行本文所述的各种操作。在实施例中,主机设备101在端口102处经由一个或多个SPI总线线路105耦合到内存设备103的内存控制器115。在实施例中,内存设备103包括内存阵列118。在实施例中,如下文所述,由错误校正码(ECC)计算或确定109(例如由内存控制器115的ECC引擎、逻辑单元或处理器执行)产生的ECC和奇偶校验数据或位被存储在内存阵列118的区域113中。
因此,在实施例中,串行总线控制器130通过带内链路107请求数据的写入以及稍后的数据的后续读取。在实施例中,响应于读取数据的请求,串行总线控制器130接收指示数据中的位错误的报告。在实施例中,串行总线控制器130接收通过一个或多个SPI总线线路105的主输入/从输出(MISO)线路报告的带内中断信号135。如下文将进一步讨论的,在实施例中,在从设备侧,内存设备103访问存储的ECC。因此,内存设备103基于在响应于读取数据的请求而执行的一个或多个运行时间读取操作期间检查的错误校正码(ECC)来确定位错误。在实施例中并且在下文更详细地讨论,串行总线控制器130可选地通过带内链路校正位错误。注意,虽然图1示出了单个主设备耦合到单个从设备,但是SPI环境100可以包括以可以在现有的带内SPI链路上发生位错误的检测和校正的任何合适的配置耦合的单个主设备和一个或多个从设备。
在实施例中,图2和图3示出了与在主机的串行总线控制器与示例性内存设备103(例如,图1的闪存设备)的内存控制器之间耦合的一个或多个SPI总线线路相关联的示例性协议。
图2是如关于图1所讨论的与对于写入或写入/擦除操作的请求以及ECC的相应生成相关联的示例时序/功能图200。在实施例中,图200示出了时钟信号(例如,SPI CLK201)、设备选择或芯片选择(CS,也称为从选择(SS))信号(例如,SPI CS#202)、输入/输出(I/O)信号(例如SPI MISO/IO1 205)和与包括图1的串行总线控制器130的主机设备(例如,主机设备101)的主机接口或端口102相关联的数据I/O信号(例如,其他SPI数据I/O,或在本文中也称为“I/O2 207”)的时序/功能。类似于图1的内存设备103的内存设备(例如,闪存设备203)的相应功能/时序在图200的底部示出。在实施例中,当主机设备101在T1 209处选择闪存设备203时,SPI CS#202变低。此后不久,主机设备101通过在SPI MISO/IO1 205和SPI数据I/O2 207上发布闪存写入/擦除命令(例如,闪存写入/擦除CMD 211)通过带内链路请求数据写入。因此,在相似的时间窗口内,在实施例中,闪存设备203执行向内存阵列(例如,图1的内存阵列118)中的数据写入操作(例如,闪存写入238)。在实施例中,在后续的时间窗口中,在大约T2 219处,在数据的写入操作完成并且SPI CS#202变高之后,闪存设备203计算和/或确定错误校正码(ECC),然后在229处,将ECC存储在写入数据上。因此,闪存设备203将奇偶校验数据(例如,奇偶校验位113)存储到内存阵列,例如,闪存阵列(或图1的内存阵列118)中。因此,在实施例中,闪存设备203(或闪存或内存控制器115)在数据的写入时间期间或之后计算ECC并且将奇偶校验数据或位存储在内存阵列区域中。在实施例中,内存阵列区域对于主机地址空间是透明的。
图3是根据本发明的实施例的与对应于图2的写入操作的后续读取操作和错误检测相关联的示例时序/功能图。特别地,图3的时序/功能图300示出了数据的后续读取操作和相应的ECC错误检测。图3包括图2的信号,例如时钟信号(例如SPI CLK 201)、设备选择或芯片选择(CS)信号(例如SPI CS#202)、输入/输出(I/O)信号(例如SPI MISO/IO1 205)和数据I/O信号(例如,其他SPI数据I/O 207)。在图300的底部示出了例如闪存设备203的相应功能/时序。在实施例中,主机设备101请求后续读取在图2的操作中写入的数据(例如,参见闪存写入238)。因此,在实施例中,如在T3 330处所示,当例如主机设备101的串行总线控制器130选择并向例如SPI数据IO2 207(在一些实施例中也称为主输出/从输入或MOSI I/O)上的闪存设备203发布闪存读取命令332时,SPI CS#202信号变低。在实施例中,如图所示,闪存设备203在338处执行闪存阵列读取。在实施例中,在时间T4 332处,在发布闪存读取命令332并且完成闪存阵列读取338之后,SPI CS#202返回高水平。
因此,在接收到后续的读取数据的请求之后,闪存设备203访问存储的奇偶校验数据以检查ECC,并且如果在数据中检测到位错误,则通过带内链路报告检测到的位错误。因此,在与闪存读取命令相关联的时序窗口结束之后,在T4 332处,闪存设备203在339处计算并检查读取数据上的ECC。在实施例中,如果检测到位错误,则闪存设备203通过主输入/从输出(MISO)线路在带内错误中断信号上报告检测到的位错误。例如,在时间T5 341处,闪存设备203使用带内错误中断信号报告位错误(例如,通过SPI MISO/IO1205)。在一些实施例中,该信号是带内错误信号(例如,块擦除信号,或者有时缩写为例如EERR块擦除信号)。在实施例中,闪存设备或闪存还在地址寄存器(例如,闪存寄存器)中存储检测到最后位错误的地址。接下来,在实施例中,SPI CS#202在T6 345处变低,并且主机设备101发送带内read_status命令(读取错误状态/地址340)以读取地址寄存器以找出最后位错误的位置。在实施例中,通过例如SPI MISO/IO1 205和SPI数据I/O 207发送read_status命令和相应的响应。
注意,上述时序图200和300仅是示例,并且虽然它们可以描绘特定的引脚或信号(例如,SPI MISO/IO1)以及将它们的相应信号描绘为高或低,但是在本实施例的范围内可以考虑替代的信号名称和状态。
如上所述,在实施例中,闪存设备203进一步在地址寄存器中(例如内存阵列的闪存寄存器)存储检测到的最后位错误的地址。在实施例中,无论位错误是可校正的还是不可校正的,内存设备或闪存设备203都通过带内错误中断信号将检测到的位错误报告给主机。因此,在实施例中,主机设备可选地通过带内链路校正位错误,包括使用带内读取状态信号来访问闪存寄存器中的位错误的地址。在一些实施例中,闪存设备203在接收到对地址寄存器中的数据进行重新编程的命令时校正位错误。在其他实施例中,在闪存报告检测到的位错误之后,闪存执行带内复位或中止读取命令。在一些实施例中,带内复位功能是用于中止闪存中的读取或写入操作的命令代码,并且还可以通过带内线路(例如通过例如SPI MISO/IO1 205和SPI数据I/O 207信号利用带内命令)发送。
图4是示出根据本发明的实施例的在内存设备中检测和报告位错误的方法的示例流程图。方法400可以由任何合适的内存设备或内存控制器来实践,该内存设备或内存控制器可以在数据的写入操作上执行运行时间错误校正码(ECC)生成,并且在读取操作时执行相应的ECC检查,并且在实施例中,通过串行总线线路(例如SPI总线线路)在带内错误中断信号上报告位错误。在框401处,内存控制器响应于对数据的写入和/或擦除的请求,计算错误校正码(ECC),并将奇偶校验数据存储在例如闪存阵列的内存阵列中。在实施例中,内存控制器计算ECC并且在数据的写入时间期间或之后将奇偶校验数据存储在对主机地址空间透明的内存阵列区域中。在框403处,在实施例中,在接收到后续的读取数据的请求之后,内存控制器访问所存储的奇偶校验数据以检查位错误。接下来,在框405处,如果检测到位错误,则内存控制器通过带内链路报告检测到的位错误。注意,在一些实施例中,不管位错误是可校正的还是不可校正的,内存控制器都通过带内错误中断信号将检测到的位错误报告给主机。在实施例中,内存控制器将检测到最后位错误的地址存储在内存寄存器中(例如,耦合至闪存控制器的闪存寄存器)。注意,在主机设备侧,主机总线控制器发布带内读取命令以确定位错误的地址,并发布后续的命令以进行重新编程。因此,在一些实施例中,方法400包括由内存控制器在接收到对内存寄存器中的地址的内容进行重新编程或校正的命令时校正位错误。
图5示出了根据各种实施例的示例计算设备500,其可以包括图1-图4的主机设备和/或内存设备。具体地,在一些实施例中,计算设备500可以包括主机设备,该主机设备包括本发明的串行总线控制器(例如,SPI主控制器),该串行总线控制器由一个或多个串行外围接口(SPI)总线线路链接到一个或多个从内存设备的内存控制器。在各种实施例中,本发明的串行总线控制器和内存控制器例如被实现为硬件、固件、软件或其某种组合。
如图所示,计算设备500可以包括一个或多个处理器或处理器核心502和系统内存504。出于包括权利要求书的本申请的目的,除非上下文明确要求,术语“处理器”和“处理器核心”可以被视为同义词。处理器502可以包括任何类型的处理器,例如中央处理单元(CPU)、微处理器等。处理器502可以被实现为具有多核的集成电路,例如,多核微处理器。计算设备500可以包括大容量存储设备506(例如软盘、硬盘驱动器、易失性存储器(例如,动态随机存取存储器(DRAM)、光盘只读存储器(CD-ROM)、数字通用磁盘(DVD))等)。通常,系统内存504和/或大容量存储设备506可以是任何类型的暂时和/或永久性存储,包括但不限于易失性和非易失性内存、光、磁和/或固态大容量存储器等。在实施例中,大容量存储设备506包括相应的图1和图2的一个或多个,例如,内存设备103或闪存设备203。易失性存储器可以包括但不限于静态和/或动态随机存取存储器。非易失性存储器可以包括但不限于电可擦除可编程只读存储器、相变存储器、电阻性存储器等。
计算设备500还可包括输入/输出(I/O)接口508,以接收一个或多个I/O设备(例如显示器(例如,触摸屏显示器)、键盘、光标控件、遥控器、游戏控制器、图像捕获设备等),计算设备500还可包括通信接口510(例如网络接口卡、调制解调器、红外接收器、无线电接收器(例如蓝牙)等)。在实施例中,I/O接口508包括计算设备500的块之间的任何合适的接口,例如图1的端口102。通信接口510可以包括通信芯片(未示出),通信芯片可以被配置为根据全球移动系统通信(GSM)、通用分组无线电业务(GPRS)、通用移动电信系统(UMTS)、高速分组访问(HSPA)、演进的HSPA(E-HSPA)或长期演进(LTE)网络来操作设备500。通信芯片也可以被配置为根据用于GSM演进(EDGE)、GSM EDGE无线接入网(GERAN)、通用陆地无线接入网(UTRAN)或演进的UTRAN(E-UTRAN)的增强数据来操作。通信芯片可以被配置为根据码分多址(CDMA)、时分多址(TDMA)、数字增强型无绳电信(DECT)、演进数据优化(EV-DO)、其派生类以及指定为3G、4G、5G及更高的任何其他无线协议进行操作。在其他实施例中,通信接口510可以根据其他无线协议进行操作。
上述计算设备500元件可以经由系统总线512彼此耦合,系统总线512可以代表一个或多个总线。在多条总线的情况下,它们可以由一个或多个总线桥(未示出)桥接。这些元件中的每一个都可以执行其在本领域中已知的常规功能。根据结合图1-图4描述的实施例,一个或多个总线可以包括串行总线线路(例如SPI总线线路),在串行总线线路上可以发送带内链路和/或信号以检测和校正内存设备中的位错误。特别地,系统内存504和大容量存储设备506可以包括图1的内存设备103(例如,非易失性内存或闪存设备)以校正和报告带内链路上的位错误。注意,可以采用系统内存504和大容量存储设备506来存储统称为计算逻辑522的用于实现操作系统或一个或多个应用的操作的编程指令的工作副本和永久副本。不同元素可以通过由处理器502支持的汇编指令或可以被编译成这种指令的高级语言来实现。
编程指令的永久副本可以通过例如诸如光盘(CD)的分配介质(未示出),或者通过通信接口510(来自分配服务器(未示出))放置在工厂或现场的大容量存储设备506中。即,可以采用具有代理程序的实现的一种或多种分配介质来分配代理并编程各种计算设备。
元件508、510、512的数量、能力和/或容量可以变化,这取决于计算设备500被用作固定计算设备(诸如机顶盒或台式计算机)还是被用作移动计算设备(诸如平板计算设备、便携式计算机、游戏机或智能手机)。它们的构造在其他方面是已知的,因此将不再进一步描述。
对于一个实施例,处理器502中的至少一个可以与计算逻辑522封装在一起以形成系统级封装(SiP)或片上系统(SoC)。结合图1-图4所述,例如,在实施例中,SoC可以包括主机设备(例如包括SPI控制器的主机设备101)以通过带内链路接收检测到的位错误的报告,并可选地通过带内链路校正位错误。
在各种实施方式中,计算设备500可以包括数据中心、膝上型计算机、上网本、笔记本计算机、超极本、智能手机、平板电脑、个人数字助理(PDA)、超移动PC、移动电话或数码相机。在进一步的实施方式中,计算设备500可以是处理数据的任何其他电子设备。
参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明。将理解的是,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,从而使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的模块。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机或其他可编程数据处理装置以特定方式运行,使得存储在计算机可读介质中的指令产生包括指令模块的制品,该指令模块的制品实现流程图和/或框图的一个或多个框中指定的功能/动作。
计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上,以使得在计算机或其他可编程装置上执行一系列操作步骤产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的过程。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或框图中的每个框可以代表代码的模块、区段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。还应注意,在一些替代实施方式中,方框中指出的功能可以不按图中示出的顺序发生。例如,根据所涉及的功能,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图的每个方框以及框图和/或流程图说明中的框的组合可以由执行指定功能或动作的基于专用硬件的系统,或专用硬件和计算机指令的组合来实现。
实施例可以被实现为计算机过程、计算系统或诸如计算机可读介质的计算机程序产品之类的制品。该计算机程序产品可以是计算机系统可读并且编码用于执行计算机过程的计算机程序指令的计算机存储介质。
所附权利要求中的所有模块或步骤加上功能元件的相应结构、材料、动作和等同物旨在包括用于与其他要求保护的元件组合地执行功能的任何结构、材料或动作,并且特别地要求保护。已经出于说明和描述的目的给出了本发明的描述,但是其并不旨在是穷举的或将本发明限于所公开的形式。在不脱离本发明的范围和精神的情况下,许多修改和变型对于本领域技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并使本领域的其他普通技术人员能够理解本发明的具有适于预期的特定用途的各种修改的实施例。
下面提供一些非限制性示例:
示例1是一种装置,包括:端口,用于耦合到带内链路,所述带内链路包括将所述装置与内存设备耦合的一个或多个串行外围接口(SPI)总线线路;以及串行总线控制器,用于耦合到所述端口或包括所述端口,并通过所述带内链路向内存设备请求数据的写入和后续的数据的读取;以及响应读取数据的请求,所述串行总线控制器用于:从所述内存设备接收指示数据中的位错误的报告;以及可选地通过所述带内链路校正所述位错误。
示例2是示例1的设备,其中串行总线控制器是SPI主控制器,并且其中内存设备是从内存设备。
示例3是示例1的装置,其中串行总线控制器用于通过一个或多个SPI总线线路的主输入/从输出(MISO)线路经由带内错误中断信号接收报告。
示例4是示例1的装置,其中由内存设备基于在响应于读取数据的请求而执行的一个或多个运行时读取操作期间检查的错误校正码(ECC)来确定位错误。
示例5是示例1的装置,其中,串行总线控制器校正所述位错误包括:向所述内存设备发布带内读取命令,以确定所述位错误的地址以校正所述地址的内容。
示例6是示例1的装置,还包括:响应于从从内存设备接收的带内复位信号或命令,由所述串行总线控制器经由带内信号或命令中止一个或多个读取或写入操作。
示例7是示例3的设备,其中带内错误中断信号包括错误块擦除信号。
示例8是示例1-7中的任一项的装置,其中串行总线控制器可选地通过所述带内链路校正所述位错误,包括使用带内读取状态信号来访问闪存寄存器中的所述位错误的地址。
示例9是用于通过带内链路检测和报告内存设备中的位错误的内存控制器,包括:端口,用于耦合至所述带内链路,其中所述带内链路包括一个或多个串行外围接口(SPI)总线线路;以及逻辑单元,耦合至所述端口以用于:响应于写入数据和/或擦除数据的带内请求,计算或确定错误校正码(ECC),并将奇偶校验数据存储在与所述处理器耦合的内存设备中;以及在接收到后续读取数据的请求后,访问所述存储的奇偶校验数据以检查数据中位错误的ECC,并且如果检测到位错误,则通过带内链路报告检测到的位错误。
示例10是示例9的内存控制器,其中所述逻辑单元用于在数据的写入时间期间或数据的写入时间之后计算或确定ECC并存储奇偶校验数据,并将奇偶校验数据存储在对主机地址空间透明的内存阵列区域中。
示例11是示例9的内存控制器,其中内存设备是从闪存,并且如果检测到位错误,则所述逻辑单元用于在所述内存设备的寄存器中存储检测到最后位错误的地址。
示例12是示例9的内存控制器,其中如果检测到所述位错误,则无论所述位错误是可校正的还是不可校正,所述内存控制器都用于通过带内错误中断信号将检测到的位错误报告给主机。
示例13是示例9-12中任一项的内存控制器,其中,如果检测到位错误,则内存控制器用于通过一个或多个SPI总线线路的主输入/从输出(MISO)线路在带内错误中断信号上报告检测到的位错误。
示例14是示例13的内存控制器,其中,在内存控制器报告检测到的位错误之后,逻辑单用于生成带内复位或中止将通过所述一个或多个SPI总线线路发送的读取命令。
示例15是一种检测位错误的方法,其包括:响应于写入数据的请求,由内存设备的内存控制器计算或确定错误校正码(ECC),并将奇偶校验数据存储在所述内存设备中;响应于后续的读取数据的请求,由所述内存控制器访问存储的奇偶校验数据以检查位错误;以及如果检测到所述位错误,则由所述内存控制器通过包括一个或多个串行外围接口(SPI)总线线路的带内链路报告检测到的位错误。
示例16是示例15的方法,其中,如果检测到所述位错误,则报告检测到的位错误包括:由所述内存控制器通过所述带内链路向所述主机设备发送中断信号。
示例17是示例16的方法,还包括:在接收到对内存寄存器中的数据进行重新编程的命令时,由内存控制器校正位错误。
示例18是示例15的方法,其中,该内存控制器包括从内存设备的闪存控制器。
示例19是示例15的方法,其中报告检测到的位错误包括:如果位错误已被校正,则由内存控制器发送错误报告。
示例20是示例15的方法,其中,如果检测到位错误,则还包括生成通过一个或多个SPI总线线路发送的带内复位或中止读取命令。
示例21是示例15的方法,其中,计算或确定ECC并存储奇偶校验数据发生在内存控制器对数据的写入时间期间或之后。
示例22是示例15-21中任一示例的方法,其中,如果检测到位错误,则还包括通过一个或多个SPI总线线路的主输入/从输出(MISO)线路报告位错误。
各种实施例可以包括上述实施例的任何合适的组合,包括以结合形式(和)在上面描述的实施例的替代(或)实施例(例如,“和”可以是“和/或”)。此外,一些实施例可包括具有存储在其上的指令的一个或多个制品(例如,非暂时性计算机可读介质),指令在被执行时导致任何上述实施例的动作。而且,一些实施例可以包括具有用于执行上述实施例的各种操作的任何适当模块的装置或系统。
包括摘要中描述的内容在内的所示出的实施方式的以上描述并不旨在是详尽的或将本发明的实施例限于所公开的精确形式。尽管本文出于说明性目的描述了特定的实现方式和示例,但是如本领域技术人员将认识到的,在本发明的范围内可以进行各种等效修改。
鉴于以上详细说明,可以对本发明的实施例进行这些修改。在所附权利要求中使用的术语不应被解释为将本发明的各种实施例限制为在说明书和权利要求中公开的特定实现。而是,范围将完全由所附权利要求书确定,所附权利要求书将根据权利要求解释的既定原则来解释。
Claims (20)
1.一种装置,包括:
端口,用于耦合到带内链路,所述带内链路包括将所述装置与内存设备耦合的一个或多个串行外围接口(SPI)总线线路;以及
串行总线控制器,用于耦合到所述端口或包括所述端口,并通过所述带内链路向所述内存设备请求数据的写入和后续的数据的读取;以及
响应读取数据的请求,所述串行总线控制器用于:
从所述内存设备接收指示数据中的位错误的报告;以及
可选地通过所述带内链路校正所述位错误。
2.根据权利要求1所述的装置,其中,所述串行总线控制器是SPI主控制器,并且其中,所述内存设备是从内存设备。
3.根据权利要求1所述的装置,其中,所述串行总线控制器用于通过所述一个或多个SPI总线线路的主输入/从输出(MISO)线路经由带内错误中断信号来接收所述报告。
4.根据权利要求1所述的装置,其中所述位错误由所述内存设备基于在响应于读取数据的请求而执行的一个或多个运行时间读取操作期间检查的错误校正码(ECC)来确定。
5.根据权利要求1所述的装置,其中,所述串行总线控制器校正所述位错误包括:向所述内存设备发布带内读取命令,以确定所述位错误的地址以校正所述地址的内容。
6.根据权利要求1所述的装置,还包括响应于从从内存设备接收的带内复位信号或命令,由所述串行总线控制器经由带内信号或命令中止一个或多个读取或写入操作。
7.根据权利要求3所述的装置,其中,所述带内错误中断信号包括错误块擦除信号。
8.根据权利要求1所述的装置,其中,所述串行总线控制器可选地通过所述带内链路校正所述位错误包括:使用带内读取状态信号来访问闪存寄存器中的所述位错误的地址。
9.一种用于通过带内链路检测和报告内存设备中的位错误的内存控制器,包括:
端口,用于耦合至所述带内链路,其中所述带内链路包括一个或多个串行外围接口(SPI)总线线路;以及
逻辑单元,耦合至所述端口以用于:
响应于写入数据和/或擦除数据的带内请求,计算或确定错误校正码(ECC),并将奇偶校验数据存储在与所述处理器耦合的内存设备中;以及
在接收到后续读取数据的请求后,访问所述存储的奇偶校验数据以检查数据中位错误的ECC,并且如果检测到位错误,则通过带内链路报告检测到的位错误。
10.根据权利要求9所述的内存控制器,其中,所述逻辑单元用于在数据的写入时间期间或数据的写入时间之后计算或确定ECC并存储奇偶校验数据,并将奇偶校验数据存储在对主机地址空间透明的内存阵列区域中。
11.根据权利要求9所述的内存控制器,其中,所述内存设备是从闪存,并且如果检测到所述位错误,则所述逻辑单元用于在所述内存设备的寄存器中存储检测到最后位错误的地址。
12.根据权利要求9所述的内存控制器,其中,如果检测到所述位错误,则无论所述位错误是可校正的还是不可校正,所述逻辑单元都用于通过带内错误中断信号将检测到的位错误报告给主机。
13.根据权利要求9所述的内存控制器,其中,如果检测到所述位错误,则所述逻辑单元用于通过一个或多个SPI总线线路的主输入/从输出(MISO)线路在带内错误中断信号上报告检测到的位错误。
14.根据权利要求13所述的内存控制器,其中,在所述逻辑单元报告检测到的位错误之后,所述逻辑单元用于生成带内复位或中止将通过所述一个或多个SPI总线线路发送的读取命令。
15.一种检测位错误的方法,包括:
响应于写入数据的请求,由内存设备的内存控制器计算或确定错误校正码(ECC),并将奇偶校验数据存储在所述内存设备中;
响应于后续的读取数据的请求,由所述内存控制器访问存储的奇偶校验数据以检查位错误;以及
如果检测到所述位错误,则由所述内存控制器通过包括一个或多个串行外围接口(SPI)总线线路的带内链路报告检测到的位错误。
16.根据权利要求15所述的方法,其中,如果检测到所述位错误,则报告检测到的位错误包括:由所述内存控制器通过所述带内链路向主机设备发送中断信号。
17.根据权利要求16所述的方法,还包括:当接收到对内存寄存器中的数据进行重新编程的命令时,由所述内存控制器校正所述位错误。
18.根据权利要求15所述的方法,其中,所述内存控制器包括从内存设备的闪存控制器。
19.根据权利要求15所述的方法,其中报告检测到的位错误包括:如果所述位错误已被校正,则由所述内存控制器发送错误报告。
20.根据权利要求15所述的方法,其中报告检测到的位错误包括通过所述一个或多个SPI总线线路的主输入/从输出(MISO)线路报告所述位错误。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/398,076 US11144387B2 (en) | 2019-04-29 | 2019-04-29 | Apparatus, systems, and methods to detect and/or correct bit errors using an in band link over a serial peripheral interface |
US16/398,076 | 2019-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858132A true CN111858132A (zh) | 2020-10-30 |
Family
ID=67617900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010227173.2A Pending CN111858132A (zh) | 2019-04-29 | 2020-03-27 | 使用带内链路检测和/或校正位错误的装置、系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11144387B2 (zh) |
EP (1) | EP3734466A1 (zh) |
CN (1) | CN111858132A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI825826B (zh) * | 2021-12-22 | 2023-12-11 | 奇景光電股份有限公司 | 大尺寸觸控顯示積體電路及其操作方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042436B2 (en) * | 2019-08-29 | 2021-06-22 | Micron Technology, Inc. | Semiconductor device with modified access and associated methods and systems |
US20210181990A1 (en) * | 2019-12-16 | 2021-06-17 | Micron Technology, Inc. | Interrupt signaling for a memory device |
US11675731B2 (en) * | 2020-08-20 | 2023-06-13 | Global Unichip Corporation | Data protection system and method thereof for 3D semiconductor device |
KR20220028692A (ko) * | 2020-08-31 | 2022-03-08 | 주식회사 엘엑스세미콘 | 플래시 메모리의 리셋 기능을 갖는 모바일 폰 및 그의 플래시 메모리 제어 장치 |
US11860730B2 (en) | 2021-12-06 | 2024-01-02 | Waymo Llc | Low-overhead, bidirectional error checking for a serial peripheral interface |
CN115118409A (zh) * | 2022-06-24 | 2022-09-27 | 重庆长安新能源汽车科技有限公司 | 一种spi通讯方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100490002C (zh) | 2005-03-25 | 2009-05-20 | 凌阳科技股份有限公司 | 串行传输接口的存储器装置以及错误更正方法 |
DE102007028767B4 (de) | 2007-06-22 | 2016-01-28 | Continental Teves Ag & Co. Ohg | Buskommunikationsschaltung zur sicheren seriellen Übertragung von Daten sowie deren Verwendung |
US8103936B2 (en) * | 2007-10-17 | 2012-01-24 | Micron Technology, Inc. | System and method for data read of a synchronous serial interface NAND |
US8566669B2 (en) | 2010-07-07 | 2013-10-22 | Ocz Technology Group Inc. | Memory system and method for generating and transferring parity information |
-
2019
- 2019-04-29 US US16/398,076 patent/US11144387B2/en active Active
-
2020
- 2020-03-18 EP EP20163966.3A patent/EP3734466A1/en not_active Withdrawn
- 2020-03-27 CN CN202010227173.2A patent/CN111858132A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI825826B (zh) * | 2021-12-22 | 2023-12-11 | 奇景光電股份有限公司 | 大尺寸觸控顯示積體電路及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11144387B2 (en) | 2021-10-12 |
US20190258539A1 (en) | 2019-08-22 |
EP3734466A1 (en) | 2020-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858132A (zh) | 使用带内链路检测和/或校正位错误的装置、系统和方法 | |
US10838808B2 (en) | Error-correcting code memory | |
US7921339B2 (en) | Flash storage device with data correction function | |
CN107430538B (zh) | 基于错误类型的ecc的动态应用 | |
US7404137B2 (en) | Method and related apparatus for performing error checking-correcting | |
US9921914B2 (en) | Redundant array of independent disks (RAID) write hole solutions | |
US20140372814A1 (en) | Method for testing a memory and memory system | |
US9003260B2 (en) | Partial-writes to ECC (error check code) enabled memories | |
KR20170059219A (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 복구 검증 방법 | |
US10319461B2 (en) | Low-overhead mechanism to detect address faults in ECC-protected memories | |
US9569322B2 (en) | Memory migration in presence of live memory traffic | |
CN115934389A (zh) | 用于错误报告和处理的系统和方法 | |
US8769333B2 (en) | Application reliability and fault tolerant chip configurations | |
US20160283299A1 (en) | Apparatus and method for fault detection to ensure device independence on a bus | |
KR20190060424A (ko) | 에러 테스트를 위한 메모리 시스템 | |
JP2005149501A (ja) | Dmaを使用して拡張カードでメモリをテストするためのシステムおよび方法 | |
US11182231B2 (en) | Host system and computing system including the host system | |
JP2005149503A (ja) | Dmaを使用してメモリをテストするためのシステムおよび方法 | |
CN108874579B (zh) | 用于监管和初始化端口的方法 | |
US8726128B2 (en) | Non-volatile memory module, non-volatile memory processing system, and non-volatile memory managing method thereof | |
CN111625199A (zh) | 提升固态硬盘数据通路可靠性的方法、装置、计算机设备及存储介质 | |
US11600352B2 (en) | Storage device | |
US20230214297A1 (en) | Storage device including mapping memory and method of operating the same | |
WO2016157505A1 (ja) | メモリチェック機能を有するdmac | |
JPH05257616A (ja) | 磁気ディスク制御部 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |