CN114333967A - 存储装置 - Google Patents
存储装置 Download PDFInfo
- Publication number
- CN114333967A CN114333967A CN202111121814.7A CN202111121814A CN114333967A CN 114333967 A CN114333967 A CN 114333967A CN 202111121814 A CN202111121814 A CN 202111121814A CN 114333967 A CN114333967 A CN 114333967A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- read
- cycle
- memory cell
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- 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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0061—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- 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/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1057—Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1069—I/O lines read out arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种存储装置,包括能够保持数据的存储单元,以及能够生成校正码并基于所述校正码检测错误的ECC电路。通过流水线操作访问所述存储单元。所述流水线操作包括至少四个流水线阶段,包括:从所述存储单元读取数据的读周期、在ECC电路中针对所述存储单元执行所述校正码的生成或错误检测的ECC周期、期间不执行针对与所述存储单元有关的数据的处理的等待周期、以及将数据写入所述存储单元的写周期。
Description
技术领域
本公开涉及一种存储装置。
背景技术
由于信息处理的速度加快、可靠性提高以及复杂性增加,要求在存储器系统中执行错误校正。近年来,人们期望将根据电阻值的差异来存储“0”数据或“1”数据的电阻变化型存储器作为下一代存储器。电阻变化型存储器包括磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)、相变RAM(PCM)等。它们在改变电阻值的机制上是不同的。
MRAM具有作为构成元件的磁隧道结(MTJ)。MTJ具有在固定层和自由层之间设置绝缘层的配置。MTJ通过隧道磁阻效应来存储数据,在隧道磁阻效应中,通过MTJ的电流路径上的电阻的大小取决于两种状态,即,自由层的磁化状态是平行于固定层的磁化方向还是反平行于固定层的磁化方向。通过自旋转移力矩(STT)方法执行数据的重写,在该方法中,将电子自旋力矩施加到自由层以引起磁化反转。
ReRAM包括夹在电极之间的金属氧化物薄膜。然后,通过向金属氧化物薄膜施加电压,金属离子被沉积为长丝,并且在该氧化物薄膜中生成导电路径。存储单元的电阻值根据导通路径的存在或缺失而不同,并且根据电阻值的差异来存储数据。
PCM通过利用物质的晶相和非晶相之间的电阻值的差异来存储数据。在PCM中,电阻变化层(例如,硫族化物)可以通过使电流流动而被快速加热和冷却以从晶相改变为非晶相,并且可以通过将结晶温度保持一定时间段来从非晶相返回到晶相。
在任何存储器中,通过使电流流动并读取存储单元的电阻值来读取数据。也就是说,在重写数据时使较大的电流流动,而在读取数据时使较小的电流流动。也就是说,在重写和读取数据时,对电压和电流的精确控制非常重要。因此,在读取期间可能会发生写错误、读错误或数据损坏(读干扰)。因此,为了提高操作可靠性,优选使用错误校正码。
错误校正码通过将k位码添加到m位数据(其中m、k和t是1或更大的自然数)来实现t位错误校正。校正能力通过最小汉明(Hamming)距离dmin(在(m+k)位的码字中具有不同值的位的数目的最小值)定义如下。
dmin≥2t+1
例如,在日本专利申请公开号2018-152146和国际公开号WO2007/046349中描述了与如上所述的MRAM和错误校正有关的技术。
发明内容
根据本发明的一个方面,提供了一种存储装置,包括能够保持数据的存储单元,以及能够生成校正码并基于所述校正码检测错误的ECC电路。通过流水线操作访问所述存储单元。所述流水线操作包括至少四个流水线阶段,包括:从所述存储单元读取数据的读周期、在所述ECC电路中针对所述存储单元执行所述校正码的生成或错误检测的ECC周期、期间不执行对与所述存储单元有关的数据的处理的等待周期、以及将数据写入所述存储单元的写周期。
附图说明
图1是根据本公开的第一实施例的处理器系统的框图;
图2是根据本公开的第一实施例的存储单元阵列的电路图。
图3A是根据本公开的第一实施例的存储单元的示意图;
图3B是根据本公开的第一实施例的存储单元的另一示意图;
图4A是根据本公开的第一实施例的主控读操作的流程图;
图4B是根据本公开的第一实施例的主控写操作的流程图;
图4C是根据本公开的第一实施例的主控读操作的另一流程图;
图4D是根据本公开的第一实施例的主控写操作的另一流程图;
图4E是根据本公开的第一实施例的主控写操作和主控读操作的流程图;
图5是当访问根据本公开的第一实施例的存储装置时的各种信号的时序图;
图6是根据本公开的第二实施例的处理器系统的框图;
图7是根据本公开的第二实施例的主控写操作的流程图;
图8是根据本公开的第二实施例的主控写操作的概念图;
图9是根据本公开的第三实施例的主控写操作的流程图;
图10是当访问根据本公开的第三实施例的存储装置时的各种信号的时序图;
图11A是根据本公开的第四实施例的存储装置的框图;
图11B是根据本公开的第四实施例的存储装置的另一框图;
图11C是根据本公开的第四实施例的存储装置的另一框图;
图11D是根据本公开的第四实施例的存储装置的另一框图;
图11E是根据本公开的第四实施例的存储装置的另一框图;
图11F是根据本公开的第四实施例的存储装置的另一框图;
图12A是根据本公开的第四实施例的存储装置的另一框图;
图12B是根据本公开的第四实施例的存储装置的另一框图;
图12C是根据本公开的第四实施例的存储装置的另一框图;
图12D是根据本公开的第四实施例的存储装置的另一框图;
图12E是根据本公开的第四实施例的存储装置的另一框图;
图12F是根据本公开的第四实施例的存储装置的另一框图;
图13A是根据本公开的第四实施例的存储装置的另一框图;
图13B是根据本公开的第四实施例的存储装置的另一框图;
图13C是根据本公开的第四实施例的存储装置的另一框图;
图13D是根据本公开的第四实施例的存储装置的另一框图;
图13E是根据本公开的第四实施例的存储装置的另一框图;
图14是根据本公开的第一至第四实施例的修改示例的处理器系统的框图;以及
图15是根据本公开的第一至第四实施例的修改示例的另一处理器系统的框图。
具体实施方式
在下文中,将参照附图描述本公开的实施例。在附图中,相同或等效的元件将由相同的附图标记表示,将省略其赘述。
<第一实施例>
将描述根据本公开的第一实施例的存储装置。
《配置》
首先,将参照图1描述根据本实施例的存储装置的配置。图1是例如根据本实施例的处理器系统1的框图。
如图所示,处理器系统1包括总线主控装置10和存储装置20,二者都经由总线可通信地彼此连接。总线主控装置10例如是处理器(诸如CPU或DMA控制器)。总线主控装置10指示存储装置20写入或读取数据。存储装置20例如是电阻变化型非易失性存储器,并且在本示例中是STT-MRAM。例如,存储装置20用作处理器的高速缓冲存储器或主存储器。
总线主控装置10向存储装置20发送时钟和控制信号,并且还在写入期间向存储装置20发送写入数据。存储装置20根据从总线主控装置10接收的信号操作,在写入期间存储接收到的写入数据,并且在读取期间将从指定地址读取的数据传送到总线主控装置10。
接下来,将描述存储装置20的配置的细节。如图1所示,存储装置20包括存储单元阵列21、读取地址缓冲器22、写入地址缓冲器23、解码器(行解码器和列解码器)24、写入数据缓冲器25、读取数据缓冲器26、读出放大器27和写入驱动器28,并且设置有错误检查和校正(ECC)电路29、选择器30、31和32以及控制器33。
存储单元阵列21包括多个存储单元。存储单元布置成矩阵并且与行和列相关联。存储单元以非易失性方式存储数据。稍后将参照图2描述存储单元阵列21的配置的细节。
地址缓冲器22保持在数据读操作和数据写操作期间从总线主控装置10接收的存储单元阵列21的地址(行地址和列地址)。写入地址缓冲器23从读取地址缓冲器22接收地址并保持该地址。在下文中,读取地址缓冲器22和写入地址缓冲器23可以分别被简称为地址缓冲器22和地址缓冲器23。
选择器30基于例如来自控制器33的指令选择由地址缓冲器22或23保持的地址。然后,选择器30将所选地址传送到解码器24。
解码器24对从选择器30接收的行地址和列地址进行解码。然后,解码器24基于解码结果选择存储单元阵列21中的行方向和列方向。利用这种配置,选择作为读目标或写目标的存储单元。在下文中,将解码器24的选择行方向的单元称为行解码器24A,将解码器24的选择列方向的单元称为列解码器24B。
读出放大器27从所选存储单元读取数据,读出并放大读取的数据。
写入驱动器28基于写入数据向所选存储单元施加电压或提供电流。利用这种配置,将数据写入所选存储单元。
ECC电路29对读取数据和写入数据执行ECC处理。ECC电路29包括错误校正电路34和校验码生成器35。校验码生成器35基于写入数据时的写入数据生成冗余位(例如,奇偶校验位)。然后,生成的奇偶校验位被添加到写入数据,并且这个具有奇偶校验位的写入数据被传送到写入驱动器28。错误校正电路34还从读出放大器27接收读取数据。然后,错误校正电路34基于接收到的读取数据生成校验子并检测错误。然后,当检测到错误时,错误校正电路34对该错误进行校正。
写入数据缓冲器25将写入数据保持在存储单元中。读取数据缓冲器26保持从存储单元读取的数据。在下文中,写入数据缓冲器25和读取数据缓冲器26可以分别被简称为数据缓冲器25和数据缓冲器26。
选择器32基于例如控制器33的指令来选择ECC电路29的错误校正电路34的输出或在写入数据缓冲器25中保持的数据。然后,选择器32将所选数据传送到读取数据缓冲器26。
选择器31基于例如控制器33的指令来选择从总线主控装置10接收的写入数据或在读取数据缓冲器26中保持的数据。然后,选择器31将所选数据传送到写入数据缓冲器25。
控制器33控制整个存储装置20的操作。例如,控制器33与从总线主控装置10接收的时钟同步操作。然后,控制器33控制选择器30、31和32的操作,如上所述。控制器33通过流水线操作在存储装置20中执行数据写操作和数据读操作。稍后将参照图4A和后续附图描述该操作的细节。
图2是根据本实施例的存储单元阵列21的电路图的局部区域的电路图。如图所示,存储单元阵列21包括布置成矩阵的多个存储单元MC。每个存储单元MC包括选择晶体管ST和存储元件ME。例如,选择晶体管ST是MOS晶体管。存储元件ME是可变电阻元件,并且在本示例中是MTJ元件。然后,选择晶体管ST的源极连接到存储元件ME的一端。
在存储单元阵列21中,同一行中的存储单元MC的选择晶体管ST的栅极共同连接到相同的字线WLj(j是从1到N的自然数,N是2或更大的自然数)。同一列中的存储单元MC的选择晶体管ST的漏极共同连接到相同的位线BLk(k是从1到M的自然数,并且M是2或更大的自然数)。此外,同一列中的存储单元MC的存储元件ME的另一端共同连接到相同的源极线SLk。
在上述配置中,字线WL中的一条在数据写操作和数据读操作期间由行解码器24A进行选择。通过行解码器24A将电压施加到所选字线WL,并且接通(ON)连接到所选字线WL的选择晶体管ST。
在数据写操作和数据读操作期间,由列选择器(未示出)选择位线BL或源极线SL。列选择器的选择操作基于列解码器24B中的解码结果。然后,当从存储单元MC读取数据时,所选位线BL连接到读出放大器(S/A)27,并且所选源极线SL接地。当将数据写入存储单元MC时,所选位线BL和源极线SL连接到写入驱动器(W/D)28。
图3A和图3B是存储单元MC的示意图,并且特别关注MTJ元件的配置。如图所示,MTJ元件包括两个铁磁性薄膜40和41以及这两个铁磁性薄膜之间的隧道绝缘薄膜42。铁磁性薄膜40是固定层(也称为基准层),其磁化方向是固定的。另一方面,铁磁性薄膜41是自由层(也称为存储层),其磁化方向可以通过电流改变。在本示例中,固定层40连接到选择晶体管ST的源极,并且自由层41连接到位线BL。
MTJ元件可以采取两种状态,如图3A和图3B所示。图中,在铁磁性薄膜40和41上表示的箭头指示磁化方向。在图3A的示例中,固定层40的磁化方向和自由层41的磁化方向平行。因此,当两层的磁化方向处于平行状态时,位线BL和源极线SL之间的电阻值较小。相反,在图3B的示例中,固定层40的磁化方向和自由层41的磁化方向彼此相反。这样,当两层的磁化方向处于反平行状态时,位线BL和源极线SL之间的电阻值较大。MTJ元件利用电阻值的这种变化来保持“0”数据和“1”数据。
通过向MTJ元件提供电流来执行数据的重写。例如,通过使恒定电流从位线BL流向源极线SL,使MTJ元件进入平行状态。相反,通过使恒定电流从源极线SL流向位线BL,使MTJ元件进入反平行状态。然后,通过写入驱动器28将电流提供给MTJ元件,并且基于写入数据确定通过写入驱动器28使其流动的电流的方向。
数据的读取通过检测电流是否流过位线BL来执行。也就是说,当MTJ元件处于平行状态时,电流经由存储单元MC从位线BL流向源极线SL。另一方面,当MTJ元件处于反平行状态时,几乎没有电流流动。读出放大器27读出并放大该电流差值。
在图3A和3B的示例中,固定层40设置在源极线SL侧,而自由层41设置在位线BL侧。然而,自由层41可以设置在源极线SL侧,而固定层40可以设置在位线BL侧。
《操作》
接下来,将描述根据本实施例的存储装置20的操作。根据本实施例的对应于来自总线主控装置10的写命令的存储装置20的操作包括从存储单元MC读取数据以及向存储单元MC写入数据。类似地,对应于来自总线主控装置10的读命令的存储装置20的操作还包括向存储单元MC写入数据以及从存储单元MC读取数据。
因此,在下文中,响应于从总线主控装置10接收的写命令和读命令执行的一系列处理分别被称为主控写操作和主控读操作。利用这种配置,主控读操作和主控写操作分别与用于从存储单元MC读取数据的读操作和用于向存储单元MC写入数据的写操作区分开。
首先,参照图4A描述主控读操作。图4A是示出根据本实施例的主控读操作的流程图。在图4A中,由双实线框描述的步骤是读出放大器27操作的阶段。由虚线框和实线框描述的步骤是写入驱动器28操作的阶段。
如图所示,主控读操作包括四个流水线阶段。这四个流水线阶段包括:执行读周期的第一流水线阶段、执行ECC周期的第二流水线阶段、执行等待周期的第三流水线阶段以及执行写周期的第四流水线阶段。
首先,从总线主控装置10接收主控读命令的存储装置20在第一流水线阶段执行读周期。也就是说,从与总线主控装置10指定的地址对应的存储单元MC读取数据(步骤S10)。具体地说,从总线主控装置10发送的地址保持在地址缓冲器22中,选择器30选择在地址缓冲器22中保持的地址并将该地址传送到解码器24。行解码器24A选择任意字线WL,列解码器24B选择任意位线BL和源极线SL。然后,对所选位线BL充电,并将源极线SL接地。结果,读出放大器27读出流经所选位线BL的电流。例如,基于流经所选位线BL的电流,读出放大器27根据所选存储单元MC的电阻值是大于还是小于基准值来确定在所选存储单元MC中保持的数据是“0”还是“1”。
接下来,存储装置20在第二流水线阶段执行ECC周期。也就是说,错误校正电路34确定在步骤S10中读取的数据中是否存在错误,并且当检测到错误时对错误进行校正(步骤S11)。选择器32选择错误校正电路34,并且进行了错误校正的数据被传送到数据缓冲器26。然后,当第二流水线阶段结束时,数据作为来自存储装置20的读取数据被从数据缓冲器26输出到总线主控装置10。在第二流水线阶段,在数据缓冲器26中保持的数据通过选择器31和数据缓冲器25传送到校验码生成器35。然后,校验码生成器35基于传送的数据生成冗余数据(奇偶校验位)。
接下来,存储装置20在第三流水线阶段执行等待周期(步骤S12)。也就是说,至少解码器24、读出放大器27、写入驱动器28和ECC电路29不执行与主控读操作有关的操作。更具体地说,基于主控读命令,读出放大器27不执行读操作,写入驱动器28不向位线BL和源极线SL施加电压,并且ECC电路29不执行ECC处理。
接下来,存储装置20在第四流水线阶段执行写周期。也就是说,执行数据写操作(回写操作)(步骤S13)。在步骤S13中,选择器30选择从地址缓冲器22传送到地址缓冲器23的地址。然后,解码器24基于该地址选择任意字线WL、位线BL和源极线SL。然后,基于从校验码生成器35传送的数据,写入驱动器28在从位线BL到源极线SL的方向上或在相反方向上向所选存储单元MC提供电流。也就是说,当在步骤S11中的读取数据中发现错误时,在对应存储单元MC中保持的数据不按原样保留,而是将在步骤S11中校正的数据回写到存储单元MC。这是步骤S13的处理。
接下来,将参照图4B描述主控写操作。图4B是说明根据本实施例的主控写操作的流程的流程图。
如图所示,主控写操作包括四个流水线阶段。这四个流水线阶段包括:执行读周期的第一流水线阶段、执行等待周期的第二流水线阶段、执行ECC周期的第三流水线阶段以及执行写周期的第四流水线阶段。
首先,从总线主控装置10接收主控写命令的存储装置20在第一流水线阶段执行读周期。也就是说,从与总线主控装置10指定的地址对应的存储单元MC读取数据(步骤S20)。该操作与主控读操作中的步骤S10相同。然而,在步骤S20中,执行该操作直到在错误校正电路34中进行错误校正。
接下来,存储装置20在第二流水线阶段执行等待周期(步骤S21)。也就是说,至少解码器24、读出放大器27、写入驱动器28和ECC电路29不执行与主控写操作有关的操作。更具体地说,基于主控写命令,读出放大器27不执行读出操作,写入驱动器28不向位线BL和源极线SL施加电压,并且ECC电路29不执行ECC处理。
接下来,存储装置20在第三流水线阶段执行ECC周期。也就是说,执行ECC处理(步骤S22)。在第三流水线阶段,步骤S20中进行了错误校正的数据经由选择器32和31以及数据缓冲器26传送到数据缓冲器25。此外,从总线主控装置10接收的写入数据经由选择器31传送到数据缓冲器25。然后,在数据缓冲器25中,组合来自数据缓冲器26的数据和来自总线主控装置10的数据以生成写入数据。该操作用于当从总线主控装置10提供的数据小于生成奇偶校验位所需的位的数目时,用从数据缓冲器26获得的数据来补充缺失的位。这一点将在第四实施例中描述。随后,将获得的写入数据传送到校验码生成器35,并且校验码生成器35生成奇偶校验位。
然后,存储装置20在第四流水线阶段执行写周期。也就是说,执行数据写操作(步骤S23)。也就是说,将作为预定写单元的写入数据的位串和奇偶校验位写入连接到所选字线WL和所选位线BL的存储单元MC中。
接下来,将参照图4C、图4D和图4E描述当总线主控装置10连续发出主控读命令和/或主控写命令时存储装置20的流水线操作。图4C、图4D和图4E是分别示出连续发出主控读命令的情况、连续发出主控写命令的情况、以及连续发出主控写命令和主控读命令的情况的流程图。
首先,将参照图4C描述连续发出主控读命令的情况。如图所示,假设总线主控装置10首先针对地址ADD[n]发出第一主控读命令,然后针对地址ADD[m](n和m中的每一个都是1或更大的自然数)发出第二主控读命令。然后,存储装置20在时间t1至t2期间执行对应于第一主控读命令的第一流水线阶段,并从存储单元MC读取数据。
随后,存储装置20在时间t2至t3期间执行对应于第一主控读命令的第二流水线阶段,并执行错误校正和奇偶校验位生成。
接下来,在时间t3至t4期间,存储装置20执行对应于第一主控读命令的第三流水线阶段。也就是说,禁止访问与第一主控读命令有关的存储单元阵列21。与此同时,存储装置20执行对应于第二主控读命令的第一流水线阶段。在从时间t3到t4的时间段中,针对第一主控读命令执行等待周期,但针对第二主控读命令执行读周期。因此,与读操作有关的处理单元(解码器24或读出放大器27)不执行对应于第一主控读命令的处理,而是执行与对应于第二主控读命令的数据读取有关的处理。
接下来,在时间t4至t5期间,存储装置20执行对应于第一主控读命令的第四流水线阶段。也就是说,存储装置20基于第一主控读命令将进行了错误校正并添加了奇偶校验位的数据写入存储单元MC。与此同时,存储装置20执行对应于第二主控读命令的第二流水线阶段。
此后,存储装置20在时间t5至t6期间执行对应于第二主控读命令的第三流水线阶段,并在从时间t6开始的期间执行对应于第二主控读命令的第四流水线阶段。
这样,在两个连续的流水线操作中,读出放大器27操作的两个阶段(从时间t1至t2以及从时间t3至t4)和写入驱动器28操作的两个阶段(从时间t4至t5和从时间t6至始的时间)的四个阶段在时间上不重叠。因此,可以避免总线争用。
接下来,将参照图4D描述连续发出主控写命令的情况。如图所示,假设总线主控装置10首先针对地址ADD[n]发出第一主控写命令,然后针对地址ADD[m]发出第二主控写命令。然后,在时间t1至t2期间,存储装置20执行对应于第一主控写命令的第一流水线阶段,并且从存储单元MC读取数据。
随后,在时间t2至t3期间,存储装置20执行对应于第一主控写命令的第二流水线阶段。也就是说,禁止访问与第一主控写命令有关的存储单元阵列21。
接下来,在时间t3至t4期间,存储装置20执行对应于第一主控写命令的第三流水线阶段。也就是说,存储装置基于从总线主控装置10接收的数据和从数据缓冲器26接收的数据生成写入数据,并且进一步生成奇偶校验位。与此同时,存储装置20执行对应于第二主控写命令的第一流水线阶段。
接下来,在时间t4至t5期间,存储装置20执行对应于第一主控写命令的第四流水线阶段。也就是说,存储装置20基于第一主控写命令将进行了错误校正并添加了奇偶校验位的数据写入存储单元MC。与此同时,存储装置20执行对应于第二主控写命令的第二流水线阶段。在从时间t4到t5的时间段中,针对第二主控写命令执行等待周期,但针对第一主控写命令执行写周期。因此,与写操作有关的处理单元(解码器24或写入驱动器28)不执行对应于第二主控写命令的处理,而执行与对应于第一主控写命令的数据写入有关的处理。
此后,存储装置20在时间t5至t6期间执行对应于第二主控写命令的第三流水线阶段,并在从时间t6开始的期间执行对应于第二主控写命令的第四流水线阶段。
同样在本示例中,在两个连续的流水线操作中,读出放大器27操作的两个阶段(从时间t1至t2以及从时间t3至t4)和写入驱动器28操作的两个阶段(从时间t4至t5和从时间t6开始的时间)的四个阶段在时间上不重叠。
接下来,将参照图4E描述首先发出主控写命令并相继发出主控读命令的情况。如图所示,假设总线主控装置10首先针对地址ADD[n]发出主控写命令,然后针对地址ADD[m]发出主控读命令。即使在这种情况下,读出放大器27的操作阶段是从时间t1到t2的时间段和从时间t3到t4的时间段,并且写入驱动器28的操作阶段是从时间t4到t5的时间段和从时间t6开始的时间段。因此,抑制了这四个阶段的重叠。
图5是示出在总线主控装置10和存储装置20之间发送和接收的时钟CLK、地址ADD、命令CMD、读取数据RDAT和写入数据WDAT以及在存储装置20中执行的五个流水线PP1至PP5的状态的时序图。在图5中,示出了总线主控装置10顺序发出第一主控读命令RD1、第二主控读命令RD2、第一主控写命令WR1、第二主控写命令WR2和第三主控读命令RD3的情况。
如图所示,在时间t1,总线主控装置10将读目标地址ADD[n]连同主控读命令RD1一起发出。然后,在时间t1,存储装置20响应于对应于地址ADD[n]的主控读命令RD1执行第一流水线操作PP1。在时间t3,当ECC处理结束时,数据缓冲器26中的数据作为来自存储装置20的读取数据RDAT[n]被输出到总线主控装置10。
随后,在时间t3,总线主控装置10将读目标地址ADD[n+1]连同主控读命令RD2一起发出。然后,在时间t3,存储装置20响应于对应于地址ADD[n+1]的主控读命令RD2执行第二流水线操作PP2。在时间t5,当ECC处理结束时,数据缓冲器26中的数据被作为来自存储装置20的读取数据RDAT[n+1]被输出到总线主控装置10。
此外,在时间t5,总线主控装置10将写目标地址ADD[m]连同主控写命令WR1一起发出。然后,在时间t5,存储装置20响应于对应于地址ADD[m]的主控写命令WR1执行第三流水线操作PP3。然后,在时间t7,当从总线主控装置10接收到写入数据WDAT[m]时,执行ECC处理,并且在时间t8至时间t9期间将数据写入存储单元MC。这同样适用于后文。
《本实施例的效果》
如上所述,根据本实施例的存储装置可以提高操作可靠性。下面将描述这种效果。
根据本实施例的存储装置,包括读周期S10、ECC周期S11、等待周期S12和写周期S13的四个阶段和四种类型的流水线响应来自总线主控装置10的读请求。类似地,包括读周期S20、等待周期S21、ECC周期S22和写周期S23的四个阶段和四种类型的流水线响应来自总线主控装置10的写请求。
因此,在读取期间由错误校正引起的数据回写周期(写周期S13)可以与下一流水线操作的任何处理阶段平行执行,并且对于总线主控装置10是不可见的。也就是说,总线主控装置10可以发出下一个命令,而无需等待数据回写处理。因此,可以提高存储装置20的操作速度。在这种情况下,通过提供等待周期S12和S21,可以抑制总线主控装置10和存储装置20之间的总线与存储装置20内部的总线之间的争用。结果,当从总线主控装置10的角度来看时,可以抑制随机权重的生成。此外,可以在主控读操作和主控写操作之间使所需的周期数目(流水线阶段的数目)相同,并且可以实现对于需要恒定操作周期的单片微型计算机等非常合适的操作。在这方面,作为非易失性存储器并且可以高速操作的MRAM可以用作处理器的高速缓冲存储器。然后,通过将本实施例应用到用于这种应用的MRAM,可以提高处理器的操作可靠性。此外,在MRAM中,重要的是确保保持“0”数据的存储单元的电阻值和保持“1”数据的存储单元的电阻值之间有足够的差值。这是因为通过增大该差值,可以提高数据读取可靠性。然而,可能难以增加电阻值之间的差值。然后,当读取“0”数据时的读电流与当读取“1”数据时的读电流之间的差值变得相对较小,并且错误读取的可能性可能会增加。此外,当为了高速操作而缩短写入时间时,错误写入的可能性可能会增加。因此,通过使用如本实施例中的校正码,可以显著提高MRAM的操作可靠性。
此外,通过准备用于读取和写入的地址缓冲器和数据缓冲器,可以在读周期和写周期之间插入另一个操作周期(例如,ECC周期或等待周期),结果,可以实现上述四个流水线阶段。
此外,在这四个流水线阶段中,读出放大器27在前半部分操作(步骤S10和S20),写入驱动器28在后半部分操作(步骤S13和S23),因此可以不间断地执行四个流水线阶段。
<第二实施例>
接下来,将描述根据本公开的第二实施例的存储装置。在本实施例中,在从存储单元阵列21读取的数据的位串的、第一实施例中描述的主控读操作中,只有具有位错误的位才被回写到存储单元MC。下面将仅描述与第一实施例不同的点。
《配置》
图6是根据本实施例的处理器系统1的框图。如图所示,根据本实施例的存储装置20进一步包括旁路路径,用于将读出放大器27读取的数据传送到第一实施例中描述的图1中的写入驱动器28。其他配置类似于第一实施例的配置。
《操作》
图7是根据本实施例的主控读操作的流程图。如图所示,与第一实施例中描述的图4A的不同之处在于,在第四流水线阶段中比较来自存储单元MC的读取数据和经过错误校正后的数据(步骤S14)。
也就是说,在第四流水线阶段中,将添加了在第三流水线阶段中生成的奇偶校验位的校正后数据传送到写入驱动器28。在该实施例中,通过图6中描述的旁路路径将在第一流水线阶段中读取的数据传送到写入驱动器28。只要该传输定时不干扰下一个流水线操作,就可以在第一至第四流水线阶段中的任一个中执行该传输定时。然后,写入驱动器28将从校验码生成器35传送的数据与从读出放大器27传送的数据进行比较,并且仅在对应于其值改变的位的位线上执行写操作。
将使用图8中的具体示例来简要描述上述操作。图8是由写入驱动器28处理的数据的示意图。
如图所示,假设由读出放大器27读取的数据DAT是8位数据“00110011”。假设除数据DATP的奇偶校验位之外的、经过错误校正并添加了奇偶校验位的位是8位数据“00111011”。然后,写入驱动器28将8位数据DAT与8位数据DATP进行比较。然后,数据DAT和DATP之间唯一不同的位是位B5。也就是说,这意味着由读出放大器27读取的数据在位B5中有错误。因此,写入驱动器28禁止选择对应于其他位B1至B4和B6至B8的位线,并且仅将数据写入存储单元MC,该存储单元MC连接到对应于位B5的位线和对应于奇偶校验位的位线。
《本实施例的效果》
根据本实施例,写入驱动器28检测其中数据被反转的位,即,来自要进行回写的多个列(位线)的错误位。然后,将校正后的数据写入对应于其中数据被反转的位的存储单元MC中。因此,不要求向不要求重写的存储单元MC提供写电流。结果,可以抑制存储单元MC的劣化,并且可以提高数据可靠性。
在图8的示例中,对奇偶校验位的所有位进行回写。然而,同样对于奇偶校验位,可以只回写其值被改变的位。
<第三实施例>
接下来,将描述根据本公开的第三实施例的存储装置。在本实施例中,在第一实施例或第二实施例中描述的主控写操作中,执行验证写入存储单元MC中的数据。下面将仅描述与第一实施例和第二实施例不同的点。
《配置》
根据本实施例的存储装置20的配置如第二实施例中描述的图6所示,因此将省略其描述。
《操作》
图9是根据本实施例的主控写操作的流程图。如图所示,与第一实施例中描述的图4B不同的点如下。也就是说,主控写操作由六个流水线阶段执行,并且在第一实施例中描述的第一至第四流水线阶段之后顺序执行第五和第六流水线阶段(步骤S25和S26)。
在第五流水线阶段中,执行验证在步骤S23中写入的数据(步骤S25)。也就是说,存储装置20的控制器33对在步骤S23中写入了数据的存储单元MC执行数据读操作。该操作的细节与步骤S20中的相同。由读出放大器27读取的数据经由连接读出放大器27和写入驱动器28的旁路路径传送到写入驱动器28。
在第六流水线阶段中,写入驱动器28将在步骤S23中写入存储单元MC中的数据与在步骤S25中读取的数据进行比较。然后,作为比较的结果,仅针对不同位重写数据(步骤S26)。例如,假设在步骤S23中由写入驱动器28写入存储单元MC中的数据,换句话说,从ECC电路29接收的数据的净数据(除奇偶校验位以外的数据)是“00110011”。然后,假设在步骤S25中读取的数据是“00111011”。然后,可以看到从开始起的第五位数据不同于要写入的值。因此,在步骤S26中,写入驱动器28将数据“0”重写到对应于从开始起的第五位的存储单元MC。当然,如果任一位中存在错误,不仅该位,而且所有位(和奇偶校验位)都可以重写。也就是说,在步骤S25中修复数据,并且在步骤S26中将修复后的数据回写到存储单元MC(因此,步骤S26也可以被称为写修复周期)。
图10对应于第一实施例中描述的图5,并且示出总线主控装置10顺序发出第一主控写命令WR1、第二主控写命令WR2和主控读命令RD3的情况。
如图所示,首先,响应于地址ADD[m]的主控写命令WR1,在时间t1开始流水线操作PP1。接下来,响应于针对地址ADD[m+1]的主控写命令WR2,在时间t3开始流水线操作PP2。然后,响应于针对地址ADD[n+2]的主控读命令RD3,在时间t5开始流水线操作PP3。这样,当连续执行流水线操作时,控制器33根据需要将等待周期插入流水线操作PP1至PP3中的每一个中,以抑制总线争用。
在图10的示例中,示出了流水线操作PP1和PP2在8个流水线阶段中执行并且流水线操作PP3在7个流水线阶段中执行的情况。如图所示,在流水线操作PP1中,在时间t5至t7期间插入两个等待周期。在此期间,执行流水线操作PP2的ECC操作(步骤S22)和写操作(步骤S23),以及流水线操作PP3的读操作(步骤S10)和ECC操作(步骤S11)。类似地,在流水线操作PP2中,在时间t7至时间t9期间插入两个等待周期。在此期间,执行流水线操作PP1的验证操作(步骤S25)和写操作(步骤S26)。在流水线操作PP3中,在时间t8至t11期间插入三个等待周期。在此期间,执行流水线操作PP1的写操作(步骤S26)和流水线操作PP2的验证操作(步骤S25)和写操作(步骤S26)。
如上所述,通过恰当地提供等待周期,可以提高对存储单元阵列21的访问效率。
《本实施例的效果》
根据本实施例,在主控写操作中,验证写入的数据,并且重写具有写错误的位。因此,可以抑制写错误,并且可以提高主控写操作的可靠性。
<第四实施例>
接下来,将描述根据本公开的第四实施例的存储装置。本实施例涉及在第一实施例中的主控读操作和主控写操作期间存储装置20的操作细节。在下文中,将描述连续执行主控读操作的情况、连续执行主控写操作的情况、以及连续执行主控写操作和主控读操作的情况。
《主控读操作是连续的情况》
首先,将参照图11A至图11F描述主控读操作是连续的情况。图11A至图11F是存储装置20的框图,并且对应于图5中的时间t1至t7期间的操作。在图11A至图11F中,还示出了信号流,图中的实线箭头表示有效的信号流,虚线箭头表示信号不通过路径传送。这也适用于对下面描述的主控写操作被连续执行的情况以及下面描述的主控写操作和主控读操作被连续执行的情况的描述。
图11A对应于图5中的时间t1至t2。也就是说,存储装置20与时钟CLK同步地接收从总线主控装置10发送的第一主控读命令RD1和地址ADD1。地址ADD1被保持在地址缓冲器22中,控制器33进一步指示选择器30选择地址缓冲器22的输出。结果,地址ADD1被传送到解码器24,并且数据DAT1由读出放大器27从存储单元阵列21中的存储单元MC读取。
图11B对应于图5中的时间t2至t3。也就是说,存储装置20对从存储单元阵列21读取的数据DAT1执行ECC处理。也就是说,数据DAT1被从读出放大器27传送到错误校正电路34,并且对其错误进行校正。此外,控制器33指示选择器32选择错误校正电路34的输出。利用这种配置,经过错误校正后的数据DAT1被保持在数据缓冲器26中。此外,控制器33指示选择器32选择数据缓冲器26的输出。利用这种配置,经过错误校正后的数据DAT1被保持在数据缓冲器25中。此外,将数据DAT1从数据缓冲器25传送到校验码生成器35,并生成奇偶校验位。经过错误校正后的数据DAT1和奇偶校验位的组合被称为数据DATP1。在地址缓冲器22中保持的地址ADD1被传送到地址缓冲器23。
图11C对应于图5中的时间t3至t4。在此期间,基于主控读命令RD1的流水线操作PP1执行等待周期。也就是说,不执行基于主控读命令RD1的读出放大器27和写入驱动器28的操作。在时间t3,数据缓冲器26中保持的经过错误校正后的数据DAT1作为从存储装置20读出的数据RDAT1被输出到总线主控装置10。
在从时间t3到t4的时间段中,存储装置20与时钟CLK同步地接收从总线主控装置10发送的第二主控读命令RD2和地址ADD2。地址ADD2被保持在地址缓冲器22中,控制器33进一步指示选择器30选择地址缓冲器22的输出。结果,地址ADD2被传送到解码器24,并且数据DAT2由读出放大器27从存储单元阵列21中的存储单元MC读取。
图11D对应于图5中的时间t4至t5。也就是说,存储装置20将由校验码生成器35生成的关于流水线操作PP1的数据DATP1传送到写入驱动器28。根据来自控制器33的指令,选择器30选择在地址缓冲器23中保持的地址ADD1,并将该地址ADD1传送到解码器24。结果,数据DATP1被写入地址ADD1。
关于流水线操作PP2,执行图11B中所述的ECC处理。也就是说,将数据DAT2从读出放大器27传送到错误校正电路34,其错误被校正并进一步经由选择器32传送到数据缓冲器25和校验码发生器35,并且生成奇偶校验位。经过错误校正后的数据DAT2和奇偶校验位的组合被称为数据DATP2。在地址缓冲器22中保持的地址ADD2被传送到地址缓冲器23。
图11E对应于图5中的时间t5至t6。在此期间,基于主控读命令RD2的流水线操作PP2执行等待周期。也就是说,不执行基于主控读命令RD2的读出放大器27和写入驱动器28的操作。在时间t3,将数据缓冲器26中保持的经过错误校正后的数据DAT2作为来自存储装置20的读取数据RDAT2被输出到总线主控装置10。
图11F对应于图5中的时间t6至t7。也就是说,存储装置20将由校验码生成器35生成的数据DATP2传送到写入驱动器28。根据来自控制器33的指令,选择器30选择在地址缓冲器23中保持的地址ADD2,并将该地址ADD2传送到解码器24。结果,数据DATP2被写入地址ADD2。
《主控写操作是连续的情况》
接下来,将参考图12A至图12F描述主控写操作是连续的情况。图12A至图12F是存储装置20的框图,并且对应于图5中的时间t5至t11期间的操作。
图12A对应于图5中的时间t5至t6。也就是说,存储装置20与时钟CLK同步地接收从总线主控装置10发送的第一主控写命令WR1和地址ADD1。然后,与图11A的情况类似,地址ADD1被保持在地址缓冲器22中,并且地址ADD1进一步通过选择器30传送到解码器24。然后,通过读出放大器27从存储单元阵列21中的存储单元MC读取数据DAT1,并且通过错误校正电路34进一步校正数据DAT1的错误。
图12B对应于图5中的时间t6至t7。在此期间,基于主控写命令WR1的流水线操作PP3执行等待周期。也就是说,不执行基于主控写命令WR1的读出放大器27和写入驱动器28的操作。
图12C对应于图5中的时间t7至t8。也就是说,存储装置20与时钟CLK同步地接收从总线主控装置10发送的写入数据WDAT1并执行ECC处理。如图所示,选择器31基于控制器33的指令将从总线主控装置10发送的数据WDAT1传送到数据缓冲器25。此外,控制器33指示选择器32选择错误校正电路34的输出。利用这种配置,经过错误校正后的数据DAT1被保持在数据缓冲器26中。此外,控制器33指示选择器31选择数据缓冲器26的输出。利用这种配置,经过错误校正后的数据DAT1被传送到数据缓冲器25。数据WDAT1和DAT1被传送到数据缓冲器25的原因如下。也就是说,以特定固定位为单位生成奇偶校验位。在该示例中,假设例如以32位为单位生成奇偶校验位。然而,从总线主控装置10发送的数据WDAT1的位的数目可以不限于32位。例如,在图12C的示例中,数据WDAT1是8位。然后,用于奇偶校验位生成的位的数目(24位)是不充足的。因此,数据缓冲器25用数据DAT1补充缺少的24位,以生成32位的写入数据CBDAT1。然后,将数据CBDAT1从数据缓冲器25传送到校验码生成器35,并生成奇偶校验位。数据CBDAT1和奇偶校验位的组合被称为数据DATP1。
在从时间t7到t8的时间段中,存储装置20与时钟CLK同步地接收从总线主控装置10发送的第二主控写命令WR2和地址ADD2。地址ADD2被保持在地址缓冲器22中,控制器33进一步指示选择器30选择地址缓冲器22的输出。结果,地址ADD2被传送到解码器24,通过读出放大器27从存储单元阵列21中的存储单元MC读取数据DAT2,并且通过错误校正电路34来校正数据DAT12的错误。在那之前在地址缓冲器22中保持的地址ADD1被传送到地址缓冲器23。
图12D对应于图5中的时间t8至t9。也就是说,关于流水线操作PP3,存储装置20将由校验码生成器35生成的数据DATP1传送到写入驱动器28。根据来自控制器33的指令,选择器30选择在地址缓冲器23中保持的地址ADD1,并将该地址ADD1传送到解码器24。结果,数据DATP1被写入地址ADD1。
在时间t8至t9期间,基于主控写命令WR2的流水线操作PP4执行等待周期。也就是说,不执行基于主控写命令WR2的读出放大器27和写入驱动器28的操作。
图12E对应于图5中的时间t9至t10。也就是说,与图12C类似,存储装置20与时钟CLK同步地接收从总线主控装置10发送的写入数据WDAT2并执行ECC处理。如图所示,数据WDAT1被传送到数据缓冲器25,并且经过错误校正后的数据DAT2被从数据缓冲器26传送到数据缓冲器25。利用这种配置,例如,生成32位的写入数据CBDAT2。然后,将数据CBDAT2从数据缓冲器25传送到校验码生成器35,并生成奇偶校验位。数据CBDAT2和奇偶校验位的组合被称为数据DATP2。
图12F对应于图5中的时间t10至t11。也就是说,存储装置20将由校验码生成器35生成的数据DATP2传送到写入驱动器28。根据来自控制器33的指令,选择器30选择在地址缓冲器23中保持的地址ADD2,并将该地址ADD2传送到解码器24。结果,数据DATP2被写入地址ADD2。
《主控写操作和主控读操作是连续的情况》
接下来,将描述执行主控写操作和连续执行主控读操作的情况。该操作对应于图5中时间t7至t13期间的操作。
当要进行主控写操作的目标地址和要进行主控读操作的目标地址不同时,获得例如上述图12A至图12D和图11A至图11D的组合。也就是说,在时间t7至t8期间执行图12A中描述的操作,在时间t8至t9期间执行图12B中描述的操作。此后,在时间t9至t10的时间段中,针对主控写操作执行图12C中描述的ECC周期,并且针对主控读操作执行图11A中描述的读周期。在从时间t10到t11的时间段中,针对主控写操作执行图12D中描述的写周期,并且针对主控读操作执行图11B中描述的ECC周期。此后,针对主控读操作执行图11C和11D中描述的等待周期和写周期。
接下来,将描述要进行主控写操作的地址和要进行主控读操作的地址相同的情况。首先,在时间t7至t9期间,以与上述相同的方式执行参照图12A和图12B描述的操作。此后,同样在时间t9至t10期间,以与上述相同的方式执行图12C和图11A中描述的操作。这种状态如图13A所示。图13A与图12C的不同之处在于,从总线主控装置10发送主控读命令RD3,并且目标地址与前一个主控写命令WR2(ADD1)的目标地址相同。如参考图12C所述,在数据缓冲器25中,基于写入数据WDAT和校正后的读取数据DAT1生成数据CBDAT1。
接下来,在时间t10至t11期间,执行图13B至图13D所示的操作。首先,如图13B所示,数据CBDAT1被保持在数据缓冲器25中,而数据DATP1基于主控写命令WR2被写入存储单元MC,并且基于主控读指令读出的数据DAT1被保持在数据缓冲器26中。
接下来,如图13C所示,控制器33响应于主控写操作的目标地址与主控读操作的目标地址相同,使选择器31选择数据缓冲器26。结果,包括写入数据WDAT1的数据CBDAT1被传送到数据缓冲器26,并且在那之前在数据缓冲器26中保持的读取数据DAT1被驱逐。随后,如图13D所示,控制器33使选择器31选择数据缓冲器26并禁用选择器32。结果,数据DAT1被保持在数据缓冲器25中。也就是说,通过图13C和图13D所示的操作,交换在数据缓冲器25和26中保持的数据(CBDAT1和DAT1)。
图13E对应于图5中从时间t11至t12的时段。如图所示,执行等待周期,并且将数据缓冲器26中的数据CBDAT1作为存储装置20的读取数据RDAT1输出到总线主控装置10。
《本实施例的效果》
第一至第三实施例中描述的流水线阶段可以通过本实施例中描述的操作来实现。
如图4E所示,当连续执行主控写操作和主控读操作时,在主控写操作中的写周期(步骤S23)之前执行主控读操作中的读周期(步骤S10)。有鉴于此,在本实施例中,当要进行主控写操作和主控读操作的地址相同时,代替实际上从存储单元MC读取的数据DAT,通过主控写操作生成的写入数据CBDAT(参见图13C至13E)作为读取数据RDAT被输出到总线主控装置10。利用该配置,可以将在主控写操作中要写入的数据视为读取数据,并且可以将正确的数据输出到总线主控装置10。
省略对连续执行主控读操作和主控写操作的情况的描述。然而,在这种情况下,例如,可以针对主控读操作执行图11A到图11D的处理,并且可以针对主控写操作执行图12A到图12D的处理。在这种情况下,由于在主控读操作中的第一流水线阶段中读取数据,并且在主控写操作中的第四流水线阶段中写入数据,因此即使访问目标是相同的地址,也不存在特别的问题。
<修改示例等>
如上所述,根据第一实施例至第四实施例的存储装置,可以提高操作可靠性。虽然使用各种实施例进行如上所述的描述,但是实施例不限于上述实施例,并且可以对其进行各种修改。
例如,在上述实施例中,描述了以下情况作为示例:存储装置20包括一组存储单元阵列21、解码器24、读出放大器27、写入驱动器28和ECC电路29。然而,如图14所示,可以提供多个这样的组。图14是根据上述实施例的修改示例的处理器系统1的框图。如图所示,存储装置20包括多组存储单元阵列21、解码器24、读出放大器27、写入驱动器28和ECC电路29。这些组中的每个组被称为子阵列100。多个子阵列100共享地址缓冲器22和23、数据缓冲器25和26以及选择器30至32,并由控制器33控制。根据这种配置,由于针对每个存储单元阵列21设置了解码器24、读出放大器27、写入驱动器28和ECC电路29,因此可以同时对多个子阵列100的存储单元阵列21执行数据写入和读取。
此外,如图15所示,还可以为每个子阵列100提供地址缓冲器22和23、数据缓冲器25和26以及选择器30至32。在这种情况下,子阵列100可以彼此独立地操作,并且总线主控装置10可以并行地访问多个子阵列100。
在上述实施例中,MRAM被描述为存储装置20的示例。然而,存储装置20不限于MRAM,并且可以是例如ReRAM、PCM或其他非易失性存储器。
此外,尽管在图4A和图4B中示出了流水线阶段的示例,但是顺序可以不限于该顺序,并且可以根据需要添加等待周期或改变处理的顺序。只要不存在与其他流水线的总线争用,流水线阶段的顺序就不受限制。在图4C至图4E中,示出了连续两次执行从总线主控装置10进行访问的情况,但是访问次数不限于两次,并且数目不受限制。在上述实施例中,作为示例描述了总是从总线主控装置10访问存储装置20的情况,但是也可以包括不从总线主控装置10进行访问的周期(等待或待机状态)。
在上述实施例中,虽然将处理器系统1作为示例描述,但是例如,可以使用存储器系统来代替处理器系统1。在这种情况下,存储装置20可以是用于存储的存储器,总线主控装置10可以是诸如个人计算机或数码相机的主机装置。
虽然已经描述了目前被认为是本发明的某些实施例,但是应该理解,可以对其进行各种修改,并且意图是所附权利要求涵盖属于本发明的真正精神和范围的所有这样的修改。
本领域技术人员应该理解,各种修改、组合、子组合和改变可以根据设计要求和其他因素而发生,只要它们在所附权利要求或其等同物的范围内。
Claims (18)
1.一种存储装置,包括:
存储单元,其能够保持数据;以及
ECC电路,其能够生成校正码并基于所述校正码检测错误,
其中,所述存储单元通过流水线操作来访问,并且所述流水线操作包括至少四个流水线阶段,所述四个流水线阶段包括:
读周期,其从所述存储单元读取数据,
ECC周期,在所述ECC电路中针对所述存储单元执行所述校正码的生成或错误检测,
等待周期,在所述等待周期期间不执行对与所述存储单元有关的数据的处理,以及
写周期,将数据写入所述存储单元。
2.根据权利要求1所述的存储装置,其中,进一步包括:
至少两个或更多个地址缓冲器,
其中,所述地址缓冲器包括:
写入地址缓冲器,所述写入地址缓冲器能够保持在写入数据的操作期间从外部接收的所述存储单元的地址,以及
读取地址缓冲器,能够保持在读取数据的操作期间从外部接收的所述存储单元的地址。
3.根据权利要求2所述的存储装置,其中,进一步包括:
写入数据缓冲器,能够将写入数据保持在所述存储单元中;
读取数据缓冲器,能够保持来自所述存储单元的读取数据;
第一信号路径,所述第一信号路径能够将数据从所述读取数据缓冲器传送到所述写入数据缓冲器;和
第二信号路径,所述第二信号路径能够将数据从所述写入数据缓冲器传送到所述读取数据缓冲器。
4.根据权利要求1所述的存储装置,其中,
按照所述读周期、所述ECC周期、所述等待周期和所述写周期的顺序执行从所述存储单元读取数据的操作期间的所述流水线操作,以及
按照所述读周期、所述等待周期、所述ECC周期和所述写周期的顺序执行将数据写入所述存储单元的操作期间的所述流水线操作。
5.根据权利要求4所述的存储装置,其中,进一步包括:
读出放大器,读出来自所述存储单元的读取数据;以及
写入驱动器,将数据写入所述存储单元,
其中,所述读出放大器在至少四个流水线阶段中的所述读周期中操作,然后所述写入驱动器在所述至少四个流水线阶段中的所述写周期中操作。
6.根据权利要求1所述的存储装置,其中,
在向所述存储单元写入数据的操作期间,将在所述读周期中从所述存储单元读取的读取数据与从外部接收的写入数据进行比较,以及
作为所述比较的结果,当所述读取数据不同于所述写入数据时,所述写入数据被写入所述存储单元。
7.根据权利要求6所述的存储装置,进一步包括:
至少两个或更多个地址缓冲器,
其中,所述地址缓冲器包括:
写入地址缓冲器,能够保持在写入数据的操作期间从外部接收的所述存储单元的地址,以及
读取地址缓冲器,能够保持在读取数据的操作期间从外部接收的所述存储单元的地址。
8.根据权利要求7所述的存储装置,其中,进一步包括:
写入数据缓冲器,能够将写入数据保持在所述存储单元中;
读取数据缓冲器,能够保持来自所述存储单元的读取数据;
第一信号路径,能够将数据从所述读取数据缓冲器传送到所述写入数据缓冲器;和
第二信号路径,能够将数据从所述写入数据缓冲器传送到所述读取数据缓冲器。
9.根据权利要求6所述的存储装置,其中,
按照所述读周期、所述ECC周期、所述等待周期和所述写周期的顺序执行从所述存储单元读取数据的操作期间的所述流水线操作,以及
按照所述读周期、所述等待周期、所述ECC周期和所述写周期的顺序执行将数据写入所述存储单元的操作期间的所述流水线操作。
10.根据权利要求9所述的存储装置,其中,进一步包括:
读出放大器,读出来自所述存储单元的读取数据;以及
写入驱动器,将数据写入所述存储单元,
其中,所述读出放大器在至少四个流水线阶段中的所述读周期中操作,然后所述写入驱动器在所述至少四个流水线阶段中的所述写周期中操作。
11.根据权利要求1所述的存储装置,其中,
所述流水线操作中的流水线阶段的数目与到所述存储单元的数据写操作和来自所述存储单元的数据读操作之间是不同的。
12.根据权利要求11所述的存储装置,其中,进一步包括:
至少两个或更多个地址缓冲器,
所述地址缓冲器包括:
写入地址缓冲器,能够保持在写入数据的操作期间从外部接收的所述存储单元的地址,以及
读取地址缓冲器,能够保持在读取数据的操作期间从外部接收的所述存储单元的地址。
13.根据权利要求12所述的存储装置,其中,进一步包括:
写入数据缓冲器,能够将写入数据保持在所述存储单元中;
读取数据缓冲器,能够保持来自所述存储单元的读取数据;
第一信号路径,能够将数据从所述读取数据缓冲器传送到所述写入数据缓冲器;和
第二信号路径,能够将数据从所述写入数据缓冲器传送到所述读取数据缓冲器。
14.根据权利要求11所述的存储装置,其中,
在从所述存储单元读取数据的操作期间的所述流水线操作包括按照所述读周期、所述ECC周期、所述等待周期和所述写周期的顺序执行的至少四个流水线阶段,
在将数据写入所述存储单元的操作期间的所述流水线操作包括按照所述读周期、所述等待周期、所述ECC周期、所述写周期、验证读周期和写修复周期的顺序执行的至少六个流水线阶段,
在所述验证读周期中,读取并验证在所述写周期中写入所述存储单元中的数据,以及
在所述写修复周期中,将基于所述验证读周期中的验证结果的数据写入所述存储单元。
15.根据权利要求14所述的存储装置,其中,进一步包括:
读出放大器,读出来自所述存储单元的读取数据;以及
写入驱动器,将数据写入所述存储单元,
所述读出放大器在至少四个流水线级中的所述读周期中操作,然后所述写入驱动器在所述至少四个流水线级中的所述写周期中操作。
16.根据权利要求1、6和13中任一项所述的存储装置,其中,
所述存储装置是磁阻式随机存取存储器MRAM、电阻性随机存取存储器ReRAM和相变存储器PCM中的一个。
17.根据权利要求4所述的存储装置,其中,
当连续接收到将数据写入所述存储单元的写指令和从所述存储单元读取数据的读指令时,
所述存储装置将包括与所述写指令一起接收到的写入数据的第一数据作为对应于所述读指令的读取数据输出到外部。
18.根据权利要求17所述的存储装置,进一步包括:
写入数据缓冲器,能够将写入数据保持在所述存储单元中;
读取数据缓冲器,能够保持来自所述存储单元的读取数据;
第一信号路径,能够将数据从所述读取数据缓冲器传送到所述写入数据缓冲器;和
第二信号路径,能够将数据从所述写入数据缓冲器传送到所述读取数据缓冲器,
其中,当连续接收到将数据写入所述存储单元的所述写指令和从所述存储单元读取数据的所述读指令时,所述存储装置
使得包括与所述写指令一起接收到的写入数据的第一数据保持在所述写入数据缓冲器中,
使得在对应于所述读指令的所述读周期中从所述存储单元读取的第二数据保持在所述读取数据缓冲器中,
经由所述第二信号路径将所述第一数据传送到所述读取数据缓冲器,以及
经由所述第一信号路径将所述第二数据传送到所述写入数据缓冲器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/037,674 US11322221B2 (en) | 2020-09-30 | 2020-09-30 | Memory device with pipelined access |
US17/037674 | 2020-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114333967A true CN114333967A (zh) | 2022-04-12 |
Family
ID=80822959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111121814.7A Pending CN114333967A (zh) | 2020-09-30 | 2021-09-24 | 存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11322221B2 (zh) |
JP (1) | JP7300485B2 (zh) |
CN (1) | CN114333967A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11450392B2 (en) | 2019-12-17 | 2022-09-20 | Micron Technology, Inc. | Selective read disturb sampling |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04104345A (ja) * | 1990-08-23 | 1992-04-06 | Pfu Ltd | Ecc機構付主記憶装置の部分書き換えデータの書き込み制御方式 |
JPH05120113A (ja) * | 1991-10-25 | 1993-05-18 | Hitachi Ltd | 記憶制御方式 |
US6704230B1 (en) | 2003-06-12 | 2004-03-09 | International Business Machines Corporation | Error detection and correction method and apparatus in a magnetoresistive random access memory |
JP4703220B2 (ja) * | 2005-03-04 | 2011-06-15 | 株式会社東芝 | 半導体記憶装置 |
WO2007046349A1 (ja) | 2005-10-18 | 2007-04-26 | Nec Corporation | Mram、及びその動作方法 |
JP2007242162A (ja) * | 2006-03-09 | 2007-09-20 | Toshiba Corp | 半導体記憶装置 |
JP5202130B2 (ja) | 2008-06-24 | 2013-06-05 | 株式会社東芝 | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 |
JP5363644B2 (ja) * | 2010-02-16 | 2013-12-11 | 株式会社日立製作所 | 半導体装置 |
JP5204868B2 (ja) * | 2011-04-12 | 2013-06-05 | シャープ株式会社 | 半導体記憶装置 |
CN107003857B (zh) * | 2014-12-19 | 2019-06-18 | 美光科技公司 | 用于流水线处理具有纠错译码的存储器操作的方法 |
US10366774B2 (en) * | 2016-09-27 | 2019-07-30 | Spin Memory, Inc. | Device with dynamic redundancy registers |
JP2018152146A (ja) | 2017-03-09 | 2018-09-27 | 東芝メモリ株式会社 | 半導体記憶装置及びデータ読み出し方法 |
JP2018160166A (ja) | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステム及び抵抗変化型メモリ |
-
2020
- 2020-09-30 US US17/037,674 patent/US11322221B2/en active Active
-
2021
- 2021-09-24 CN CN202111121814.7A patent/CN114333967A/zh active Pending
- 2021-09-27 JP JP2021157276A patent/JP7300485B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US20220101939A1 (en) | 2022-03-31 |
JP7300485B2 (ja) | 2023-06-29 |
JP2022058239A (ja) | 2022-04-11 |
US11322221B2 (en) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929225B2 (en) | Semiconductor memory devices, memory systems including the same and methods of operating memory systems | |
US10198221B2 (en) | Methods of operating semiconductor memory devices with selective write-back of data for error scrubbing and related devices | |
EP3520108B1 (en) | A method of reading data from a memory device using dynamic redundancy registers | |
US10156995B2 (en) | Semiconductor memory devices and methods of operating the same | |
US9483348B2 (en) | Memory module, memory system having the same, and methods of reading therefrom and writing thereto | |
US9805827B2 (en) | Semiconductor memory devices, memory systems including the same and methods of operating the same | |
TWI528365B (zh) | 半導體記憶裝置 | |
US10191805B2 (en) | Semiconductor memory devices and memory systems including the same | |
US10249381B2 (en) | Semiconductor memory device and data write method | |
RU2682387C1 (ru) | Полупроводниковое запоминающее устройство | |
US20180074737A1 (en) | Memory device | |
US10452475B2 (en) | Memory system and resistance change type memory | |
US20160132388A1 (en) | Semiconductor memory device and ecc method thereof | |
US10204700B1 (en) | Memory systems and methods of operating semiconductor memory devices | |
JP7300485B2 (ja) | メモリデバイス | |
US20150067444A1 (en) | Semiconductor storage device and memory system | |
US7543211B2 (en) | Toggle memory burst | |
CN109712654B (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 | ||
CB02 | Change of applicant information |
Address after: No. 1, 2613, Quemoto cho, Tianli City, Nara Prefecture, Japan Applicant after: Sharp semiconductor Innovation Co.,Ltd. Applicant after: TOHOKU University Address before: 2613 Fandi 1, oak Town, Tianli City, Nara Prefecture, Japan Applicant before: Sharp semiconductor Innovation Co.,Ltd. Applicant before: TOHOKU University |
|
CB02 | Change of applicant information |