CN113272907A - 纠错位翻转方案 - Google Patents
纠错位翻转方案 Download PDFInfo
- Publication number
- CN113272907A CN113272907A CN201980086444.2A CN201980086444A CN113272907A CN 113272907 A CN113272907 A CN 113272907A CN 201980086444 A CN201980086444 A CN 201980086444A CN 113272907 A CN113272907 A CN 113272907A
- Authority
- CN
- China
- Prior art keywords
- component
- bits
- bit
- flipped
- error correction
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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
- G11C2029/0411—Online error correction
Abstract
描述了用于操作存储器装置的方法、系统和装置。一种纠错位翻转方案可以包含用于进行一或多个位(例如,翻转位)的纠错并有效地传送纠错信息的方法、系统和装置。所述数据位和所述翻转位(例如,经纠错的翻转位)可以被直接传输(例如,传输到翻转决定组件)。所述翻转位可以通过专用和/或单向线传输到所述翻转决定组件,所述专用和/或单向线与携载数据位(例如,将其携载到所述翻转决定组件)的一或多个其它线不同。
Description
交叉引用
本专利申请要求由郭(Kwak)于2018年11月26日提交的题为“纠错位翻转方案(ERROR CORRECTION BIT FLIPPING SCHEME)”的美国专利申请第16/199,773号的优先权,所述专利已转让给其受让人并且通过引用整体明确并入本文。
背景技术
以下总体上涉及操作存储器装置,并且更具体地涉及一种纠错位翻转方案。
存储器装置被广泛用于在各种电子装置(例如,计算机、无线通信装置、相机、数字显示器等)中存储信息。通过对存储器装置的不同状态进行编程来存储信息。例如,二进制装置最经常存储两个状态中的一个,通常用逻辑1或逻辑0表示。在其它装置中,可以存储两个以上状态。为了存取所存储的信息,装置的组件可以读取或感测存储器装置中的至少一个存储状态。为了存储信息,装置的组件可以在存储器装置中写入或编程状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、闪速存储器、相变存储器(PCM)等。存储器装置可以是易失性的或非易失性的。即使在没有外部电源的情况下,非易失性存储器(例如,FeRAM)也可以长时间保持其存储逻辑状态。易失性存储器装置(例如,DRAM)可能会随时间而失去其存储状态,除非它们被外部电源周期性地刷新。FeRAM可以使用与易失性存储器类似的装置架构,但是由于使用铁电电容器作为存储装置而可能具有非易失性性质。
存储器装置可以反转一或多个存储器单元处(例如,出于可靠性原因)存储的数据位。某一位可以指示一或多个特定存储器单元处存储的逻辑状态被反转。然而,对与反转有关的位进行纠错可能会延迟其它操作,并且传播延迟可能会加重这种延迟,从而引入显著的时延。期望与位翻转和纠错操作有关的增强方案。
附图说明
图1示出了根据本公开的各个方面的用于操作支持纠错位翻转方案的存储器装置的系统的一个实例。
图2示出了根据本公开的各个方面的支持纠错位翻转方案的设备的一个实例。
图3示出了根据本公开的各个方面的支持纠错位翻转方案的设备的一个实例。
图4示出了根据本公开的各个方面的支持纠错位翻转方案的设备的一个实例。
图5示出了根据本公开的各个方面的支持纠错位翻转方案的设备的一个实例。
图6示出了根据本公开的各个方面的支持纠错位翻转方案的装置的框图的一个实例。
图7示出了根据本公开的各个方面的支持纠错位翻转方案的装置的框图。
图8至10示出了流程图,其示出了根据本公开的各个方面的支持纠错位翻转方案的方法。
具体实施方式
存储器装置可以反转一或多个存储器单元处存储的数据位(例如,出于可靠性原因)。在反转一或多个存储器单元的一或多个数据位之后,存储器装置可以设置反转位以指示一或多个存储器单元处存储的逻辑状态被反转。当从存储器读取数据时,存储器装置可以对一或多个位(例如,数据位、反转位)进行纠错,并且可以(例如,基于相对应的经纠错的反转位)确定是否已经反转任何数据位。然而,进行数据位和反转位的纠错可能会延迟读取操作,并且基于从一个组件到另一组件的位的间接路由(例如,将经纠错的翻转位路由通过数据位纠错组件,使得数据位在被传输到数据总线反转组件之前必须等待经纠错的翻转位),传播延迟可能会加重这种延迟,从而将显著的时延引入存储器系统。
在这种间接路由的一些实例中,存储器应用可以采用反转位或翻转位以及可以纠正包含数据位和翻转位的不同位的纠错组件。在一些实例中,纠错组件可以在将其它信息(例如,数据)传输到数据总线反转组件之前纠正翻转位,这可以是翻转决定组件的一个实例或者可以包含翻转决定组件。在这种情况下,由于数据必须等待翻转位纠正,然后在传输数据之前另外等待经纠错的翻转位以传播到所有数据位纠错组件,因此这可能会将时延引入数据存取时间。
如本文所公开,可以通过将经纠错的翻转位直接传输到数据总线反转组件或翻转决定组件来减少存储器系统中的时延。这可以通过在专用线上传输经纠错的翻转位来实现,所述专用线将信息从翻转位纠错组件直接传输到翻转决定组件。专用线可以是只读线或单向线,其可以具有比双向线(例如,数据位传输线)更快的传输速度。因为可以将经纠错的翻转位直接传输到翻转决定组件,所以纠错数据组件可以不需要在数据位纠错组件处接收经纠错的翻转位,并且可以在另一或多个线上将数据位直接传输到翻转决定组件。
在一些实例中,代替存储器阵列数据位等待经纠错的翻转位,并且代替采用替代方案(例如,多数表决方案,在一些情况下,其可能改变组件的物理大小),可以使用数据总线反转组件或翻转决定组件(例如,其可以位于全局数据总线处)来确定数据位是否已经被反转并按需反转数据位。在一些实例中,翻转决定组件和数据总线反转组件可以是同一组件或包含在同一组件内。
在一些实例中,通过使用翻转决定组件,一旦纠错组件纠正包含翻转位的任何单个数据位,就可以通过数据总线传输数据,而不必等待在数据位纠错组件处接收经纠错的翻转位。数据位(例如,在一些情况下,其可以是经纠错的)和经纠错的翻转位可以直接传输直到翻转决定组件,使得数据位在传输到翻转决定组件之前可以不必等待经纠错的翻转位。然后,翻转决定组件可以基于从翻转位纠错组件直接接收经纠错的翻转位以及从数据位纠错组件接收数据位来确定数据是否已经被反转,然后按需反转数据。
上文介绍的本公开的特征在本文中在存储器系统的上下文中进一步描述。描述了用于根据纠错位翻转方案进行纠错的装置和方法的具体实例。参考与增强的纠错位翻转方案有关的设备图、系统图和流程图来进一步示出和描述本公开的这些和其它特征。
图1示出了根据本公开的各个实施例的支持纠错位翻转方案的示范性存储器阵列。存储器阵列100可以用于存储数字信息(例如,二进制信息)并且也可以被称为电子存储器设备。存储器阵列100包含可编程以存储不同状态的存储器单元105。每个存储器单元105可以可编程以存储表示为逻辑0和逻辑1的两个状态。在一些情况下,存储器单元105被配置成存储两个以上逻辑状态。
存储器单元105可以包含具有可编程状态的存储器元件。DRAM或FeRAM架构中的存储器单元105可以将代表可编程状态的电荷存储在电容器中;例如,带电和不带电电容器可以分别代表两个逻辑状态。DRAM架构可以通常使用这种设计,并且可以使用包含介电材料并且具有线性电极化性质的电容器作为存储器元件。FeRAM架构也可以使用这种设计,但是用作存储器元件的电容器可以包含具有非线性极化性质的铁电材料。PCM或基于隔离的存储器(SBM)架构中的存储器单元105可以改变材料的电阻率(例如,电阻或阈值电压),其中不同的电阻率可以代表不同的逻辑状态。PCM和/或SBM架构可以使用具有电子可编程电阻的硫族化物材料作为存储器元件。在一些情况下,通过改变存储器材料的相位来编程PCM架构中的存储器单元105。在一些情况下,通过引起存储器材料内的离子运动来编程SBM架构中的存储器单元105。
可以通过激活或选择适当的存取线110和数字线115来在存储器单元105上进行操作(例如,读取和写入)。存取线110也可以被称为字线110,而数字线115也可以被称为位线115。激活或选择字线110或数字线115可以包含向相应线施加电压。字线110和数字线115由导电材料制成。例如,字线110和数字线115可以由金属(例如,铜、铝、金、钨等)、金属合金、其它导电材料等制成。根据图1的实例,每行存储器单元105连接到单个字线110,而每列存储器单元105连接到单个数字线115。通过激活一个字线110和一个数字线115(例如,向字线110或数字线115施加电压),可以在其交叉点处存取单个存储器单元105。存取存储器单元105可以包含读取或写入存储器单元105。字线110和数字线115的交叉点可以被称为存储器单元的地址。
在一些架构中,单元的逻辑存储装置(例如,电容器)可以通过选择组件与数字线电隔离。字线110可以连接到选择组件并且可以控制选择组件。例如,选择组件可以是晶体管,并且字线110可以连接到晶体管的栅极。激活字线110导致存储器单元105的电容器和其相对应的数字线115之间的电连接或闭合电路。然后,可以存取数字线以读取或写入存储器单元105。
可以通过行解码器120和列解码器130来控制存储器单元105的存取。在一些实例中,行解码器120从存储器控制器140接收行地址并基于所接收的行地址激活适当的字线110。类似地,列解码器130从存储器控制器140接收列地址并激活适当的数字线115。例如,存储器阵列100可以包含被标记为WL_1至WL_M的多个字线110和被标记为DL_1至DL_N的多个数字线115,其中M和N取决于阵列大小。因此,通过激活字线110和数字线115(例如,WL_3和DL_N),可以存取其交叉点处的存储器单元105。
在存取时,可以通过感测组件125读取或感测存储器单元105以确定存储器单元105的存储状态。例如,在存取存储器单元105之后,存储器单元105的电容器可以放电到其相对应的数字线115。电容器的放电可以基于向电容器偏置或施加电压。放电可以引起数字线115的电压的变化,感测组件125可以将其与参考电压(未示出)进行比较以便确定存储器单元105的存储状态。例如,如果数字线115具有比参考电压更高的电压,则感测组件125可以确定存储器单元105中的存储状态为逻辑1,并且反之亦然。
感测操作的可靠性可以取决于由于读取存储器单元105而产生的感测窗口。例如,与较小的感测窗口相比,较大的感测窗口可能与更少的位错误相关联。感测窗口可以被确定为在存储逻辑1时由于读取存储器单元105而产生的数字线115的电压和在存储逻辑0时由于读取存储器单元而产生的数字线115的电压之间的差异。感测组件125可以包含各种晶体管或放大器,以便检测和放大信号中的差异,这可以被称为锁存。然后,可以通过列解码器130将检测到的存储器单元105的逻辑状态作为输出135输出。
可以通过激活相关的字线110和数字线115来设置或写入存储器单元105。如本文所讨论,激活字线110将相应行的存储器单元105电连接到其相应的数字线115。通过在激活字线110时控制相关的数字线115,存储器单元105可以被写入,例如逻辑值可以被存储在存储器单元105中。列解码器130可以接受数据(例如,输入135)被写入到存储器单元105。
存储器控制器140可以通过各种组件(例如,行解码器120、列解码器130和感测组件125)控制存储器单元105的操作(例如,读取、写入、重写、刷新等)。存储器控制器140可以生成行和列地址信号以便激活期望的字线110和数字线115。存储器控制器140还可以生成并控制在存储器阵列100的操作期间使用的各种电压电势。通常,可以调整或改变本文讨论的施加电压的振幅、形状或持续时间,并且对于操作存储器阵列100的各种操作可以是不同的。此外,可以同时存取存储器阵列100内的一个、多个或所有存储器单元105;可以在重置操作期间同时存取存储器阵列100的多个或所有单元,在重置操作中,所有存储器单元105或一组存储器单元105被设置为单个逻辑状态。
在一些情况下,存储器阵列100可以翻转存储器单元105的逻辑状态,例如将存储器单元105中存储的逻辑值从一个值(例如,逻辑1)改变为另一逻辑值(逻辑0)。存储器阵列100可以在内部进行翻转,并且可以不通知其它外部装置或组件存储器单元的逻辑状态已经被翻转。存储器阵列100可以翻转存储器单元以节省功率,增加装置的可靠性等。例如,对于FeRAM,可以翻转铁电存储器单元以减轻压印的影响(例如,由于长时间暴露于或存储相同电荷而导致的铁电畴的漂移),这可能会降低存储器单元随时间的可靠性。存储与原始逻辑状态不同的逻辑状态的存储器单元105(例如,预期由外部装置或组件存储在存储器单元处的逻辑状态)可以被称为处于反转状态。指示数据是否已经被反转的位在本文中可以被称为翻转位。
装置(例如,主机装置、控制器)可以发出数据的存取命令。在将信息或数据传输回主机装置之前,可以对某些信息(例如,数据位、奇偶校验位、翻转位)进行纠错。可以在用于纠错的纠错组件处接收数据位、奇偶校验位和翻转位,以促进这种纠错。另外,可以确定数据是否已经被反转。在一些实例中,可以使用检测数据是否包含四个以上1的逻辑组件,通过检查数据位来实现数据是否已经被反转的确定。
在纠错期间,可以由纠错组件从解码器接收纠错信息,所述纠错组件可以包含一或多个纠错组件以纠正一或多个错误(例如,与数据和/或翻转位有关的那些)。在一些情况下,翻转位可以具有纠错组件,并且数据位集合和奇偶校验位中的每个位可以具有相对应的纠错组件。在一些情况下,可以对翻转位进行纠错,并且可以将经纠错的翻转位传输到翻转决定组件。经纠错的翻转位可以被直接传输到翻转决定组件,其在一些情况下可以在专用单向线上传输。在一些情况下,一或多个数据位可以另外地或可替代地被纠错。一旦对翻转位进行了纠错,就可以将数据位(其先前可能已经进行纠错或未进行纠错)通过第二线(例如,与在其上传输经纠错的翻转位的第一线不同)直接传输到翻转决定组件。翻转决定组件可以基于接收经纠错的翻转位和/或一或多个数据位来确定数据位是否已经被反转,并且如果是,则可以反转数据位。
图2示出了根据本公开的各个方面的支持纠错位翻转方案的设备200的一个实例。在一些实例中,设备200可以包含本文参考图1描述的一或多个组件。例如,设备200可以包含参考图2描述的纠错组件230,并且可以包含解码器205和翻转决定组件270。
在一些实例中,可以在线250-a、250-b和250-c上(例如,从存储器阵列220)接收一或多个数据位、一或多个奇偶校验位以及一或多个翻转位。在一些实例中,存储器控制器(例如,参考图1描述的存储器控制器140)可以发起来自存储器阵列220的一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位的传输。在一些实例中,存储器控制器140可以是局部存储器控制器、外部存储器控制器或主机装置控制器。在从存储器阵列220传输后,一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位可以由ECC解码器225在线250-a、250-b和250-c上接收。线250-a、250-b和250-c可以是分别携载翻转位、数据位和奇偶校验位的线。
在一些实例中,ECC解码器225可以是或可以包含二进制解码器(未示出)或者可以与其耦合,所述二进制解码器可以起到在一或多个位中定位一或多个错误的作用。在一些实例中,ECC解码器225可以解码一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位,以确定与一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位相关联的错误。然后,在一些实例中,ECC解码器225可以在线260上将可以包含经解码的数据的一或多个位(例如,一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位)传输到纠错组件230(例如,一或多个纠错组件)。在一些实例中,ECC解码器225可以在线260上将可以包含经解码的数据的一或多个位(例如,一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位)的指示传输到纠错组件230(例如,一或多个纠错组件)。
在一些实例中,纠错组件230可以将经纠错的数据直接传输到翻转决定组件270。在一些实例中,经纠错的翻转位可以在线255-a上直接传输到翻转决定组件270。例如,这可以在纠错组件230和翻转决定组件270之间的专用线255-a上进行(例如,不将经纠错的翻转位传输到数据位纠错组件,如先前所讨论)。例如,这可以在纠错组件230和翻转决定组件270之间的单向线255-a上进行。
在一些实例中,纠错组件230可以在线255-b上将数据位直接传输到翻转决定组件270。传输数据位可以基于处理翻转位,或将经处理的翻转位传输到翻转决定组件,或将经处理的翻转位通过翻转位线直接传输到翻转决定组件,或其任何组合。尽管线255-b在图2中被指示为单个线,但这仅出于说明性目的而不是限制性的,因为还考虑了其它替代方案。在一些实例中,线255-b可以是用于将数据位从多个纠错组件传输到翻转决定组件的多个线。图2的线255-b可以是与翻转位传输线255-a分开的线。另外,线255-b可以是读取/写入线或双向线。在翻转决定组件270接收数据位和经纠错的翻转位之后,翻转决定组件可以确定数据位是否已经被反转。
在一些实例中,纠错组件230可以确定与多个数据位中的一个数据位相关联的一或多个错误,并纠正与所述数据位相关联的错误。可以部分地基于在ECC解码器225处确定错误来纠正错误。在一些实例中,纠错组件230可以确定数据位可能未被纠错。
图3示出了根据本公开的各个方面的支持纠错位翻转方案的设备300的一个实例。在一些实例中,设备300可以包含本文参考图1和/或2描述的一或多个组件。例如,设备300可以包含参考图2描述的纠错组件。设备300可以包含解码器305、翻转位纠错组件310、一或多个数据位纠错组件315-a、315-b...315-n、翻转决定组件320和数据总线决定组件325。在一些实例中,翻转决定组件320可以是数据总线反转组件。在一些实例中,翻转决定组件320可以包含数据总线决定组件325的逻辑组件,使得翻转决定组件320和数据总线决定组件325可以是相同的组件。
在图3中,设备300可以包含可以是一或多个组件的解码器305。在一些实例中,解码器305可以是或包含与二进制解码器耦合的ECC解码器。在一些情况下,解码器305可以能够在由解码器305解码的信息中定位错误(例如,可以用作错误定位器)。解码器305可以(例如,在ECC解码器处)接收包含一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位的信息。尽管未示出其它纠正组件(例如,奇偶校验位纠错组件),但是这些其它组件可以进行与本文讨论的数据位和翻转位纠错组件类似的功能。尽管可以在解码器处接收、处理和传输一或多个翻转位(例如,直到翻转位纠错组件),但是仅出于讨论目的,本文将讨论单个翻转位。
可以对ECC解码器处接收的信息进行处理,然后传输到二进制解码器,所述二进制解码器可以确定一或多个错误的位置(例如,在一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位中)。
在所接收的位中定位一或多个错误之后,解码器305可以将一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位传输到相应的位纠错组件。在本实例中,解码器305可以在一或多个位中(例如,在数据[0]中)定位错误。然后,解码器305可以将本错误位置传输到数据位纠错组件315-a。尽管在图3中仅示出了四个数据位纠错组件315,但是对于每个数据位集合,可以按需存在相对应的数据位纠错组件。
翻转位纠错组件310可以接收(例如,从解码器305)是否应纠正翻转位的指示。在一些实例中,翻转位纠错组件310可以接收可以纠正翻转位的指示,并且翻转位纠错组件310可以基于接收指示来纠正翻转位。然后,翻转位纠错组件310可以将翻转位直接传输到翻转决定组件320。
在一些实例中,通过将经纠错的翻转位直接传输到翻转决定组件320,存储器系统可以规避可以包含在其它纠错方案中的各个方面,例如增加组件的物理大小(并使用额外的存储器阵列数据位),或通过在传输到翻转决定组件320之前要求数据纠错组件等待经纠错的翻转位再而将时延引入存储器系统。
在一些实例中,翻转位可以在线上直接传输到翻转决定组件320,所述线可以是将翻转位纠错组件310与翻转决定组件320耦合的专用线。在一些情况下,翻转位线是只读和单向线。因为翻转位线可以是只读的并且是单向的,所以翻转位线上的数据传输可以比读取/写入双向线上更快。在一些实例中,因为翻转位线可以具有更快的数据传输速度和/或其它有利特征,所以在接收数据位之前,可以由翻转决定组件320有利地接收所传输的纠错翻转位。因为可以在与数据位分开的线上传输经纠错的翻转位,所以在传输到翻转决定组件320之前,数据位组件可以不必等待在纠错组件处接收纠错翻转位,从而减少了时延并且实现了其它优点。
在一些实例中,经纠错的翻转位可以由翻转决定组件320与数据位中的至少一个并行或同时接收。翻转决定组件320可以被配置成基于接收数据位的至少一个子集来确定所接收的数据位是否已经被反转,或者翻转决定组件320可以被配置成等待直到所有数据位都已经被接收并且然后确定数据位是否已经被反转。
类似地、另外地或可替代地,可以纠正数据位中的指示错误(例如,在数据位纠错组件315处),然后可以将经纠正的数据位直接传输到翻转决定组件320并传输到数据总线决定组件325。在一些实例中,数据位可以直接传输到翻转决定组件320,并且可以在与经纠错的翻转位分开的线上传输。因为可以在与数据位分开的线上传输经纠错的翻转位,所以在传输到翻转决定组件320之前,数据位可以不必等待在纠错组件处接收经纠错的翻转位。在一些实例中,可以在接收翻转位之后在翻转决定组件320处接收数据位中的至少一些。
翻转决定组件320可以确定一或多个数据位和/或一或多个翻转位是否已经被反转。在一些实例中,翻转决定组件320可以从翻转位纠错组件310直接接收翻转位(例如,通过专用翻转位线)。数据位可以经由相应的局部总线315-a、315-b、...315-n从数据位纠错组件传输,并且可以在翻转决定组件320和数据总线决定组件325处接收,所述翻转决定组件和数据总线决定组件参考本文中的其它附图进行描述。在一些实例中,翻转决定组件320可以基于接收数据位和经纠错的翻转位使用配置逻辑准则来确定输出值。
在一些实例中,在定位一或多个错误之后,解码器305可以将一或多个数据位、一或多个奇偶校验位和/或一或多个翻转位传输到相应的纠错组件。在一些实例中,解码器305可以在所接收的数据位中定位一或多个错误(如果有的话),并将本信息传输到相应的数据位纠错组件。在本实例中,解码器305可以在一或多个位中(例如,在数据[0]中)定位错误。然后,解码器305可以将本错误位置传输到数据位纠错组件315-a。尽管在图3中仅示出了四个数据位纠错组件315,但是对于每个数据位集合,可以按需存在相对应的数据位纠错组件。
图4示出了根据本公开的各个方面的支持纠错位翻转方案的设备400的一个实例。在一些实例中,设备400可以包含本文参考图1-3描述的一或多个组件。例如,设备400可以包含参考图2和3描述的纠错组件。设备400可以包含解码器405、翻转位纠错组件410、数据位纠错组件415-a、415-b...415-n、翻转决定组件420和数据总线决定组件425。
在图4中,ECC解码器403可以接收一或多个数据位、一或多个奇偶校验位以及一或多个翻转位,并且在一些情况下,ECC解码器403可以与二进制解码器405耦合。在一些实例中,ECC解码器403可以解码多个数据位和多个奇偶校验位。与ECC解码器403有关的解码过程可以促进与一或多个数据位、一或多个奇偶校验位以及一或多个翻转位中的至少一个相关联的错误的确定。
在一些实例中,ECC解码器403可以将一或多个数据位、一或多个奇偶校验位以及一或多个翻转位传输到二进制解码器405。在一些实例中,二进制解码器405可以将错误信息传输到每个相对应的纠错组件。在一些实例中,二进制解码器405可以确定关于多个数据位的错误信息。二进制解码器405可以将多个数据位的错误信息传输到每个相对应的数据位纠错组件415-a、415-b...415-n。在一些实例中,二进制解码器可以确定关于至少一个翻转位的错误信息并将错误信息(例如,错误和/或错误位置的指示)传输到翻转位纠错组件410。在一些实例中,二进制解码器405可以确定关于多个奇偶校验位中的至少一个的错误信息,并且可以将错误信息(例如,错误和/或错误位置的指示)传输到奇偶校验位纠错组件(图4中未示出),所述奇偶校验位纠错组件可以类似于数据位纠错组件415-a、415-b...415-n和/或翻转位纠错组件410。
在一些实例中,二进制解码器405可以将第一数据位集合数据[0]的错误信息在数据线上传输到数据位纠错组件415。然后,数据位可以经由数据总线决定组件425在局部总线407-a LBUS[0]上传输到翻转决定组件420。可以传输数据位,而不必等待触发(例如,接收经纠错的翻转位)。一旦任何纠错组件纠正了任何单个位错误(无论它是数据位还是可以被纠错的翻转位),可以传输数据位。
在一些实例中,数据位可以经由局部总线LBUS[0]在线407-a上从纠错组件415-a传输到翻转决定组件420和数据总线决定组件425。每个数据位纠错组件可以经由相对应的局部总线LBUS[n]传输数据位。另外,所有局部总线线407-a、407-b...407-n可以在一或多个通用局部总线线LBUS[127:0]上传输,其中一或多个通用局部总线线LBUS[127:0]可以是翻转决定组件420和数据总线决定组件425的输入线。尽管在图4中仅描绘了通用局部总线线LBUS[127:0]中的一个,但是可以采用多于一个通用局部总线来将数据位从纠错组件传输到翻转决定组件420和数据总线决定组件425。
在一些实例中,数据总线决定组件425可以接收数据位作为输入。通过使数据位通过非反转逻辑组件和反转逻辑组件,可以进行一或多个操作(例如,可以刷新数据位的值)。然后,非反转和反转逻辑组件的输出可以被传递到多路复用器。多路复用器可以从非反转和反转逻辑组件接收数据位,以及从翻转决定组件接收输出值。来自翻转决定组件420的输出值可以是数据位是否可以在多路复用器处被反转的指示符。这些输入可以被一起多路复用以产生正确的数据,以输出到一或多个全局总线线GBUS[127:0]。在一些实例中,数据总线决定组件425的多路复用器可以与一或多个全局数据总线线GBUS[127:0]耦合,
在一些实例中,纠错组件415-a、415-b...415-n和410可以纠正与多个位中的至少一个相关联的错误。在一些实例中,除其它情况外,可以部分地基于在二进制解码器405处确定错误或响应于在ECC解码器403处发生的解码过程来纠正错误。
在一些实例中,可以在翻转位纠错组件410处处理翻转位或对其进行纠错。基于从二进制解码器405接收的信息以及在一些情况下的翻转位纠错组件410处进行的一或多个操作(例如,诸如确定),可以对翻转位进行处理(例如,处理翻转位可以包含纠正翻转位或不对翻转位进行纠正并且使翻转位通过纠错组件)或进行纠正,并且然后可以再翻转位线412上将其直接传输到翻转决定组件420。通过将经处理或经纠错的翻转位直接传输到翻转决定组件420,数据位在传输到翻转决定组件420之前可以不必等待接收经纠错的翻转位。因为数据位可以直接传输到翻转决定组件420并且在与经纠错的翻转位不同的线上传输,所以存储器系统可以由于减少了传输时间而更快且更有效地操作。此外,由于在翻转决定组件420处在较快的单向线上接收经纠错的翻转位,因此一旦在翻转决定组件420处接收至少一些数据位,可以进行翻转决定组件420处的决定。
在一些实例中,翻转位线412可以是将翻转位纠错组件410与翻转决定组件420耦合的线(例如,专用线)。在一些情况下,翻转位线412可以是单向线。另外地或可替代地,数据位线407-a、407-b...407-n可以是双向线。在一些实例中,翻转位线412可以具有比数据位线407-a、407-b...407-n更低的电容性负载。另外,翻转位线412可以被配置成只读线,而数据位线可以被配置成读取/写入线。此外,在一些情况下,翻转位线412可以被配置成具有比数据位线407-a、407-b...407-n更快的传输速度。在一些实例中,因为翻转位线412可以具有更快的数据传输速度和/或其它有利特征,所以所传输的经纠错的翻转位可以在接收数据位(例如,其可能已经被纠错)之前由翻转决定组件420有利地接收。因为可以在与数据位分开的线上传输经纠错的翻转位,所以在传输到翻转决定组件320之前,数据位可以不必等待在纠错组件处接收经纠错的翻转位,从而减少了存储器系统中的时延。
在一些实例中,经纠错的翻转位可以由翻转决定组件420与数据位中的至少一个并行或同时接收。翻转决定组件420可以被配置成基于接收数据位的子集来确定所接收的数据位是否已经被反转,或者翻转决定组件420可以被配置成等待直到所有数据位都已经被接收并且然后确定数据位是否已经被反转。
图5示出了根据本公开的各个方面的支持纠错位翻转方案的设备500的一个实例。在一些实例中,设备500可以包含本文参考图2、3和4描述的一或多个组件。在一些实例中,设备500可以包含翻转决定组件520的组件,类似于图4的翻转决定组件420和图3的翻转决定组件320。
图5示出了翻转决定组件520的组件的一个实例。如先前关于图4所讨论,数据位(例如,在一些情况下可以被纠错)可以在翻转决定组件420处接收。如图5中所示,各个数据位中的一个可以在相对应的各个逻辑组件530-a、530-b、...530-n处接收。逻辑组件(例如,逻辑组件530-a)可以基于进行的一或多个操作(例如,确定、比较)来确定数据位的输出。在一些实例中,如参考图4所讨论,翻转决定组件520的输出可以是是否在数据总线决定组件425的多路复用器处反转翻转位的指示符。
在一些实例中,翻转决定组件520可以使用配置逻辑准则来确定是否应反转所接收的数据位。在一些实例中,可以将配置逻辑准则存储在翻转决定组件520中。
在一些实例中,这可以通过确定所接收的数据位是否可以包含大于四个的1来实现。由于翻转决定组件520中使用的配置逻辑准则可以是基于字节的评估,因此可以使用这里的示范性阈值(四个1)。由于字节中有八位,因此在查看数据位的一半或四位之后,翻转决定组件520可以做出关于反转数据位的决定。这仅是一个实例,并且可以特别考虑其它技术和替代方案。在一些实例中,翻转决定组件520可以评估所接收的数据位,并且确定每个字节中是否存在为某一逻辑值(例如,一值或零值)的少于或等于四位,并且确定是否反转所接收的数据位。在一些实例中,配置逻辑准则可以包含所接收的数据位是否可以包含大于四个0的决定。尽管可以评估数据位以确定是否大于四个1,但是可以使用任何数字或值。在一些实例中,可以评估数据位以确定是否存在大于五个1、五个0、六个1、六个0、七个1、七个0等等。因为可以评估的数据位的数量越少,消耗的功率可能就越少,所以在本实例中使用四个1可以确保在翻转决定组件520处处理数据位时的低功耗。通常,确定可以基于逻辑组件内部或外部的任何一组配置逻辑准则。
在一些实例中,可以做出应在翻转决定组件520处对超过一半的数据位进行反转的决定。然而,在翻转决定组件520处反转数据位可能会消耗太多的功率,因此可以将应反转数据位的指示符发送到数据总线决定组件的多路复用器进行反转,以减少存储器装置的功耗。
逻辑组件530(例如,逻辑组件530-a、530-b、...530-n)的输出可以被传输到其它逻辑组件540(例如,逻辑组件540-a、540-b、...540-n),所述其它逻辑组件在一些情况下可以包含XOR组件。尽管仅示出了三个逻辑组件530和三个逻辑组件540,但是对于与一或多个数据纠错组件(例如,415-a至415-n)相对应的所接收的数据位的每一个集合,可以存在相对应的逻辑组件540和相对应的逻辑组件530。
另外,可以在翻转决定组件520处接收经纠错的翻转位。在一些实例中,经纠错的翻转位可以是XOR组件540的输入。XOR组件540的输出可以提供输出值,所述输出值可以传输到数据总线决定组件(未示出),如关于图3和4所讨论。可以使用任何适当的逻辑来实现与XOR组件540相似的逻辑输出,例如除了其它实施方案以外,数据位可以先反转然后再输入到XNOR组件以产生相似的结果。
在一些实例中,翻转决定组件520可以确定数据位是否已经被反转。逻辑组件530可以输出所接收的数据位可以包含具有给定逻辑状态(例如,存在大于四个1)的多位的决定。来自翻转决定组件520的输出值可以被传输到数据总线决定组件(图5中未示出),并且所述输出值可以是数据位是否可以在多路复用器处被反转的指示符。这些输入可以被一起多路复用以产生正确的数据,以输出到全局总线GBUS[127:0],
翻转决定组件520可以包含可以确定是否应反转所接收的数据位的任何适当的逻辑组件或配置逻辑准则。在一个实例中,翻转决定组件520可以包含逻辑或配置逻辑准则,其分析数据位是否具有大于四个1来确定是否应反转数据位。尽管可以使用任意数量的逻辑方案来确定数据反转,但是在处理数据位时消耗较少功率的逻辑方案可能是期望的。在一些实例中,翻转决定组件520可以将所接收的数据位与配置逻辑准则进行比较,以确定所接收的数据位的逻辑状态的数量满足阈值。然后,翻转决定组件可以输出所接收的数据位的逻辑状态的数量满足阈值的指示。配置逻辑准则将在本文中进一步详细讨论。
作为第一实例,在所接收的数据位包含小于或等于四个1并且翻转位值为0的情况下,所述决定可以指示数据位尚未被反转并且翻转决定组件520可以向数据总线决定组件传输指示以不反转数据位。作为第二实例,在逻辑组件530可以输出所接收的数据位可以包含小于或等于四个1的决定并且翻转位值为1的情况下,所述决定可以指示数据位已经被反转并且翻转决定组件520可以将指示传输到数据总线决定组件以反转数据位。作为第三实例,在逻辑组件530可以输出所接收的数据位可以包含大于四个1的决定并且翻转位值为0的情况下,所述决定可以指示数据位已经被反转。因此,翻转决定组件520可以将指示传输到数据总线决定组件以反转数据位。作为第四实例,在逻辑组件530可以输出所接收的数据位可以包含大于四个1的决定并且翻转位值为1的情况下,所述决定可以指示数据位尚未被反转并且翻转决定组件520可以向数据总线决定组件传输指示以不反转数据位。在将数据位与翻转决定组件520的逻辑组件进行比较时,可以确定是否应反转数据位。一旦在翻转决定组件520处做出确定,就可以将所述决定的指示传输到数据总线决定组件(图5中未示出)以进行反转。
图6示出了根据本公开的各个实施例的支持纠错位翻转方案的存储器阵列的框图。框图600可以包含存储器阵列100-a,其可以是参考图1讨论的存储器阵列100的一个实例。存储器阵列100-a可以被称为电子存储器设备,并且可以包含存储器控制器140-a、字线110-a、位线115-a、感测组件125-a和一或多个存储器单元105-a(其可以是参考图1描述的存储器控制器140、字线110、位线115、感测组件125和一或多个存储器单元105的实例)。存储器阵列100-a还可以包含参考组件620、锁存器625和读取组件650。存储器阵列100-a的组件可以彼此电子通信并且可以进行参考图1-5描述的功能。
存储器控制器140-a可以与其它组件组合地在整个存储器阵列100-a上施加电压,将数据写入存储器单元105-a,从存储器单元105-a读取数据,并且通常操作存储器阵列100-a,如图1-5中所描述。存储器控制器140-a可以包含偏置组件610和定时组件615。在一些情况下,存储器控制器可以包含位翻转组件645。存储器控制器140-a可以与一或多个存储器单元105-a、感测组件125-a和参考组件620电子通信。
偏置组件610可以被配置成(例如,通过存储器控制器140-a)以通过向那些各种节点施加电压来激活字线110-a或位线115-a。例如,偏置组件610可以被配置成施加电压以读取或写入本文所述的存储器单元105-a。在一些情况下,存储器控制器140-a可以包含行解码器、列解码器或两者,如参考图1所描述。这可以使存储器控制器140-a能够存取一或多个存储器单元105。偏置组件810还可以将电压电势提供给参考组件620,以便生成感测组件125-a的参考信号。另外,偏置组件610可以为感测组件125-a的操作提供电压电势。
定时组件615可以被配置成控制各种字线选择或板偏置的定时,包含开关和施加电压以进行本文所讨论的存储器功能(例如,读取和写入)的定时。在一些情况下,定时组件615可以控制偏置组件610的操作。
参考组件620可以包含各种组件,以生成感测组件125-a的参考信号。参考组件620可以包含被配置成产生参考信号的电路系统。
感测组件125-a可以将来自一或多个存储器单元105-a的信号与来自参考组件620的参考信号进行比较。在确定逻辑状态时,感测组件然后可以将输出存储在锁存器625中,所述输出可以在其中根据存储器阵列100-a是其一部分的电子装置的操作而使用。在一些情况下,参考组件620、感测组件125-a和锁存器825可以是存储器控制器140-a的组件。
位翻转组件645可以用于管理纠错位翻转方案的各个方面。例如,位翻转组件645可以用于将定时信息提供给偏置组件610和/或定时组件615以进行位翻转操作。位翻转组件645还可以包含翻转位生成组件和/或位翻转组件。
读取组件650可以用于处理锁存器625处存储的信息位。读取组件650可以包含参考图2讨论的设备200的各个方面。
例如,在可以从存储控制器140-a传输并在存储器单元105-a处接收读取命令之后,纠错组件655可以从存储器单元105-a接收翻转位和数据位。在一些实例中,可以存在多个纠错组件,其可以各自对应于数据位的至少一个子集和/或翻转位。尽管在本实例中可以讨论单个翻转位,但是这出于说明性目的,因为可以在纠错组件655处接收多个翻转位。在一些实例中,纠错组件655可以对所接收的翻转位和数据位进行纠错。在对纠错翻转位进行纠错之后,可以将经纠错的翻转位直接传输到翻转决定组件(未示出)。在一些情况下,可以将经纠错的翻转位在专用、单向和/或只读线上传输到翻转决定组件。此外,经纠错的数据位也可以被传输到翻转决定组件。经纠错的数据位可以在与经纠错的翻转位不同的线上传输,其传输速度可能比翻转位线慢,因为数据位线可能是读取/写入线。因此,经纠错的数据位可以与翻转位并行或在翻转位之后到达翻转决定组件。在接收经纠错的翻转位和经纠错的数据位之后,翻转决定组件可以确定是否可以反转经纠错的数据位。
在一些实例中,位翻转组件645可以反转存储器阵列100-a处接收的数据位。经反转的数据位可以存储在存储器阵列100-a处,并且在来自主机装置(或控制器等)的命令(例如,读取命令)的情况下,存储器阵列100-a可以反转数据位。经反转的数据位可以包含可以指示数据位已经被反转的反转位或翻转位。
在一些实例中,数据位、翻转位和奇偶校验位可以先从存储器阵列100-a提供给解码器,再提供给纠错组件,然后提供给翻转决定组件,所述翻转决定组件可以确定是否应反转数据位,如先前关于纠错组件655所讨论。
图7示出了根据本公开的各个实施例的支持纠错位翻转方案的系统。系统700包含装置705,其可以是或包含印刷电路板以连接或物理地支撑各种组件。装置705包含存储器阵列100-b,其可以是参考图1和6描述的存储器阵列100的一个实例。存储器阵列100-b可以含有存储器控制器140-b和一或多个存储器单元105-b(其可以是参考图1和6描述的存储器控制器140和一或多个存储器单元105的实例)。装置705也可以包含处理器710、BIOS组件715、一或多个外围组件720和输入/输出控制组件725。装置705的组件可以通过总线730彼此进行电子通信。
处理器710可以被配置成通过存储器控制器140-b来操作存储器阵列100-b。在一些情况下,处理器710可以进行参考图1和6描述的存储器控制器140的功能。在其它情况下,存储器控制器140-b可以集成到处理器710中。处理器710可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、分立门或晶体管逻辑、分立硬件组件,或者它可以是这些类型的组件的组合,并且处理器710可以进行本文描述的各种功能。处理器710可以例如被配置成执行存储器阵列100-b中存储的计算机可读指令,以使装置705执行各种功能或任务。
BIOS组件715可以是包含作为固件操作的基本输入/输出系统(BIOS)的软件组件,其可以初始化和运行系统700的各种硬件组件。BIOS组件715还可以管理处理器710和各种组件(例如,外围组件720、输入/输出控制组件725等)之间的数据流。BIOS组件715可以包含只读存储器(ROM)、闪速存储器或任何其它非易失性存储器中存储的程序或软件。
一或多个外围组件720可以是集成到装置705中的任何输入或输出装置或这种装置的接口。实例可以包含磁盘控制器、声音控制器、图形控制器、以太网控制器、调制解调器、通用串行总线(USB)控制器、串行或并行端口或外围卡插槽(例如,外围组件互连(PCI)或加速图形端口(AGP)插槽)。
输入/输出控制组件725可以管理处理器710和一或多个外围组件720、输入装置735或输出装置740之间的数据通信。输入/输出控制组件725还可以管理未集成到装置905中的外围设备。在一些情况下,输入/输出控制组件725可以代表外部外围设备的物理连接或端口。
输入735可以代表向装置705或其组件提供输入的装置705外部的装置或信号。这可以包含用户接口或与其它装置或其它装置之间的接口。在一些情况下,输入735可以是经由一或多个外围组件720与装置705接口连接的外围设备,或者可以由输入/输出控制组件725管理。
输出740可以代表被配置成接收来自装置705或任何其组件的输出的装置705外部的装置或信号。输出740的实例可以包含显示器、音频扬声器、打印装置、另一处理器或印刷电路板等。在一些情况下,输出740可以是经由一或多个外围组件720与装置705接口连接的外围设备,或者可以由输入/输出控制组件725管理。
纠错组件745可以从存储器阵列100-b接收翻转位、数据位和/或奇偶校验位。在一些实例中,对于数据位和翻转位,可以存在相对应的纠错组件。对于一或多个奇偶校验位,也可以存在纠错组件。另外,在纠错组件处可以存在所接收的多个翻转位,但是在本实例中,将讨论单个翻转位。纠错组件可以例如在可以在存储器阵列100-b处接收读取命令之后对所接收的翻转位和数据位进行纠错。
在对翻转位进行纠错之后,可以将经纠错的翻转位直接传输到翻转决定组件(图7中未示出)。纠错翻转位可以在专用、单向和/或只读线上传输到翻转决定组件。此外,经纠错的数据位也可以被传输到翻转决定组件。经纠错的数据位可以在与经纠错的翻转位不同的线上传输,并且由于读取/写入线的速度较慢,因此经纠错的数据位可以与翻转位并行或在翻转位之后到达。在接收经纠错的翻转位和经纠错的数据位之后,翻转决定组件可以确定是否应反转经纠错的数据位。
存储器控制器140-b、装置705和存储器阵列100-b的组件可以由被设计成执行其功能的电路系统构成。这可以包含各种电路元件,例如导线、晶体管、电容器、电感器、电阻器、放大器或其它有源或非有源元件,其被配置成执行本文所述的功能。
图8示出了流程图,其示出了根据本公开的各个方面的支持纠错位翻转方案的方法800。除了其它实例以外,方法800的操作可以由本文所述的控制器或其组件来实施。例如,方法800的操作可以由参考图1至5描述的控制器或主机装置进行。在一些实例中,控制器可以执行一组指令以控制控制器的功能元件,以进行本文所述的功能。另外地或可替代地,控制器可以使用专用硬件来进行本文描述的功能的各个方面。
在805,组件可以在翻转位纠错组件处接收是否应纠正翻转位的指示。805的操作可以根据本文描述的方法来进行。在一些实例中,805的操作的各个方面可以由参考图1至5描述的纠错组件来进行。
在810,所述组件控制器可以基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位,所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件。810的操作可以根据本文描述的方法来进行。在一些实例中,810的操作的各个方面可以由参考图1至5描述的纠错组件来进行。
在815,所述组件可以基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件。815的操作可以根据本文描述的方法来进行。在一些实例中,815的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
描述了一种设备。所述设备可以包含处理器、与处理器进行电子通信的存储器以及存储器中存储的指令。所述指令可以可由处理器执行以使所述设备在翻转位纠错组件处接收是否应纠正翻转位的指示,基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位(所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件),并且基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件。
描述了另一种设备。所述设备可以包含用于进行以下的构件:在翻转位纠错组件处接收是否应纠正翻转位的指示,基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位(所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件),并且基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件。
描述了一种用于存储代码的非暂时性计算机可读媒体。所述代码可以包含指令,所述指令可由处理器执行以在翻转位纠错组件处接收是否应纠正翻转位的指示,基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位(所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件),并且基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,接收指示可以包含用于接收应纠正翻转位的指示的操作、特征、构件或指令,并且其中处理翻转位包含在翻转位纠错组件处纠正翻转位的错误。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于基于处理翻转位来将数据位集合通过第二输出线传输到翻转决定组件的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于基于将经处理的翻转位传输到翻转决定组件来将数据位集合通过第二输出线传输到翻转决定组件的操作、特征、构件或指令。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,可以进一步包含用于基于将经处理的翻转位通过输出线直接传输到翻转决定组件来将数据位集合通过第二输出线传输到翻转决定组件的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于在数据位纠错组件处接收是否应对数据位进行纠错的第二指示,基于接收第二指示来在数据位纠错组件处纠正数据位,并将经纠正的数据位通过第二输出线传输到翻转决定组件的操作、特征、构件或指令。
图9示出了流程图,其出了根据本公开的各个方面的支持纠错位翻转方案的方法900。方法900的操作可以由本文所述的控制器或其组件来实施。例如,方法900的操作可以由参考图1至5描述的控制器或主机装置进行。在一些实例中,控制器可以执行一组指令以控制控制器的功能元件,以进行本文所述的功能。另外地或可替代地,控制器可以使用专用硬件来进行本文描述的功能的各个方面。
在905,所述组件可以在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位。905的操作可以根据本文描述的方法来进行。在一些实例中,905的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
在910,所述组件可以在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位。910的操作可以根据本文描述的方法来进行。在一些实例中,910的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
在915,所述组件可以基于接收经纠错的翻转位并接收一或多个数据位来在翻转决定组件处确定是否反转数据位。915的操作可以根据本文描述的方法来进行。在一些实例中,915的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
描述了一种设备。所述设备可以包含处理器、与处理器进行电子通信的存储器以及存储器中存储的指令。所述指令可以可由处理器执行以使所述设备在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位,在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位,并且基于接收经纠错的翻转位并接收一或多个数据位来在翻转决定组件处确定是否反转数据位。
描述了另一种设备。所述设备可以包含用于在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位的构件、用于在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位的构件、以及用于基于接收经纠错的翻转位并接收一或多个数据位来在翻转决定组件处确定是否反转数据位的构件。
描述了一种用于存储代码的非暂时性计算机可读媒体。所述代码可以包含指令,所述指令可由处理器执行以在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位,在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位,并且基于接收经纠错的翻转位并接收一或多个数据位来在翻转决定组件处确定是否反转数据位。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,经由第二输出线接收一或多个数据位可以包含用于在接收翻转位之后接收一或多个数据位中的至少一些的操作、特征、构件或指令。
图10示出了流程图,其示出了根据本公开的各个方面的支持纠错位翻转方案的方法1000。方法1000的操作可以由本文所述的控制器或其组件来实施。例如,方法1000的操作可以由参考图1至5描述的控制器或主机装置进行。在一些实例中,控制器可以执行一组指令以控制控制器的功能元件,以进行本文所述的功能。另外地或可替代地,控制器可以使用专用硬件来进行本文描述的功能的各个方面。
在1005,所述组件可以在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位。1005的操作可以根据本文描述的方法来进行。在一些实例中,1005的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
在1010,所述组件可以经由单向输出线接收经纠错的翻转位。1010的操作可以根据本文描述的方法来进行。在一些实例中,1010的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
在1015,所述组件可以在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位。1015的操作可以根据本文描述的方法来进行。在一些实例中,1015的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
在1020,组件可以经由双向输出线接收一或多个数据位。1020的操作可以根据本文描述的方法来进行。在一些实例中,1020的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
在1025,所述组件可以基于接收经纠错的翻转位并接收一或多个数据位来在翻转决定组件处确定是否反转数据位。1025的操作可以根据本文描述的方法来进行。在一些实例中,1025的操作的各个方面可以由参考图1至5描述的翻转决定组件来进行。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,可以进一步包含用于经由单向输出线接收经纠错的翻转位的操作、特征、构件或指令,并且其中经由第二输出线接收一或多个数据位包含,并经由双向输出线接收一或多个数据位。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,接收经纠错的翻转位并接收一或多个数据位可以包含用于并行接收翻转位和一或多个数据位中的至少一些的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于使用配置逻辑准则基于接收一或多个数据位和经纠错的翻转位来在翻转决定组件处确定输出值,并将输出值的指示符传输到数据总线决定组件的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于基于输出值和经纠错的翻转位从翻转决定组件传输是否反转数据位的第二指示符的操作、特征、构件或指令。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,在翻转决定组件处使用配置逻辑准则来确定输出值可以包含用于将所接收的数据位与配置逻辑准则进行比较以确定所接收的第一类型的数据位的逻辑状态的数量是否可以大于阈值的操作、特征、构件或指令。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,在翻转决定组件处使用配置逻辑准则来确定输出值可以包含用于使用包含异或(XOR)组件的逻辑组件来比较一或多个数据位中的至少一些和经纠错的翻转位的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于基于确定是否反转数据位并输出所反转的数据位来在翻转决定组件处反转数据位的操作、特征、构件或指令。
描述了一种方法。所述方法可以包含:在翻转位纠错组件处接收是否应纠正翻转位的指示;基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位;所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件;和基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件。
描述了一种设备。所述设备可以包含处理器、与处理器进行电子通信的存储器以及存储器中存储的指令。所述指令可以可由处理器执行以使所述设备在翻转位纠错组件处接收是否应纠正翻转位的指示,基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位(所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件),并且基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件。
描述了另一种设备。所述设备可以包含用于在翻转位纠错组件处接收是否应纠正翻转位的指示的构件、用于基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位(所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件)的构件、以及用于基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件的构件。
描述了一种存储代码的非暂时性计算机可读媒体。所述代码可以包含指令,所述指令可由处理器执行以在翻转位纠错组件处接收是否应纠正翻转位的指示,基于接收是否应纠正翻转位的指示来在翻转位纠错组件处处理翻转位(所述处理包含在翻转位纠错组件处纠正翻转位或使翻转位通过翻转位纠错组件),并且基于处理翻转位来将经处理的翻转位通过输出线直接传输到翻转决定组件。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,接收指示可以包含用于接收应纠正翻转位的指示的操作、特征、构件或指令,并且其中处理翻转位包含在翻转位纠错组件处纠正翻转位的错误。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于基于处理翻转位来将数据位集合通过第二输出线传输到翻转决定组件的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于基于将经处理的翻转位传输到翻转决定组件来将数据位集合通过第二输出线传输到翻转决定组件的操作、特征、构件或指令。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,通过第二输出线将数据位集合传输到翻转决定组件可以包含用于基于将经处理的翻转位通过输出线直接传输到翻转决定组件来将数据位集合通过第二输出线直接传输到翻转决定组件的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于在数据位纠错组件处接收是否应对数据位进行纠错的第二指示,基于接收第二指示来在数据位纠错组件处纠正数据位,并将经纠正的数据位通过第二输出线传输到翻转决定组件的操作、特征、构件或指令。
描述了一种方法。所述方法可以包含:在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位;在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位;和在翻转决定组件处基于接收经纠错的翻转位并接收一或多个数据位来确定是否反转一或多个数据位。
描述了一种设备。所述设备可以包含处理器、与处理器进行电子通信的存储器以及存储器中存储的指令。所述指令可以可由处理器执行以使所述设备在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位,在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位,并且在翻转决定组件处基于接收经纠错的翻转位并接收一或多个数据位来确定是否反转一或多个数据位。
描述了另一种设备。所述设备可以包含用于在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位的构件、用于在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位的构件、以及用于在翻转决定组件处基于接收经纠错的翻转位并接收一或多个数据位来确定是否反转一或多个数据位的构件。
描述了一种存储代码的非暂时性计算机可读媒体。所述代码可以包含指令,所述指令可由处理器执行以在翻转决定组件处经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位,在翻转决定组件处经由第二输出线从数据位纠错组件接收一或多个数据位,并且在翻转决定组件处基于接收经纠错的翻转位并接收一或多个数据位来确定是否反转一或多个数据位。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,经由第二输出线接收一或多个数据位可以包含用于在接收经纠错的翻转位之后接收一或多个数据位中的至少一些的操作、特征、构件或指令。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,经由第一输出线接收经纠错的翻转位可以包含用于经由单向输出线接收经纠错的翻转位的操作、特征、构件或指令,并且其中经由第二输出线接收一或多个数据位包含,并经由双向输出线接收一或多个数据位。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,接收经纠错的翻转位并接收一或多个数据位可以包含用于并行接收经纠错的翻转位和一或多个数据位中的至少一些的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于使用配置逻辑准则基于接收一或多个数据位和经纠错的翻转位来在翻转决定组件处确定输出值,并将输出值的指示符传输到数据总线决定组件的操作、特征、构件或指令。
本文描述的方法、设备和非暂时性计算机可读媒体的一些实例可以进一步包含用于基于输出值和经纠错的翻转位从翻转决定组件传输是否反转一或多个数据位的第二指示符的操作、特征、构件或指令。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,在翻转决定组件处使用配置逻辑准则来确定输出值可以包含用于将所接收的数据位与配置逻辑准则进行比较以确定所接收的第一类型的数据位的逻辑状态的数量是否可以大于阈值的操作、特征、构件或指令。
在本文描述的方法、设备和非暂时性计算机可读媒体的一些实例中,在翻转决定组件处使用配置逻辑准则来确定输出值可以包含用于使用包含异或(XOR)组件的逻辑组件来比较一或多个数据位中的至少一些和经纠错的翻转位的操作、特征、构件或指令。
描述了一种设备。所述设备可以包含:翻转位纠错组件,其与错误定位器组件耦合;和翻转决定组件,其通过输出线直接与翻转位纠错组件耦合,所述翻转位纠错组件用于从错误定位器组件接收翻转位的翻转位错误的指示,基于接收翻转位错误的指示来纠正翻转位错误,并将经纠错的翻转位通过输出线直接传输到翻转决定组件。
在一些实例中,输出线可以包含翻转位纠错组件和翻转决定组件之间的专用输出线的操作、特征、构件或指令,其中翻转位纠错组件可以可操作以将经纠错的翻转位通过专用输出线直接传输到翻转决定组件。
在一些实例中,输出线可以包含在翻转位纠错组件和翻转决定组件之间的单向输出线的操作、特征、构件或指令,其中翻转位纠错组件可以可操作以将经纠错的翻转位通过单向输出线直接传输到翻转决定组件。
描述了一种设备。所述设备可以包含:翻转决定组件;翻转位纠错组件,其与翻转决定组件耦合并且被配置成将一或多个翻转位通过耦合翻转位纠错组件和翻转决定组件的第一输出线直接传输到翻转决定组件;和数据位纠错组件,其与翻转决定组件耦合并且被配置成将一或多个数据位通过第二输出线传输到翻转决定组件。
一些实例可以进一步包含基于通过第二输出线接收的一或多个数据位中的至少一个或通过第一输出线接收的一或多个翻转位来确定是否应反转一或多个数据位。
在一些实例中,数据位纠错组件可以通过第二输出线与翻转决定组件直接耦合。
一些实例可以进一步包含:接收纠错状态的指示,并且响应于接收所述指示,分别通过第二输出线传输一或多个数据位,并通过第一输出线传输一或多个翻转位。
在一些实例中,数据位纠错组件和翻转位纠错组件可以分别被配置成同时接收一或多个数据位和一或多个翻转位。
在一些实例中,翻转决定组件可以包含被配置成输出指示是否反转一或多个数据位的数据位反转决定的存储逻辑准则的操作、特征、构件或指令,所述设备进一步包含。
一些实例可以进一步包含将所接收的数据位与配置逻辑准则进行比较以确定所接收的第一类型的数据位的逻辑状态的数量满足阈值,并且输出所接收的第一类型的数据位的逻辑状态的数量满足阈值的指示。
在一些实例中,第一输出线可以具有第一传输速度,并且第二输出线可以具有可以比第一传输速度慢的第二传输速度。
应注意,本文描述的方法描述了可能的实施方案,并且操作和步骤可以被重新布置或以其它方式修改,并且其它实施方案是可能的。此外,可以组合来自两种或两种以上方法的各个方面。
本文描述的信息和信号可以使用多种不同工艺和技术中的任何一种来代表。例如,在整个以上说明书中可能引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合代表。一些附图可以将信号图示为单个信号;然而,本领域普通技术人员将理解,信号可以代表信号总线,其中总线可以具有各种位宽度。
术语“电子通信”、“导电接触”、“连接”和“耦合”可以是指支持组件之间的信号流动的组件之间的关系。如果组件之间存在任何可以随时支持组件之间的信号流动的导电路径,则组件被认为彼此电子通信(或彼此导电接触、连接或耦合)。在任何给定时间,基于包含所连接的组件的装置的操作,彼此电子通信(或彼此导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接的组件之间的导电路径可以是组件之间的直接导电路径,或者所连接的组件之间的导电路径可以是可以包含中间组件(例如,开关、晶体管或其它组件)的间接导电路径。在一些情况下,所连接组件之间的信号流动可能会中断一段时间,例如使用一或多个中间组件(例如,开关或晶体管)。
术语“耦合”是指从组件之间的开路关系变为组件之间的闭路关系的状态,在组件之间的开路关系中,信号当前不能通过导电路径在组件之间进行通信;而在组件之间的闭路关系中,信号可以通过导电路径在组件之间进行通信。当一个组件(例如,控制器)将其它组件耦合在一起时,所述组件会发起一个更改,其允许信号通过先前不允许信号流动的导电路径在其它组件之间流动。
术语“隔离”是指组件之间的关系,其中信号当前不能在组件之间流动。如果组件之间存在开路,则组件彼此隔离。例如,当开关断开时,由位于组件之间的开关隔离的两个组件彼此隔离。当控制器将两个组件彼此隔离时,控制器会影响更改,这阻止信号使用先前允许信号流动的导电路径在组件之间流动。
本文中使用的术语“层”是指几何结构的层或片,每个层可以具有三个维度(例如,高度、宽度和深度)并且可以覆盖表面的至少一部分。例如,层可以是三维结构,其中两个维度大于第三维度,例如薄膜。层可以包含不同的元件、组件和/或材料。在一些情况下,一层可以由两个或两个以上子层构成。在一些附图中,出于说明的目的,描绘了三维层的两个维度。然而,本领域技术人员将认识到,所述层在本质上是三维的。
包含存储器阵列的本文讨论的装置可以形成在半导体衬底(例如,硅、锗、硅-锗合金、砷化镓、氮化镓等)上。在一些情况下,衬底是半导体晶片。在其它情况下,衬底可以是绝缘体上硅(SOI)衬底(例如,玻璃上硅(SOG)或蓝宝石上硅(SOP))或另一衬底上的半导体材料的外延层。可以通过使用各种化学物种(包含但不限于磷、硼或砷)掺杂来控制衬底或衬底的子区域的电导率。可以在衬底的初始形成或生长期间通过离子注入或通过任何其它掺杂手段来进行掺杂。
本文讨论的开关组件或晶体管可以代表场效应晶体管(FET),并且包括包含源极、漏极和栅极的三端装置。各端可以通过导电材料(例如,金属)连接到其它电子元件。源极和漏极可以是导电的,并且可以包括重掺杂的(例如,退化的)半导体区域。源极和漏极可以被轻掺杂的半导体区域或沟道分开。如果沟道是n型(例如,多数载流子是电子),则FET可以被称为n型FET。如果沟道是p型(例如,多数载流子是空穴),则FET可以被称为p型FET。沟道可以由绝缘栅极氧化物封端。可以通过向栅极施加电压来控制沟道电导率。例如,分别将正电压或负电压施加到n型FET或p型FET可能会导致沟道变得导电。当将大于或等于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可能会“开启”或“激活”。当将小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可能会“关闭”或“停用”。
结合附图,本文阐述的说明书描述了示范性配置,并且不代表可以实施的或在权利要求的范围内的所有实例。本文使用的术语“示范性”是指“用作实例(example/instance)或说明”,而并非“优选”或“优于其它实例”。详细描述包含具体细节以提供对所描述技术的理解。然而,可以在没有这些具体细节的情况下实践这些技术。在一些实例中,以框图形式示出了公知的结构和装置,以避免使所描述的实例的概念不清楚。
在附图中,相似的组件或特征可以具有相同的附图标记。此外,可以通过在附图标记之后加上破折号和在相似组件之间进行区分的第二标记来区分相同类型的各种组件。如果在说明书中仅使用第一附图标记,则所述描述适用于具有相同的第一附图标记的相似组件中的任何一个,而与第二附图标记无关。
本文描述的信息和信号可以使用多种不同工艺和技术中的任何一种来代表。例如,在整个以上说明书中可能引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合代表。
结合本文的公开内容描述的各种说明性块和模块可以用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、分立栅极或晶体管逻辑、分立硬件组件或其任何组合(被设计成进行本文描述的功能)来实施或进行。通用处理器可以是微处理器,但在替代方案总,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实施为计算装置的组合(例如,DSP和微处理器的组合、多个微处理器、与DSP核心结合的一或多个微处理器或任何其它这种配置)。
本文描述的功能可以在硬件、由处理器执行的软件、固件或其任何组合中实施。如果在由处理器执行的软件中实施,则功能可以作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体传输。其它实例和实施方案在本公开和所附权利要求的范围内。例如,由于软件的性质,本文描述的功能可以使用由处理器执行的软件、硬件、固件、硬接线或这些中的任何组合来实施。实施功能的特征还可以物理地位于各种位置,包含被分布成使得功能的各部分在不同的物理位置处实施。另外,如本文使用(包含在权利要求中),在项目列表中使用的“或”(例如,以诸如“至少一个”或“一或多个”的短语开头的项目列表)指示包含性列表,例如A、B或C中至少一个的列表是指A或B或C或AB或AC或BC或ABC(例如,A和B和C)。而且,如本文使用,短语“基于”不应被解释为对封闭条件集合的引用。例如,在不脱离本公开的范围的情况下,被描述为“基于条件A”的示范性步骤可以基于条件A和条件B。换句话说,如本文使用,短语“基于”应以与短语“至少部分地基于”相同的方式解释。
计算机可读媒体包含非暂时性计算机存储媒体和通信媒体,所述通信媒体包含促进计算机程序从一个地方转移到另一地方的任何媒体。非暂时性存储媒体可以是可以由通用或专用计算机存取的任何可用媒体。作为实例而非限制,非暂时性计算机可读媒体可以包括RAM、ROM、电可擦可编程只读存储器(EEPROM)、压缩盘(CD)ROM或其它光盘存储、磁盘存储或其它磁性存储装置、或可以用于以指令或数据结构的形式携载或存储期望程序代码构件并且可以由通用或专用计算机或通用或专用处理器存取的任何非暂时性媒体。而且,任何连接都被适当地称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如,红外、无线电和微波)从网站、服务器或其它远程源传输软件,则媒体的定义包含所述同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如,红外、无线电和微波)。本文使用的磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常以磁性方式重现数据,而光盘则通过激光器以光学方式重现数据。上述的组合也包含在计算机可读媒体的范围内。
提供本文的描述以使本领域技术人员能够做出或使用本公开。对本公开的各种修改对于本领域技术人员将是显而易见的,并且在不脱离本公开的范围的情况下,本中定义的一般原理可以应用于其它变型。因此,本公开不限于本文描述的实例和设计,而是应被赋予与本文公开的原理和新颖性特征一致的最广泛范围。
Claims (25)
1.一种方法,其包括:
在翻转位纠错组件处接收是否应纠正翻转位的指示;
至少部分地基于接收是否应纠正所述翻转位的所述指示,在所述翻转位纠错组件处处理所述翻转位,所述处理包括在所述翻转位纠错组件处纠正所述翻转位或使所述翻转位通过所述翻转位纠错组件;和
至少部分地基于处理所述翻转位,将所述经处理的翻转位通过输出线直接传输到翻转决定组件。
2.根据权利要求1所述的方法,其中接收所述指示包括:接收应纠正所述翻转位的指示,并且其中处理所述翻转位包括在所述翻转位纠错组件处纠正所述翻转位的错误。
3.根据权利要求1所述的方法,其进一步包括:
至少部分地基于处理所述翻转位,将多个数据位通过第二输出线传输到所述翻转决定组件。
4.根据权利要求1所述的方法,其进一步包括:
至少部分地基于将所述经处理的翻转位传输到所述翻转决定组件,将多个数据位通过第二输出线传输到所述翻转决定组件。
5.根据权利要求4所述的方法,其中将所述多个数据位通过所述第二输出线传输到所述翻转决定组件包括:
至少部分地基于将所述经处理的翻转位通过所述输出线直接传输到所述翻转决定组件,将所述多个数据位通过所述第二输出线直接传输到所述翻转决定组件。
6.根据权利要求1所述的方法,其进一步包括:
在数据位纠错组件处接收是否应对数据位进行纠错的第二指示;
至少部分地基于接收所述第二指示,在所述数据位纠错组件处纠正所述数据位;和
将所述经纠正的数据位通过第二输出线传输到所述翻转决定组件。
7.一种设备,其包括:
翻转位纠错组件,其与错误定位器组件耦合;
翻转决定组件,其通过输出线直接与所述翻转位纠错组件耦合,所述翻转位纠错组件用于:
从所述错误定位器组件接收翻转位的翻转位错误的指示;
至少部分地基于接收所述翻转位错误的所述指示,纠正所述翻转位错误;和
将所述经纠错的翻转位通过所述输出线直接传输到所述翻转决定组件。
8.根据权利要求7所述的设备,其中所述输出线包括:
所述翻转位纠错组件和所述翻转决定组件之间的专用输出线,其中所述翻转位纠错组件能够操作以将所述经纠错的翻转位通过所述专用输出线直接传输到所述翻转决定组件。
9.根据权利要求7所述的设备,其中所述输出线包括:
所述翻转位纠错组件和所述翻转决定组件之间的单向输出线,其中所述翻转位纠错组件能够操作以将所述经纠错的翻转位通过所述单向输出线直接传输到所述翻转决定组件。
10.一种方法,其包括:
在翻转决定组件处,经由第一输出线从翻转位纠错组件直接接收经纠错的翻转位;
在所述翻转决定组件处,经由第二输出线从数据位纠错组件接收一或多个数据位;和
在所述翻转决定组件处,至少部分地基于接收所述经纠错的翻转位并接收所述一或多个数据位,确定是否反转所述一或多个数据位。
11.根据权利要求10所述的方法,其中经由所述第二输出线接收所述一或多个数据位包括:
在接收所述经纠错的翻转位之后,接收所述一或多个数据位中的至少一些。
12.根据权利要求10所述的方法,其中经由所述第一输出线接收所述经纠错的翻转位包括:
经由单向输出线接收所述经纠错的翻转位,并且其中经由所述第二输出线接收所述一或多个数据位包括:
经由双向输出线接收所述一或多个数据位。
13.根据权利要求10所述的方法,其中接收所述经纠错的翻转位并接收所述一或多个数据位包括:
并行接收所述经纠错的翻转位和所述一或多个数据位中的至少一些。
14.根据权利要求10所述的方法,其进一步包括:
在所述翻转决定组件处,至少部分地基于接收所述一或多个数据位和所述经纠错的翻转位,使用配置逻辑准则来确定输出值;和
将所述输出值的指示符传输到数据总线决定组件。
15.根据权利要求14所述的方法,其进一步包括:
至少部分地基于所述输出值和所述经纠错的翻转位,从所述翻转决定组件传输是否反转所述一或多个数据位的第二指示符。
16.根据权利要求14所述的方法,其中在所述翻转决定组件处,使用所述配置逻辑准则来确定所述输出值包括:
将所接收的数据位与所述配置逻辑准则进行比较,以确定所接收的第一类型的数据位的逻辑状态的数量是否大于阈值。
17.根据权利要求16所述的方法,其中在所述翻转决定组件处,使用所述配置逻辑准则来确定所述输出值包括:
使用包括异或(XOR)组件的逻辑组件来比较所述一或多个数据位中的至少一些和所述经纠错的翻转位。
18.一种设备,其包括:
翻转决定组件;
翻转位纠错组件,其与所述翻转决定组件耦合并且被配置成将一或多个翻转位通过耦合所述翻转位纠错组件和所述翻转决定组件的第一输出线直接传输到所述翻转决定组件;和
数据位纠错组件,其与所述翻转决定组件耦合并且被配置成将一或多个数据位通过第二输出线传输到所述翻转决定组件。
19.根据权利要求18所述的设备,其中所述翻转决定组件被配置成:
至少部分地基于通过所述第二输出线接收的所述一或多个数据位或通过所述第一输出线接收的所述一或多个翻转位中的至少一种,确定是否应反转所述一或多个数据位。
20.根据权利要求18所述的设备,其中所述数据位纠错组件通过所述第二输出线直接与所述翻转决定组件耦合。
21.根据权利要求18所述的设备,其中所述数据位纠错组件和所述翻转位纠错组件被配置成:
接收纠错状态的指示,并且响应于接收所述指示,分别通过所述第二输出线传输所述一或多个数据位并通过所述第一输出线传输所述一或多个翻转位。
22.根据权利要求21所述的设备,其中所述数据位纠错组件和所述翻转位纠错组件分别被配置成同时接收所述一或多个数据位和所述一或多个翻转位。
23.根据权利要求18所述的设备,其中所述翻转决定组件包括:
存储逻辑准则,其被配置成输出指示是否反转所述一或多个数据位的数据位反转决定,所述设备进一步包括:
数据总线决定组件,其与所述翻转决定组件耦合,被配置成从所述翻转决定组件接收所述翻转决定组件输出值的指示符。
24.根据权利要求23所述的设备,其中所述翻转决定组件被配置成:
将所接收的数据位与所述配置逻辑准则进行比较,以确定所接收的第一类型的数据位的逻辑状态的数量满足阈值;和
输出所接收的所述第一类型的数据位的逻辑状态的数量满足所述阈值的指示。
25.根据权利要求18所述的设备,其中所述第一输出线具有第一传输速度,并且所述第二输出线具有比所述第一传输速度慢的第二传输速度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/199,773 US10951232B2 (en) | 2018-11-26 | 2018-11-26 | Error correction bit flipping scheme |
US16/199,773 | 2018-11-26 | ||
PCT/US2019/058141 WO2020112285A1 (en) | 2018-11-26 | 2019-10-25 | Error correction bit flipping scheme |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113272907A true CN113272907A (zh) | 2021-08-17 |
Family
ID=70770024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980086444.2A Pending CN113272907A (zh) | 2018-11-26 | 2019-10-25 | 纠错位翻转方案 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10951232B2 (zh) |
EP (1) | EP3888090A4 (zh) |
JP (1) | JP2022507988A (zh) |
KR (1) | KR20210079388A (zh) |
CN (1) | CN113272907A (zh) |
WO (1) | WO2020112285A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181710A (zh) * | 2020-09-11 | 2021-01-05 | 厦门大学 | 一种基于比特翻转的固态盘数据存储方法和装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10951232B2 (en) * | 2018-11-26 | 2021-03-16 | Micron Technology, Inc. | Error correction bit flipping scheme |
KR102588969B1 (ko) * | 2019-03-19 | 2023-10-16 | 에스케이하이닉스 주식회사 | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 |
CN112712838A (zh) * | 2019-10-25 | 2021-04-27 | 长鑫存储技术(上海)有限公司 | 读操作电路、半导体存储器和读操作方法 |
US20230267043A1 (en) * | 2022-02-23 | 2023-08-24 | Micron Technology, Inc. | Parity-based error management for a processing system |
US11934267B1 (en) | 2022-08-28 | 2024-03-19 | Micron Technology, Inc. | Data inversion and unidirectional error detection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060006A (zh) * | 2006-02-27 | 2007-10-24 | 英特尔公司 | 用于使用相同存储器类型来支持检错模式和非检错模式的系统、方法和设备 |
WO2011030410A1 (ja) * | 2009-09-09 | 2011-03-17 | 株式会社 東芝 | メモリ装置 |
US20120198313A1 (en) * | 2011-01-31 | 2012-08-02 | Everspin Technologies, Inc. | Method of reading and writing to a spin torque magnetic random access memory with error correcting code |
CN104583964A (zh) * | 2012-09-28 | 2015-04-29 | 英特尔公司 | 与用于编码的数据的纠错相关联的技术 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10135847A (ja) * | 1996-10-25 | 1998-05-22 | Nec Corp | Atm通信装置の並列型ヘッダ誤り訂正回路およびヘッダ誤り訂正方法 |
KR101466270B1 (ko) | 2008-09-19 | 2014-11-28 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법 |
JP5303325B2 (ja) * | 2009-03-18 | 2013-10-02 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
US8677211B2 (en) * | 2010-12-23 | 2014-03-18 | International Business Machines Corporation | Data bus inversion using spare error correction bits |
JP5942781B2 (ja) | 2012-04-16 | 2016-06-29 | ソニー株式会社 | 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法 |
US9582354B2 (en) * | 2014-01-28 | 2017-02-28 | Infineon Technologies Ag | Apparatus and method for improving data storage by data inversion |
US9501352B2 (en) * | 2014-03-05 | 2016-11-22 | Kabushiki Kaisha Toshiba | Memory device |
WO2016063592A1 (ja) * | 2014-10-24 | 2016-04-28 | ソニー株式会社 | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 |
US9729171B2 (en) | 2015-09-24 | 2017-08-08 | Intel Corporation | Techniques for soft decision decoding of encoded data |
US10075190B2 (en) | 2015-10-27 | 2018-09-11 | Sandisk Technologies Llc | Adaptive scheduler for decoding |
US10210040B2 (en) * | 2016-01-28 | 2019-02-19 | Nxp Usa, Inc. | Multi-dimensional parity checker (MDPC) systems and related methods for external memories |
US9923579B2 (en) * | 2016-03-08 | 2018-03-20 | International Business Machines Corporation | Clock path technique for using on-chip circuitry to generate a correct encode pattern to test the on-chip circuitry |
US10116333B2 (en) | 2016-07-29 | 2018-10-30 | Sandisk Technologies Llc | Decoder with parallel decoding paths |
KR20180020006A (ko) * | 2016-08-17 | 2018-02-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6606039B2 (ja) * | 2016-09-09 | 2019-11-13 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10148287B2 (en) | 2016-11-08 | 2018-12-04 | SK Hynix Inc. | Bit-flipping LDPC decoding algorithm with hard channel information |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
US10523236B2 (en) * | 2017-11-21 | 2019-12-31 | Silicon Motion, Inc. | Method employed in LDPC decoder and the decoder |
US10802909B2 (en) | 2018-08-17 | 2020-10-13 | Micron Technology, Inc. | Enhanced bit flipping scheme |
US10951232B2 (en) * | 2018-11-26 | 2021-03-16 | Micron Technology, Inc. | Error correction bit flipping scheme |
US11018695B1 (en) * | 2019-11-11 | 2021-05-25 | SK Hynix Inc. | Fast-converging bit-flipping decoder for low-density parity-check codes |
US11184024B2 (en) * | 2019-12-02 | 2021-11-23 | SK Hynix Inc. | Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes |
US11385833B2 (en) * | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
-
2018
- 2018-11-26 US US16/199,773 patent/US10951232B2/en active Active
-
2019
- 2019-10-25 JP JP2021529440A patent/JP2022507988A/ja active Pending
- 2019-10-25 EP EP19890840.2A patent/EP3888090A4/en not_active Withdrawn
- 2019-10-25 CN CN201980086444.2A patent/CN113272907A/zh active Pending
- 2019-10-25 KR KR1020217018717A patent/KR20210079388A/ko active IP Right Grant
- 2019-10-25 WO PCT/US2019/058141 patent/WO2020112285A1/en unknown
-
2021
- 2021-02-08 US US17/170,259 patent/US11336298B2/en active Active
-
2022
- 2022-04-21 US US17/726,349 patent/US11799496B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060006A (zh) * | 2006-02-27 | 2007-10-24 | 英特尔公司 | 用于使用相同存储器类型来支持检错模式和非检错模式的系统、方法和设备 |
WO2011030410A1 (ja) * | 2009-09-09 | 2011-03-17 | 株式会社 東芝 | メモリ装置 |
US20120198313A1 (en) * | 2011-01-31 | 2012-08-02 | Everspin Technologies, Inc. | Method of reading and writing to a spin torque magnetic random access memory with error correcting code |
CN104583964A (zh) * | 2012-09-28 | 2015-04-29 | 英特尔公司 | 与用于编码的数据的纠错相关联的技术 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181710A (zh) * | 2020-09-11 | 2021-01-05 | 厦门大学 | 一种基于比特翻转的固态盘数据存储方法和装置 |
CN112181710B (zh) * | 2020-09-11 | 2022-03-29 | 厦门大学 | 一种基于比特翻转的固态盘数据存储方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3888090A1 (en) | 2021-10-06 |
US20210167798A1 (en) | 2021-06-03 |
US10951232B2 (en) | 2021-03-16 |
JP2022507988A (ja) | 2022-01-18 |
US20220247428A1 (en) | 2022-08-04 |
US11799496B2 (en) | 2023-10-24 |
US11336298B2 (en) | 2022-05-17 |
KR20210079388A (ko) | 2021-06-29 |
WO2020112285A1 (en) | 2020-06-04 |
US20200169269A1 (en) | 2020-05-28 |
EP3888090A4 (en) | 2022-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102270100B1 (ko) | 향상된 비트 플립핑 방식 | |
US11799496B2 (en) | Error correction bit flipping scheme | |
JP2019526845A (ja) | 誤り訂正符号イベント検出 | |
US11709731B2 (en) | Direct-input redundancy scheme with adaptive syndrome decoder | |
US11740964B2 (en) | Direct-input redundancy scheme with dedicated error correction code circuit | |
CN114072772A (zh) | 具有快速数据存取的错误校正存储器装置 | |
US20200341841A1 (en) | Error correction code scrub scheme | |
CN117743021A (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 |