CN103295627B - 相变存储器、数据并行写入方法及数据读取方法 - Google Patents
相变存储器、数据并行写入方法及数据读取方法 Download PDFInfo
- Publication number
- CN103295627B CN103295627B CN201310143183.8A CN201310143183A CN103295627B CN 103295627 B CN103295627 B CN 103295627B CN 201310143183 A CN201310143183 A CN 201310143183A CN 103295627 B CN103295627 B CN 103295627B
- Authority
- CN
- China
- Prior art keywords
- address
- sub
- storage array
- storage
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明涉及一种相变存储器,所述相变存储器包括:至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;分发模块从外部接收到的写入地址,根据所述写入地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;写入驱动器在根据所述写入地址的地址属性确定的子存储阵列为不同的子存储阵列时,分别向所述的不同的子存储阵列中写入数据。本发明实施例可以支持相变存储器的并行写入操作或者数据读写操作共同执行。
Description
技术领域
本发明涉及存储器领域,具体涉及到一种相变存储器、数据并行写入方法及数据读取方法。
背景技术
相变存储器是一种采用硫族化合物相变材料制成的半导体存储器,通过相变材料在晶态和非晶态两种状态之间的电阻值差异保存信息,通过检测电路对保存信息进行识别。
图1是现有技术相变存储器的结构示意图,由图1可见,现有的相变存储器中包括一个用于存储数据的存储阵列、从外部地址总线接收外部输入地址的地址寄存器、从外部数据总线接收外部数据的数据寄存器,所述的存储器具有将地址寄存器中的行地址进行译码并选中存储阵列中的一行存储单元的行译码器以及将地址寄存器中的列地址进行译码并选中存储阵列中的一列存储单元的列译码器,在通过行译码器和列译码器将地址寄存器中的输入地址对应的存储单元选中之后,写驱动器将数据寄存器中的数据写入存储单元或者通过感应放大器将存储单元中的数据读取之后从总线接口送出。
由于现有技术的相变存储器只包含一个存储阵列,因此现有技术的相变存储器的缺点是对于数据寄存器中的数据,只能依次写入到存储阵列中的一个存储单元,而不能对同一个存储阵列中的不同存储单元完成并行写入操作,也不能实现同时向相变存储器中写数据和读数据的操作。
发明内容
本发明的目的是提供一种相变存储器,以解决现有技术的相变存储器不能并行写入数据,并且不能同时完成读数据和写数据功能的技术问题。
第一方面,本发明提供了一种相变存储器,所述相变存储器包括:
至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
分发模块,用于对从外部接收到的写入地址和数据,根据所述写入地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;
写入驱动器在根据所述写入地址的地址属性确定的子存储阵列为不同的子存储阵列时,分别向所述的不同的子存储阵列中写入数据。
基于第一方面,在第一种可能的实施方式中,所述分发模块,还用于对从外部接收到的读取地址,根据所述读取地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;
感应放大器在根据所述读取地址的地址属性确定的子存储阵列为不同的子存储阵列时,从所述不同的子存储阵列中读取数据。
基于第一方面,在第二种可能的实施方式中,所述的每个存储单元分别具有行地址和列地址,所述至少两个子存储阵列中的任意一个子存储阵列进一步对应有一个行译码器、一个列译码器、一个地址寄存器和一个数据寄存器;
所述分发模块,根据所述写入地址的地址属性将所述写入地址分发到地址寄存器,所述地址寄存器与所述地址属性对应的子存储阵列对应,将需要写入相变存储器的数据分发到至少一个所述存储阵列对应的数据寄存器中,所述数据寄存器与所述地址属性对应的子存储阵列对应;
其中,所述地址寄存器用于保存所述分发模块分发到该地址寄存器的写入地址,并将所述写入地址拆分为与所述存储单元对应的行地址和与所述存储单元对应的列地址;
所述的行译码器用于将所述地址寄存器中的行地址进行译码,从与所述行译码器对应的存储阵列中选择与所述行地址对应的一行存储单元;所述的列译码器,用于根据所述地址寄存器中的列地址,从所述列译码器对应的存储阵列中选择与所述列地址对应的一列存储单元,通过所述行、列地址选择一个存储单元之后,进行数据写入操作。
基于第一方面,在第三种可能的实施方式中,所述相变存储器还包括一地址/数据暂存器,用于接收从外部总线接收到的写入地址和数据,并将所述写入地址和数据发送给所述分发模块。
基于第一方面,在第四种可能的实施方式中,所述相变存储器进一步包含至少一个存储器阵列层,每个存储器阵列层进一步包括至少两个子存储阵列,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元。
基于第一方面,在第五种可能的实施方式中,所述相变存储器为静态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的行地址满足除以同一个整数时,余数相同。
基于第一方面,在第六种可能的实施方式中,所述相变存储器为动态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的列地址满足除以同一个整数时,余数相同。
基于第一方面或第一方面的第一至第六种可能的实施方式的任意一种可能的实施方式,在第七种可能的实施方式中,每个所述子存储阵列都具有一个状态信号,用以标识所述子存储阵列处于空闲状态或忙状态。
基于第一方面或第一方面的第一至第六种可能的实施方式的任意一种可能的实施方式,在第九种可能的实施方式中,所述相变存储器能够向外部提供读写执行指示信号,用以指示所述相变存储器是否可以继续接收读写命令。
第二方面,本发明实施例提供了一种相变存储器,所述相变存储器包括:
至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
分发模块,用于对从外部接收到的读取地址,根据所述读取地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;
感应放大器在根据所述读取地址的地址属性确定的子存储阵列为不同的子存储阵列时,从所述不同的子存储阵列中读取数据。
基于第二方面,在第一种可能的实施方式中,所述的每个存储单元分别具有行地址和列地址,所述至少两个子存储阵列中的任意一个子存储阵列进一步对应有一个行译码器、一个列译码器、一个地址寄存器和一个数据寄存器;
所述分发模块,根据所述读取地址的地址属性将所述读取地址分发到地址寄存器,所述地址寄存器与所述地址属性对应的子存储阵列对应,将需要写入相变存储器的数据分发到至少一个所述存储阵列对应的数据寄存器中,所述数据寄存器与所述地址属性对应的子存储阵列对应;
其中,所述地址寄存器用于保存所述分发模块分发到该地址寄存器的读取地址,并将所述读取地址拆分为与所述存储单元对应的行地址和与所述存储单元对应的列地址;
所述的行译码器用于将所述地址寄存器中的行地址进行译码,从与所述行译码器对应的存储阵列中选择与所述行地址对应的一行存储单元;所述的列译码器,用于根据所述地址寄存器中的列地址,从所述列译码器对应的存储阵列中选择与所述列地址对应的一列存储单元,通过所述行、列地址选择一个存储单元之后,进行数据读取操作。
基于第二方面,在第二种可能的实施方式中,所述相变存储器还包括一地址/数据暂存器,用于接收从外部总线接收到的读取地址,并将所述读取地址发送给所述分发模块。
基于第二方面,在第三种可能的实施方式中,所述相变存储器进一步包含至少一个存储器阵列层,每个存储器阵列层进一步包括至少两个子存储阵列,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元。
基于第二方面,在第四种可能的实施方式中,所述相变存储器为静态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的行地址满足除以同一个整数时,余数相同。
基于第二方面,在第五种可能的实施方式中,所述相变存储器为动态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的列地址满足除以同一个整数时,余数相同。
基于第一方面或第一方面的第一至第五种可能的实施方式的任意一种可能的实施方式,在第六种可能的实施方式中,每个所述子存储阵列都具有一个状态信号,用以标识所述子存储阵列处于空闲状态或忙状态。
基于第一方面或第一方面的第一至第五种可能的实施方式的任意一种可能的实施方式,在第七种可能的实施方式中,所述相变存储器能够向外部提供读写执行指示信号,用以指示所述相变存储器是否可以继续接收读写命令。
第三方面,本发明实施例提供了一种数据并行写入方法,所述方法包括:
在地址/数据暂存器为空时,接收外部电路发送的需要写入相变存储器的数据和所述数据的写入地址,所述相变存储器包括至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
根据所述写入地址的地址属性,在所述多个子存储阵列中确定所述写入地址对应的至少一个目标子存储阵列;
检测所述目标子存储阵列的状态;
当所述目标子存储阵列处于空闲状态时,将所述数据写入所述子存储阵列中与所述写入地址对应的存储单元;
当所述目标子存储阵列处于忙状态时,将所述写入地址和所述数据暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何写入地址和数据。
基于第三方面,在第一种可能的实施方式中,在当所述目标子存储阵列处于忙状态时,将所述写入地址和所述数据暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何读取地址和数据之后,还包括:
当所述目标子阵列恢复空闲状态时,将所述写入地址和所述数据移出所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路继续发送写入地址和数据。
第四方面,本发明实施例提供了一种数据读取方法,所述方法包括:
在地址/数据暂存器为空时,接收外部电路需要从相变存储器中获取的数据的读取地址,所述相变存储器包括至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
根据所述读取地址的地址属性,在所述多个子存储阵列中确定所述读取地址对应的至少一个目标子存储阵列;
检测所述目标子存储阵列的状态;
当所述目标子存储阵列处于空闲状态时,在所述目标子存储阵列中与所述读取地址对应的存储单元中读取数据;
当所述目标子存储阵列处于忙状态时,将所述读取地址暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何读取地址。
基于第四方面,在第一种可能的实施方式中,所述的将所述读取地址暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何读取地址,具体包括:
通知外部电路增加等待时间;或
通知外部电路结束数据读取操作。
本发明实施例提供了一种相变存储器,该种相变存储器按照地址属性设置了多个子存储阵列,在外部电路需要不断向相变存储器中写入数据时,可以将地址属性不同的数据,同时并行写入到不同的子存储阵列中,实现对相变存储器的并行写入操作;此外,当外部电路需要从相变存储器中读取数据时,即使相变存储器中的一个子存储阵列正在执行写数据操作,其余的子存储阵列也可以执行读数据操作,从而实现数据读写操作共同执行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术相变存储器的结构示意图;
图2为计算机系统的应用架构示意图;
图3为本发明实施例提供的相变存储器的一种实施例的示意图;
图4为本发明实施例提供的相变存储器的另一种实施例的示意图;
图5为本发明实施例提供的相变存储器的另一种实施例的示意图;
图6为本发明实施例提供的数据并行写入方法的一种实施例的流程图;
图7为本发明实施例提供的数据读取方法的一种实施例的流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
一般的计算机系统的架构如图2所示,通常包括处理器、内存、桥片以及存储器,其中,处理器内部集成了内存控制器,用以对内存进行读写;桥片用于提供各种输入/输出接口,在桥片中设置有一个存储控制器,用于对存储器进行读写。
在计算机系统中,在处理器访问存储器时,通常遵循局部性原理规律,进一步包括空间局部性和时间局部性,空间局部性是指处理器在访问了存储器的当前地址后,可能会继续访问与当前地址相邻的其他地址;时间局部性是指处理器访问当前地址之后,可能再次访问当前地址。因此,处理器可以通过预取和缓存的方式来提高数据的读取速度,也就是说处理器每次从存储器中读取地址相邻的多个数据并保存到处理器的高速缓存区域中,在下一次需要这些数据时,处理器可以直接从高速缓存中读取所需数据,从而提高数据读取速度。处理器在将数据写入到存储器时,通常会将数据保存到地址连续的具有不同地址属性的存储单元中,例如除以2余数不同的地址、或者除以4余数不相同的地址。因此,本发明实施例通过将现有的相变存储器中的存储阵列中具有相同地址属性的存储单元划分为一个子存储阵列,从而形成多个地址连续变化的子存储阵列。当处理器需要向相变存储器中写入数据时,可以根据地址属性将数据分发到不同的子存储阵列中,从而实现了并行写入,提高了写入速度。而处理器在需要读取数据时,如果需要读取的数据不在某个正在进行数据写入的子存储阵列,则可以在其余的子存储阵列中读取数据,从而实现在同一个相变存储器中同时完成读写操作。
如图3所示,本发明实施例提供的相变存储器,包括:至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;分发模块,在写入数据时用于对从外部接收到的写入地址和数据,根据所述写入地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;在读取数据时,用于对从外部接收到的读取地址,根据所述读取地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;写驱动器在所述写入地址确定的子存储阵列为不同的子存储阵列时,分别向所述的不同的子存储阵列中写入数据;感应放大器在所述读取地址确定的子存储阵列为不同的子存储阵列时,从所述不同的子存储阵列中读取数据。
更具体的说,所述的每个存储单元分别具有行地址和列地址,所述至少两个子存储阵列中的任意一个子存储阵列进一步对应有一个行译码器、一个列译码器、一个地址寄存器、写驱动器、感应放大器以及一个数据寄存器;
所述分发模块,根据所述写入地址或读取地址的地址属性将所述写入地址或读取地址分发到地址寄存器,所述地址寄存器与所述地址属性对应的子存储阵列对应,在需要写入数据时,将需要写入相变存储器的数据分发到数据寄存器中,所述数据寄存器与所述地址属性对应的子存储阵列对应;
其中,所述地址寄存器用于保存所述分发模块分发到该地址寄存器的写入地址或读取地址,并将所述写入地址或读取地址拆分为与所述存储单元的对应的行地址和列地址;
所述的行译码器用于将所述地址寄存器中的行地址进行译码,然后通过列译码器选择子存储阵列的一列,然后对同时位于该行、该列的存储单元进行数据读取或数据写入操作。
相变存储器还包括地址/数据暂存器,地址暂存器用于接收从外部总线接收到的输入地址,所述的输入地址可以是需要写入相变存储器的写入地址,也可以是需要从所述相变存储器中读取数据的读取地址,并将所述输入地址发送给所述分发模块。数据暂存器用于接收外部电路发送的需要写入到相变存储器中的数据,并根据分发模块确定的子存储阵列,将数据分发到相应的数据寄存器中,等待写驱动器将其写入子存储阵列中,由于地址暂存器和数据暂存器通常一起使用,因此在本发明实施例中,将数据暂存器和地址暂存器统称为地址/数据暂存器。
在本发明实施例中,写驱动器将数据寄存器中的数据写入存储单元。
在本发明的实施例中,相变存储器还可以按照不同的地址属性先划分为多个层,再将每层划分为一个或多个子存储阵列,每层的子存储阵列进一步可以按照地址的奇偶特点,或者满足行地址或者列地址除以同一个整数时,余数相同的规律进行划分。
更具体的说,例如可以选择按照除以2的余数划分,行地址为奇数的存储单元组成一个子存储阵列,行地址为偶数的子存储单元组成一个子存储阵列;也可以选择按照除以4或者除以其他自然数的余数划分子存储阵列,不多赘述,同理,列地址也类似,不多赘述。
需要说明的是,相变存储器可以有多种总线接口,一般分为静态随机存储器(Static Random Access Memory,SRAM)接口和动态随机存储器(DynamicRandom Access Memory,DRAM)接口两大类。SRAM接口的特点是地址一次性输入,其中低位地址对应于内部存储阵列的行地址,高位地址对应于列地址,例如地址总线输入的地址是A20-A0,其中A14-A0是行地址,A20-A15是列地址。DRAM接口的特点是地址分两次输入,第一次输入行地址,第二次输入列地址,例如地址线是A12-A0,第一次输入的行地址是A12-A0,第二次输入的列地址是A11和A9-A0。在特殊情况下,相变存储器包含多层存储阵列,此时地址中还可能包括层(bank)地址,它是通过单独的信号线提供的,例如BA1、BA0用来选择4个bank中的一个。
一般来说,处理器需要访问存储器时会送出对应的地址,这个地址经过存储控制器的转换,得到存储器能够识别的读写地址。处理器送出的地址是一个连续变化的线性地址,与具体的存储器接口和内部结构无关,而存储器从存储控制器得到的地址则随着总线接口的不同而不同,但两种地址存在着对应关系。对于SRAM接口的相变存储器,处理器送出的连续地址对应于不同的行地址,而列地址保持不变。例如0、1、2、3这些地址对应的行地址分别是0、1、2、3,而列地址都是0。
对于DRAM接口的相变存储器,处理器送出的连续地址对应于不同的列地址,而行地址保持不变。例如0、1、2、3这些地址对应的列地址分别是0、1、2、3,而行地址都是0。
在可选的实施方式中,处理器送出的连续地址还会体现为bank地址的连续变化,例如0、1、2、3这些地址对应的bank地址分别是0、1、2、3,而行列地址都是0。
因此,在相变存储器阵列中划分子阵列时,需要按照不同的接口、不同的访问方式来实现。
通常,根据相变存储器的接口种类不同,当所述相变存储器为静态随机存储器的接口类型时,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元中,每个子存储阵列中的存储单元的行地址满足除以同一个整数时,余数相同。例如,可以按照行地址的奇数和偶数特点划分子存储阵列。
而当所述相变存储器为动态随机存储器的接口类型时,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元中,每个子存储阵列中的存储单元的列地址满足除以同一个整数时,余数相同。例如,可以按照列地址的奇数和偶数特点划分子存储阵列。
图3是本发明实施例的一种实施方式的架构示意图,由图3可见,在本实施例中,相变存储器包含两个子存储阵列,两个子存储阵列按照存储单元的行地址的奇偶特点进行划分,该实施例中的相变存储器是一种静态随机存储器的接口类型,其结构在前述实施例中已经描述过,因此不多赘述。
以图3所示的实施例为例,说明该实施例提供的相变存储器执行数据读写操作的过程。
在外部电路例如图2中所示的计算机系统中的处理器需要向相变存储器中写入数据时,藉由存储控制器将写入地址和数据通过外部总线接口送给相变存储器的地址/数据暂存器。
地址/数据暂存器将写入地址和数据发送给分发模块,分发模块根据写入地址的奇数和偶数特点,确定子存储阵列。假设,相变存储器是第一次从外部总线接口得到写入地址和数据,通过分发模块确定,需要写入的子存储阵列为行地址为偶数的子存储阵列,将上述地址、数据分发到图2中对应子存储阵列的地址寄存器2和数据寄存器2中,并通过写入驱动器执行写入操作。
当某个子存储阵列处于写入操作过程时,可以输出一个状态信号给分发模块,例如低电平表示当前忙,高电平表示当前空闲,可以继续接收读写指令。
在将第一个写入地址和数据移走后,当地址/数据暂存器通过外部地址总线接收到第二个写入地址和数据之后,如果通过分发模块确定写入地址对应于另一个行地址为奇数的子存储阵列,则可以将地址、数据分发到与行地址为奇数的存储阵列对应的地址寄存器1和数据寄存器1,不必等行地址为偶数的子存储阵列的写操作是否完成。如果写入地址与前一个写操作对应于同一个子存储阵列,而且该子存储阵列的状态信号为低电平,即子存储阵列处于忙状态,则暂时停止地址、数据的分发。分发模块对外提供一个ready信号给存储控制器,ready信号作为读写执行指示信号,或忙信号,高电平表示准备好,可以接收下一个地址和数据,低电平表示当前忙,处于忙状态,暂停接收下一个地址和数据。存储控制器通过检测ready信号来决定是否执行下一个写操作。
当外部电路需要从相变存储器中读取数据时,例如计算机系统的处理器通过存储控制器,将需要读取的数据的读取地址发送给相变存储器,相变存储器的地址/数据暂存器通过外部地址总线获取相应的数据读取地址,并将其发送给分发模块,分发模块确定数据读取地址对应的子存储阵列,并通过检测状态信号(idle)检测子存储阵列的状态,当分发模块确定的子存储阵列(例如行地址为奇数的子存储阵列)处于空闲状态时,不管其余的子存储阵列是否处于空闲状态,都通过感应放大器读取相应的子存储阵列中的数据,从而实现了同一个相变存储器同时完成读写两种数据操作。
而如果读取地址对应的子存储阵列处于忙状态时,无法立即从该子存储阵列中读取数据,此时分发模块可以选择将ready信号保持为低电平,通知存储控制器增加等待时间,延长当前读周期,直到该子阵列的写操作结束、回到空闲状态之后才返回读取的数据;或者将ready信号保持为低电平,存储控制器检测到低电平之后,知道暂时无法读到有效数据,也不愿意继续等待,则结束当前读周期,并通知处理器当前读操作无效。
在计算机系统中,上述两种方案的选择取决于存储控制器的设置,处理器可以通过设置存储控制器的工作方式,决定当子阵列处于忙状态时是继续等待还是提前结束。
在另一种可能的实施方式中,地址/数据暂存器只能同时存储一个子存储阵列的写入地址和数据。在该种情况下,在地址/数据暂存器接收到一个写入地址和数据后,如果通过分发模块检测到该子存储阵列处于忙状态,则分发模块向外部电路发送ready信号,停止接收任何的写入地址和数据,直到该子存储阵列恢复空闲,将地址/数据暂存器中的地址和数据移走。
更具体的说,在一种可能的实施方式中,相变存储器状态信号有两级。第一级是对外部电路的ready信号,第二级是对应于每个子存储阵列的idle信号。ready信号的变化规律是,只要地址/数据暂存器里面保存着有效的地址或数据,还未分发到第二级的地址寄存器或数据寄存器,那么ready信号就是无效电平,通知外部电路不要继续发送新的读写命令了。如果上述地址/数据暂存器是空的,那么ready信号为有效电平,即使某个子存储阵列正在进行写操作,仍然可以再接收一个读写命令,将地址、数据保存到地址/数据暂存器中,并根据地址所对应的子存储阵列是否忙来决定是否转发到第二级地址寄存器和数据寄存器中idle信号与每个子阵列对应,只要该子阵列正在进行读写操作,idle信号就是无效电平,通知分发电路不要将地址/数据暂存器里的地址、数据进行分发。
整个操作流程是:外部电路在需要对相变存储器进行数据读写操作时,外部电路先检测ready信号的电平,如果ready信号是有效电平,则发送输入地址、数据到相变存储器,如果是无效电平,则暂停发送输入地址;
对于已经发送并保存到地址/数据暂存器的输入地址、数据,分发模块根据地址确定对应的子存储阵列并判断该子存储阵列的idle状态。如果该子存储阵列为空闲状态,则向该子存储阵列的地址寄存器和数据寄存器转发地址、数据,将ready信号变为有效电平,继续接收外部电路发送的下一个输入地址。如果该子存储阵列为忙状态,则将地址、数据继续保存在暂存器中,将ready信号变为无效电平,外部电路检测到ready信号为低电平之后,停止向相变存储器发送任何输入地址。
如果首次操作是写操作,只要后面的读或写操作是针对不同的子存储阵列,那么外部电路可以继续发送读或写操作。如果首次操作是读操作,由于在执行数据读取时,相变存储器需要将数据读出并返回到数据总线,此时数据总线被当前读操作占用,因此不能继续发送新的读写命令了,必须等这个读操作结束之后才行,因此正在执行数据读操作的相变存储器的ready信号一定处于无效状态。
也就是说,当前一个操作为写操作,后一个操作无论是读操作还是写操作,只要输入地址对应的子存储阵列不同,就可以分别执行。
可以看出,相变存储器的ready信号在读、写操作时完成不同的功能,从而实现了信号的复用。在写操作下,ready信号通知存储控制器能否继续发出写数据;在读操作下,ready信号通知存储控制器能否读取有效数据。读操作和写操作可以通过总线接口的片选、读信号、写信号来识别,如果片选和读信号同时有效则是读操作,如果片选和写信号同时有效则是写操作。
如图4所示,在另一种可能的实施方式中,可以将存储阵列划分为4个子存储阵列,此实施例中的相变存储器同样为静态存储器接口类型,按照行地址除以4的余数相同的存储单元进行划分,每个子存储阵列分别包含行译码器、列译码器、地址寄存器、数据寄存器、写入驱动器以及感应放大器等,均与前述的实施例类似,不多赘述。
图3和图4所示的实施例中,相变存储器均是按照存储单元的不同行地址划分子阵列的,在图5所示的实施例中,相变存储器根据存储单元的不同的列地址来划分子阵列,按照列地址的不同将存储单元分为两个子存储阵列。为了扩大容量,相变存储器也可以采用多个存储平面,称为bank,这样可以划分为更多的子阵列,例如有四个存储平面,每个平面上按奇偶行划分为两个子阵列,这样整个存储器一共有8个子阵列,可以实现8个数据的并行写入。
通过上述的实施例,相变存储器按照地址属性设置了多个子存储阵列,在外部电路需要不断向相变存储器中写入数据时,可以将地址属性不同的数据,同时并行写入到不同的子存储阵列中,实现对相变存储器的并行写入操作;此外,当外部电路需要从相变存储器中读取数据时,即使相变存储器中的一个子存储阵列正在执行写数据操作,其余的子存储阵列也可以执行读数据操作,从而实现数据读写操作共同执行。
相应的,如图6所示,本发明实施例提供了一种数据并行写入方法,该方法可以应用于包含多个子存储阵列的相变存储器,所述方法包括:
601,在地址/数据暂存器为空时,接收外部电路发送的需要写入相变存储器的数据和所述数据的写入地址,所述相变存储器包括至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
具体而言,在本实施例中所述的写入地址是需要写入相变存储器的数据的写入地址,相变存储器的结构可参考前述的几个实施例,在每个相变存储器中分别根据每个存储单元的地址属性,例如地址中行地址或列地址的属性、或者存储单元所处的层,将存储单元分成了多个子存储阵列。
在外部电路,例如计算机系统的处理器需要向相变存储器中写入数据时,通过地址总线将写入地址发送给相变存储器,需要写入相变存储器中的数据通过数据总线发送。
602,根据所述写入地址的地址属性,在所述多个子存储阵列中确定所述写入地址对应的至少一个目标子存储阵列;
具体的,相变存储器中的分发模块,根据写入地址的地址属性确定写入地址对应的子存储阵列,例如,在SRAM接口类型中,写入地址中的行地址对应的是奇数,确定写入地址对应的子存储阵列为奇数行地址划分的子存储阵列,例如在图3所示的实施例中,上方的子存储阵列即为写入地址的目标子存储阵列。
603,检测所述目标子存储阵列的状态;
具体而言,相变存储器可以通过分发模块检测目标子存储阵列的idle信号的电平状态,判断目标子存储阵列的状态,例如当目标子存储阵列的idle信号为高电平时,表示目标子阵列当前处于空闲状态,而idle信号为低电平时,表示该目标子存储阵列当前正在执行读或者写的操作。
604,当所述目标子存储阵列处于空闲状态时,将所述数据写入所述子存储阵列中与所述写入地址对应的存储单元;
当确定了目标子存储阵列处于空闲状态时,分发模块将数据分配给目标子存储阵列的数据寄存器,将写入地址分配给目标子存储阵列的地址寄存器,执行写入操作。
不管相变存储器中的其他子存储阵列处于忙状态还是空闲状态,只要目标子存储阵列处于空闲状态,相变存储器都可完成写入操作,从而实现了并行写入功能。
605,当所述目标子存储阵列处于忙状态时,将所述写入地址和所述数据暂存在所述地址/数据暂存器,向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何写入地址和数据。
具体而言,在本发明的实施例中,地址/数据暂存器只保存一个写入地址和与写入地址对应的数据,那么在地址/数据暂存器中已经保存了一个写入地址的情况下,相当于已经有一个写入命令等待执行,此时,读写执行指示信号,也就是ready信号指示外部电路停止发送任何读写指令。
当所述目标子阵列恢复空闲状态时,将所述写入地址和所述数据移出所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路继续发送写入地址和数据。
通过上述实施例相变存储器按照地址属性设置了多个子存储阵列,在外部电路需要不断向相变存储器中写入数据时,可以将地址属性不同的数据,同时并行写入到不同的子存储阵列中,实现对相变存储器的并行写入操作;
相应的,如图7所示,本发明实施例提供了一种数据读取方法,所述方法包括:
701,在地址/数据暂存器为空时,接收外部电路需要从相变存储器中获取的数据的读取地址,所述相变存储器包括至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
具体而言,在该实施例中,所述的读取地址为需要从相变存储器中读取的数据的读取地址,当外部电路需要从相变存储器中读取数据时,例如计算机系统的处理器通过存储控制器,将需要读取的数据的地址发送给相变存储器,相变存储器的地址/数据暂存器通过外部地址总线,从存储控制器中获取相应的数据读取地址,并将其发送给分发模块。
702,根据所述读取地址的地址属性,在所述多个子存储阵列中确定所述读取地址对应的至少一个目标子存储阵列;
具体的,相变存储器中的分发模块确定数据读取地址对应的子存储阵列,例如在静态随机存储器接口类型中,通过行地址的奇数或偶数特点确定目标存储阵列。
703,检测所述目标子存储阵列的状态;
具体而言,分发模块通过检测状态信号(idle)检测子存储阵列的状态,当目标子存储阵列的idle信号为低电平时,表示目标子存储阵列当前忙,而idle信号为高电平时,当前目标子存储阵列处于空闲状态。需要说明的是,idle信号高电平或者低电平信号表示忙或者空闲状态,是可以通过芯片设计实现的,可根据实际需要进行选择。
704,当所述目标子存储阵列处于空闲状态时,在所述目标子存储阵列中与所述读取地址对应的存储单元中读取数据;
具体而言,当分发模块确定的子存储阵列(例如行地址为奇数的子存储阵列)处于空闲状态时,不管其余的子存储阵列是否处于空闲状态,都通过感应放大器读取相应的子存储阵列中的数据,从而实现了同一个相变存储器同时完成读写两种数据操作。
705,将所述读取地址暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何读取地址。
具体而言,如果读取地址对应的目标子存储阵列处于忙状态时,相变存储器无法立即从该目标子存储阵列中读取数据,此时该地址对应的目标子阵列处于忙状态(idle信号为低电平),则无法立即提供有效数据,分发模块可以选择将ready信号保持为低电平,通知存储控制器增加等待时间,延长当前读周期,直到该子阵列的写操作结束、回到空闲状态之后才返回读取的数据;或者将ready信号保持为低电平,存储控制器检测到低电平之后,知道暂时无法读到有效数据,也不愿意继续等待,则结束当前读周期,并通知处理器当前读操作无效。通过上述的实施例,相变存储器按照地址属性设置了多个子存储阵列,当外部电路需要从相变存储器中读取数据时,即使相变存储器中的一个子存储阵列正在执行写数据操作,其余的子存储阵列也可以执行读数据操作,从而实现数据读写操作共同执行。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种相变存储器,其特征在于,包括:
至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
所述相变存储器为静态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的行地址满足除以同一个整数时,余数相同;或
所述相变存储器为动态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的列地址满足除以同一个整数时,余数相同;
分发模块,用于对从外部接收到的写入地址和数据,根据所述写入地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;
写入驱动器在根据所述写入地址的地址属性确定的子存储阵列为不同的子存储阵列时,分别向所述的不同的子存储阵列中写入数据。
2.如权利要求1所述的相变存储器,其特征在于,所述分发模块,还用于对从外部接收到的读取地址,根据所述读取地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;
感应放大器在根据所述读取地址的地址属性确定的子存储阵列为不同的子存储阵列时,从所述不同的子存储阵列中读取数据。
3.如权利要求1所述的相变存储器,其特征在于,所述的每个存储单元分别具有行地址和列地址,所述至少两个子存储阵列中的任意一个子存储阵列进一步对应有一个行译码器、一个列译码器、一个地址寄存器和一个数据寄存器;
所述分发模块,根据所述写入地址的地址属性将所述写入地址分发到地址寄存器,所述地址寄存器与所述地址属性对应的子存储阵列对应,将需要写入相变存储器的数据分发到至少一个所述存储阵列对应的数据寄存器中,所述数据寄存器与所述地址属性对应的子存储阵列对应;
其中,所述地址寄存器用于保存所述分发模块分发到该地址寄存器的写入地址,并将所述写入地址拆分为与所述存储单元对应的行地址和与所述存储单元对应的列地址;
所述的行译码器用于将所述地址寄存器中的行地址进行译码,从与所述行译码器对应的存储阵列中选择与所述行地址对应的一行存储单元;所述的列译码器,用于根据所述地址寄存器中的列地址,从所述列译码器对应的存储阵列中选择与所述列地址对应的一列存储单元,通过所述行、列地址选择一个存储单元之后,进行数据写入操作。
4.如权利要求3所述的相变存储器,其特征在于,还包括一地址/数据暂存器,用于接收从外部总线接收到的写入地址和数据,并将所述写入地址和数据发送给所述分发模块。
5.如权利要求1所述的相变存储器,其特征在于,所述相变存储器进一步包含至少一个存储器阵列层,每个存储器阵列层进一步包括至少两个子存储阵列,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元。
6.如权利要求1至5任一项所述的相变存储器,其特征在于,每个所述子存储阵列都具有一个状态信号,用以标识所述子存储阵列处于空闲状态或忙状态。
7.如权利要求1至5任一项所述的相变存储器,所述相变存储器能够向外部提供读写执行指示信号,用以指示所述相变存储器是否可以继续接收读写命令。
8.一种相变存储器,其特征在于,包括:
至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
所述相变存储器为静态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的行地址满足除以同一个整数时,余数相同;或
所述相变存储器为动态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的列地址满足除以同一个整数时,余数相同;
分发模块,用于对从外部接收到的读取地址,根据所述读取地址的地址属性确定所述至少两个子存储阵列中的至少一个子存储阵列;
感应放大器在根据所述读取地址的地址属性确定的子存储阵列为不同的子存储阵列时,从所述不同的子存储阵列中读取数据。
9.如权利要求8所述的相变存储器,其特征在于,所述的每个存储单元分别具有行地址和列地址,所述至少两个子存储阵列中的任意一个子存储阵列进一步对应有一个行译码器、一个列译码器、一个地址寄存器和一个数据寄存器;
所述分发模块,根据所述读取地址的地址属性将所述读取地址分发到地址寄存器,所述地址寄存器与所述地址属性对应的子存储阵列对应,将需要写入相变存储器的数据分发到至少一个所述存储阵列对应的数据寄存器中,所述数据寄存器与所述地址属性对应的子存储阵列对应;
其中,所述地址寄存器用于保存所述分发模块分发到该地址寄存器的读取地址,并将所述读取地址拆分为与所述存储单元对应的行地址和与所述存储单元对应的列地址;
所述的行译码器用于将所述地址寄存器中的行地址进行译码,从与所述行译码器对应的存储阵列中选择与所述行地址对应的一行存储单元;所述的列译码器,用于根据所述地址寄存器中的列地址,从所述列译码器对应的存储阵列中选择与所述列地址对应的一列存储单元,通过所述行、列地址选择一个存储单元之后,进行数据读取操作。
10.如权利要求8所述的相变存储器,其特征在于,还包括一地址/数据暂存器,用于接收从外部总线接收到的读取地址,并将所述读取地址发送给所述分发模块。
11.如权利要求8所述的相变存储器,其特征在于,所述相变存储器进一步包含至少一个存储器阵列层,每个存储器阵列层进一步包括至少两个子存储阵列,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元。
12.如权利要求8至11任一项所述的相变存储器,其特征在于,每个所述子存储阵列都具有一个状态信号,用以标识所述子存储阵列处于空闲状态或忙状态。
13.如权利要求8至11任一项所述的相变存储器,所述相变存储器能够向外部提供读写执行指示信号,用以指示所述相变存储器是否可以继续接收读写命令。
14.一种数据并行写入方法,其特征在于,所述方法包括:
在地址/数据暂存器为空时,接收外部电路发送的需要写入相变存储器的数据和所述数据的写入地址,所述相变存储器包括至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
根据所述写入地址的地址属性,在所述多个子存储阵列中确定所述写入地址对应的至少一个目标子存储阵列;
检测所述目标子存储阵列的状态;
当所述目标子存储阵列处于空闲状态时,将所述数据写入所述子存储阵列中与所述写入地址对应的存储单元;
当所述目标子存储阵列处于忙状态时,将所述写入地址和所述数据暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何写入地址和数据;
所述相变存储器为静态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的行地址满足除以同一个整数时,余数相同;或
所述相变存储器为动态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的列地址满足除以同一个整数时,余数相同。
15.如权利要求14所述所述的方法,其特征在于,在当所述目标子存储阵列处于忙状态时,将所述写入地址和所述数据暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何写入地址和数据之后,还包括:
当所述目标子阵列恢复空闲状态时,将所述写入地址和所述数据移出所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路继续发送写入地址和数据。
16.一种数据读取方法,其特征在于,所述方法包括:
在地址/数据暂存器为空时,接收外部电路需要从相变存储器中获取的数据的读取地址,所述相变存储器包括至少两个子存储阵列,所述至少两个子存储阵列根据地址属性划分,每个子存储阵列进一步包括多个具有相同地址属性的存储单元;
根据所述读取地址的地址属性,在所述多个子存储阵列中确定所述读取地址对应的至少一个目标子存储阵列;
检测所述目标子存储阵列的状态;
当所述目标子存储阵列处于空闲状态时,在所述目标子存储阵列中与所述读取地址对应的存储单元中读取数据;
当所述目标子存储阵列处于忙状态时,将所述读取地址暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何读取地址;
所述相变存储器为静态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的行地址满足除以同一个整数时,余数相同;或
所述相变存储器为动态随机存储器接口类型,所述的每个子存储阵列进一步包括多个具有相同地址属性的存储单元,每个子存储阵列中的存储单元的列地址满足除以同一个整数时,余数相同。
17.如权利要求16所述的方法,其特征在于,所述的将所述读取地址暂存在所述地址/数据暂存器,并向外部电路发送读写执行指示信号,用以指示外部电路暂停发送任何读取地址,具体包括:
通知外部电路增加等待时间;或
通知外部电路结束数据读取操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310143183.8A CN103295627B (zh) | 2013-04-23 | 2013-04-23 | 相变存储器、数据并行写入方法及数据读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310143183.8A CN103295627B (zh) | 2013-04-23 | 2013-04-23 | 相变存储器、数据并行写入方法及数据读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103295627A CN103295627A (zh) | 2013-09-11 |
CN103295627B true CN103295627B (zh) | 2016-08-31 |
Family
ID=49096356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310143183.8A Active CN103295627B (zh) | 2013-04-23 | 2013-04-23 | 相变存储器、数据并行写入方法及数据读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103295627B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102261817B1 (ko) | 2014-12-15 | 2021-06-07 | 삼성전자주식회사 | 다수의 레이어들을 포함하는 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작방법 |
CN104536898B (zh) * | 2015-01-19 | 2017-10-31 | 浙江大学 | C程序并行区域的检测方法 |
CN114185611B (zh) * | 2021-11-26 | 2023-09-12 | 京微齐力(深圳)科技有限公司 | 一种待配置器件多列自动复制配置方法及电路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014339A (en) * | 1997-04-03 | 2000-01-11 | Fujitsu Limited | Synchronous DRAM whose power consumption is minimized |
CN101178690A (zh) * | 2007-12-03 | 2008-05-14 | 浙江大学 | 低功耗高性能高速暂存器的设计方法 |
CN101359504A (zh) * | 2008-08-05 | 2009-02-04 | 中国科学院上海微系统与信息技术研究所 | 高速写入相变存储器及其高速写入方法 |
-
2013
- 2013-04-23 CN CN201310143183.8A patent/CN103295627B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014339A (en) * | 1997-04-03 | 2000-01-11 | Fujitsu Limited | Synchronous DRAM whose power consumption is minimized |
CN101178690A (zh) * | 2007-12-03 | 2008-05-14 | 浙江大学 | 低功耗高性能高速暂存器的设计方法 |
CN101359504A (zh) * | 2008-08-05 | 2009-02-04 | 中国科学院上海微系统与信息技术研究所 | 高速写入相变存储器及其高速写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103295627A (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108572796B (zh) | 具有异构nvm类型的ssd | |
EP3091439B1 (en) | Multi-bank memory with multiple read ports and multiple write ports per cycle | |
CN109923530A (zh) | 混合式存储器中的数据重新定位 | |
CN109983536B (zh) | 响应标签匹配命令的存储电路 | |
CN109791519A (zh) | 具有集成计算引擎的非易失性存储系统和本地快速存储器的优化用途 | |
CN101840383B (zh) | 支持连续/离散地址多数据并行访问的可配置存储器 | |
JP6060277B2 (ja) | ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置 | |
US8219746B2 (en) | Memory package utilizing at least two types of memories | |
JPH02297791A (ja) | メモリ・サブシステム | |
CN107885456A (zh) | 减少io命令访问nvm的冲突 | |
CN106104499A (zh) | 高速缓冲存储器架构 | |
CN104050097A (zh) | 在具有不同的最小可寻址数据单元大小的非易失性存储器单元之间进行选择 | |
US11099786B2 (en) | Signaling for heterogeneous memory systems | |
CN103295627B (zh) | 相变存储器、数据并行写入方法及数据读取方法 | |
CN113641603A (zh) | 一种基于axi协议的ddr仲裁与调度方法及系统 | |
EP3532933A1 (en) | Hybrid memory module | |
KR20230142795A (ko) | Zns 디바이스들에서의 상이한 기입 우선순위화 | |
US20170004095A1 (en) | Memory Control Circuit and Storage Device | |
EP3639145B1 (en) | Hybrid memory module | |
US20240036754A1 (en) | Adjustable access energy and access latency memory system and devices | |
CN104035898A (zh) | 一种基于vliw类型处理器的访存系统 | |
US6430648B1 (en) | Arranging address space to access multiple memory banks | |
CN108701085A (zh) | 用于固态装置的多个地址寄存器的设备及方法 | |
CN107885667A (zh) | 降低读命令处理延迟的方法与装置 | |
CN106919363A (zh) | 一种基于异步先进先出的sdram缓存器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |