存储模块和包括其的存储系统的制作方法

文档序号:16206711发布日期:2018-12-08 07:12阅读:134来源:国知局
存储模块和包括其的存储系统的制作方法

本申请要求2017年5月22日提交的申请号为10-2017-0062760的韩国申请的优先权,其通过引用整体合并于此。

本公开涉及一种半导体器件。特别地,本公开涉及一种存储模块和包括其的存储系统。

背景技术

近年来,随着移动通信终端(诸如智能电话和平板pc)变得流行,以及社交网络服务(sns)、机器对机器(m2m)网络和传感器网络增加,数据的量、产生速度和多样性全都在快速增加。

为了处理大数据,不仅存储器件的速度重要,存储器件和包括其的存储模块的储存容量也需要很大。



技术实现要素:

各种实施例意图提供一种增加存储模块的容量的同时使得存储模块能够稳定地工作的技术。

在一个实施例中,一种存储模块可以包括:多个存储器件;多个数据缓冲器,适用于接收从存储器控制器传送来的写入数据以及将读取数据传输给存储器控制器;缓冲器控制信号发生电路,适用于基于从存储器控制器传送来的命令而产生用于控制所述多个数据缓冲器的缓冲器控制信号;命令延迟电路,适用于在读取操作和写入操作中基于将命令延迟缓冲器控制信号发生电路的延迟量来产生有效命令;数据处理电路,适用于响应于有效命令而处理从所述多个数据缓冲器传送来的写入数据并将处理过的写入数据传送给所述多个存储器件,以及适用于处理从所述多个存储器件传送来的读取数据并将处理过的读取数据传送给所述多个数据缓冲器;以及命令缓冲电路,适用于将有效命令传送给所述多个存储器件。

在一个实施例中,一种存储系统可以包括:存储模块;以及存储器控制器,适用于将命令、地址和写入数据传输给存储模块,以及适用于从存储模块接收读取数据,存储模块包括:多个存储器件;多个数据缓冲器,适用于接收从存储器控制器传送来的写入数据以及将读取数据传输给存储器控制器;缓冲器控制信号发生电路,适用于基于所述命令来产生用于控制所述多个数据缓冲器的缓冲器控制信号;命令延迟电路,适用于在读取操作和写入操作中基于将所述命令延迟缓冲器控制信号发生电路的延迟量来产生有效命令;数据处理电路,适用于响应于有效命令而处理从所述多个数据缓冲器传送来的写入数据并将处理过的写入数据传送给所述多个存储器件,以及适用于处理从所述多个存储器件传送来的读取数据并将处理过的读取数据传送给所述多个数据缓冲器;以及命令缓冲电路,适用于将有效命令传送给所述多个存储器件。

附图说明

图1是图示根据一个实施例的存储系统的配置的示图。

图2是根据一个实施例的存储模块100中的用于读取操作的时序图。

图3是根据一个实施例的存储模块100中的用于写入操作的时序图。

图4是图示根据一个实施例的存储系统的配置的示图。

图5是图示图4中所示的模块控制器410的配置的示图。

图6是根据一个实施例的存储模块400中的用于读取操作的时序图。

图7是根据一个实施例的存储模块400中的用于写入操作的时序图。

具体实施方式

下面将参照附图来更详细地描述各种实施例。然而,本发明可以按照不同的形式来实施,而不应当被解释成局限于本文中所阐述的实施例。相反地,这些实施例被提供使得此公开将是彻底且完整的,且这些实施例将把本发明的范围充分传达给本领域技术人员。贯穿本公开,相同的附图标记在本发明的各个附图和实施例中始终指代相同的部分。

图1是图示根据示例性实施例的存储系统的配置的示图。

参见图1,存储系统可以包括主机的存储器控制器1以及存储模块100。

主机的存储器控制器1可以将命令cmd、地址add和时钟clk传输给存储模块100以控制存储模块100,并且可以将数据data传输给存储模块100和从存储模块100接收数据data。存储器控制器1可以包括在诸如cpu(中央处理单元)、gpu(图形处理单元)和ap(应用处理器)的处理器中或者可以存在于处理器外部的分立半导体芯片中。存储器控制器1可以被使用存储模块100的各种系统(诸如pc、服务器系统和移动系统)采用。

存储模块100可以包括寄存时钟驱动器(rcd)110、数据缓冲器120_0至120_7以及存储器件130_0至130_7。图1中所示的存储模块100被称作负载减小双列直插存储模块(lrdimm)。

寄存时钟驱动器110可以缓冲从存储器控制器1提供的命令cmd、地址add和时钟clk,以及将它们提供给存储器件130_0至130_7。寄存时钟驱动器110也可以将时钟clk提供给数据缓冲器120_0至120_7。此外,寄存时钟驱动器110可以将关于命令cmd和地址add的信息(其将被提供给数据缓冲器120_0至120_7)处理成适合于缓冲器通信总线bcom<0:3>的形式,并且可以经由缓冲器通信总线bcom<0:3>将处理过的信息提供给数据缓冲器120_0至120_7。

数据缓冲器120_0至120_7可以在写入操作中从存储器控制器1接收数据data和将数据传送给存储器件130_0至130_7,以及可以在读取操作中从存储器件130_0至130_7接收数据data和将数据传送给存储器控制器1。由于存储模块100中的数据缓冲器120_0至120_7与存储器控制器1直接交换数据data,因此在写入操作中数据缓冲器120_0至120_7可以在从存储器控制器1施加写入命令的时刻起经过写入延时(wl)的时间处从存储器控制器1接收数据data。此外,在读取操作中,数据缓冲器120_0至120_7可以在从存储器控制器1施加读取命令的时刻起经过cas延时(cl)的时间处将数据data传输给存储器控制器1。因此,数据缓冲器120_0至120_7可能需要关于写入命令的施加时间和读取命令的施加时间的信息,并可以经由缓冲通信总线bcom<0:3>从寄存时钟驱动器110来提供关于写入命令和读取命令的施加时间的信息。此外,用于设置数据缓冲器120_0至120_7的信息可以经由缓冲器通信总线bcom<0:3>而从寄存时钟驱动器110提供给数据缓冲器120_0至120_7。

存储器件130_0至130_7可以基于从寄存时钟驱动器110传送来的命令cmd、地址add和时钟clk来工作,也可以通过经由数据缓冲器120_0至120_7传输和接收数据data来工作。存储器件130_0至130_7中的每一个可以为各种类型的存储器之中的一种,例如,诸如dram(动态随机存取存储器)、rram(电阻式随机存取存储器)、pram(相变随机存取存储器)、fram(铁电随机存取存储器)和mram(磁随机存取存储器)。

在附图中,data_int可以表示在存储模块100中的数据缓冲器120_0至120_7与存储器件130_0至130_7之间传输数据的总线,cmd/add/clk_int可以表示在存储模块100中从寄存时钟驱动器110将命令、地址和时钟传输给存储器件130_0至130_7的总线,以及clk_int可以表示在存储模块100中从寄存时钟驱动器110将时钟传输给数据缓冲器120_0至120_7的总线。

图2是根据一个示例性实施例的用于读取操作的时序图,在读取操作中读取命令被传送给存储器件130_0至130_7和数据缓冲器120_0至120_7。

在图2中,cmd可以表示从存储器控制器1传输给寄存时钟驱动器110的命令,而cmd_int可以表示从寄存时钟驱动器110传输给存储器件130_0至130_7的命令。

参见图2,在时间201处,读取命令rd可以从存储器控制器1被传输给寄存时钟驱动器110。

然后,在从时间201起经过了三个时钟的时间203处,寄存时钟驱动器110可以将缓冲的读取命令rd传送给存储器件130_0至130_7。此外,在同一时间203处,寄存时钟驱动器110可以将被变成要经由缓冲器通信总线bcom<0:3>来传送的缓冲器控制信号的形式的读取命令传送给数据缓冲器120_0至120_7。在要经由缓冲器通信总线bcom<0:3>来传送的缓冲器控制信号之中,rd可以表示指示已经施加了读取命令的缓冲器控制信号,而dat0可以表示指示选中的存储体的缓冲器控制信号,以及par可以表示对读取命令和数据进行奇偶校验的缓冲器控制信号。

参见图2,在根据一个示例性实施例的同一时间203处,寄存时钟驱动器110将通知已经从存储器控制器1指令了读取操作的读取命令传送给存储器件130_0至130_7和数据缓冲器120_0至120_7。在读取操作中,在根据一个示例性实施例的同一时间处,可以将读取命令已经施加的通知传送给存储器件130_0至130_7和数据缓冲器120_0至120_7。此实施例的一个原因如下:当存储器件130_0至130_7的读取延时与数据缓冲器120_0至120_7的读取延时彼此匹配时,数据从存储器件130_0至130_7输出的时间与数据缓冲器120_0至120_7缓冲从存储器件130_0至130_7输出的数据并将其传送给存储器控制器1的时间将不太可能彼此失配。

图3是根据一个示例的用于写入操作的时序图,在写入操作中写入命令被传送给存储器件130_0至130_7和数据缓冲器120_0至120_7。

参见图3,在时间301处,写入命令wt可以从存储器控制器1被传输给寄存时钟驱动器110。

然后,在从时间301起经过了三个时钟的时间303处,寄存时钟驱动器110可以将缓冲的写入命令wt传送给存储器件130_0至130_7。此外,在同一时间303处,寄存时钟驱动器110可以将被变成要经由缓冲器通信总线bcom<0:3>来传送的缓冲器控制信号的形式的写入命令传送给数据缓冲器120_0至120_7。在要经由缓冲器通信总线bcom<0:3>来传送的缓冲器控制信号之中,wt可以表示指示已经施加了写入命令的缓冲器控制信号,而dat0可以表示指示选中的存储体的缓冲器控制信号,以及par可以表示对写入命令和数据进行奇偶校验的缓冲器控制信号。

参见图3,在根据一个示例性实施例的同一时间303处,寄存时钟驱动器110将通知已经从存储器控制器1指令了写入操作的写入命令传送给存储器件130_0至130_7和数据缓冲器120_0至120_7。在写入操作中,类似于读取操作,在根据一个实施例的同一时间处,将写入命令已经施加的通知传送给存储器件130_0至130_7和数据缓冲器120_0至120_7。此实施例的一个原因如下:当存储器件130_0至130_7的写入延时与数据缓冲器120_0至120_7的写入延时彼此匹配时,数据缓冲器120_0至120_7缓冲从存储器控制器1传送来的数据并将缓冲的数据传送给存储器件130_0至130_7的时间与存储器件130_0至130_7接收从数据缓冲器120_0至120_7传送来的数据的时间将不太可能彼此失配。

图4是图示根据一个示例性实施例的存储系统的配置的示图。

参见图4,存储系统可以包括主机的存储器控制器4以及存储模块400。

主机的存储器控制器4可以将命令cmd、地址add和时钟clk传输给存储模块400以控制存储模块400,以及可以将数据data传输给存储模块400和从存储模块400接收数据data。存储器控制器4可以被包括在处理器(诸如cpu(中央处理单元)、gpu(图形处理单元)和ap(应用处理器))中或者可以存在于处理器外部的分立半导体芯片中。存储器控制器4可以被使用存储模块400的各种系统(诸如pc、服务器系统和移动系统)采用。

存储模块400可以包括模块控制器410、数据缓冲器420_0至420_7和存储器件430_0至430_7。

存储器件430_0至430_7中的每一个可以具有相当大的容量。为此,根据一个实施例,存储器件430_0至430_7中的每一个可以包括堆叠的多个存储芯片。例如,存储器件430_0至430_7中的每一个可以包括八个存储芯片,而存储模块400的整个存储器件430_0至430_7可以包括64个存储芯片。在堆叠多个存储芯片以增加存储器件430_0至430_7的容量的情况下,由于负载增加且大量的信号的路由变得困难,因此在写入操作和读取操作期间存储器件430_0至430_7的延时倾向于增加,以及倾向于出现若干错误。存储器件430_0至430_7中的每一个可以为各种类型的存储器之中的一种,诸如dram(动态随机存取存储器)、rram(电阻式随机存取存储器)、pram(相变随机存取存储器)、fram(铁电随机存取存储器)和mram(磁随机存取存储器)。

模块控制器410可以缓冲从存储器控制器4提供的命令cmd、地址add和时钟clk,以及将它们提供给存储器件430_0至430_7。模块控制器410也可以将时钟clk提供给数据缓冲器420_0至420_7。此外,模块控制器410可以将关于命令cmd和地址add的信息(其要被提供给数据缓冲器420_0至420_7)处理成适合于缓冲器通信总线bcom<0:3>的形式,并且可以经由缓冲器通信总线bcom<0:3>将处理过的信息提供给数据缓冲器420_0至420_7。上述的模块控制器410的操作可以与寄存时钟驱动器110的操作相同。

然而,不同于寄存时钟驱动器110,模块控制器410可以执行在数据缓冲器420_0至420_7与存储器件430_0至430_7之间传送数据data的功能。在写入操作中,模块控制器410可以通过使用从数据缓冲器420_0至420_7传送来的写入数据来产生纠错码(ecc)。模块控制器410可以将写入数据和纠错码传输给存储器件430_0至430_7,使得写入数据和纠错码可以被写入至存储器件430_0至430_7中。此外,在读取操作中,模块控制器410可以通过使用从存储器件430_0至430_7读取的纠错码来校正从存储器件430_0至430_7读取的数据中的错误,以及可以将纠错过的读取数据传输给数据缓冲器420_0至420_7。因此,数据可以经由内部数据总线data_int1在数据缓冲器420_0至420_7与模块控制器410之间传输,并且数据和纠错码可以经由内部数据总线data_int2在模块控制器410与存储器件430_0至430_7之间传输。通过模块控制器410的纠错码产生操作和纠错操作,可以校正存储器件430_0至430_7中的因扩展的容量和堆叠的存储器芯片而倾向于增加的错误。

此外,为了增加存储器件430_0至430_7的数据容量,模块控制器410可以执行压缩和解压缩数据的操作。例如,通过在写入操作中压缩数据和将压缩的数据传送给存储器件430_0至430_7以及通过在读取操作中解压缩从存储器件430_0至430_7读取的数据和将解压缩的数据传送给数据缓冲器420_0至420_7,可以在存储器件430_0至430_7中储存更大量的数据。

不同于图2的存储系统,在图4的存储系统中,模块控制器410和数据缓冲器420_0至420_7可以在读取操作和写入操作中直接传输和接收数据。因此,根据一个实施例,模块控制器410的数据传输和接收时序可能需要匹配数据缓冲器420_0至420_7的数据传输和接收时序。

图5是图示根据一个示例性实施例的图4中所示的模块控制器410的配置的示图。

参见图5,模块控制器410可以包括缓冲器控制信号发生电路510、命令延迟电路520、地址延迟电路530、命令缓冲电路540、地址缓冲电路550、时钟缓冲电路560和数据处理电路570。

缓冲器控制信号发生电路510可以通过使用命令cmd和地址add来产生用于控制数据缓冲器420_0至420_7的缓冲器控制信号(即,要加载至缓冲器通信总线bcom<0:3>上的信号)。缓冲器控制信号发生电路510可以将来自命令cmd和地址add中传送的信息的、数据缓冲器420_0至420_7的操作所必需的信息转换成符合缓冲器通信总线bcom<0:3>的协议的缓冲器控制信号。地址add的全部位或地址add的部分位可以被输入到缓冲器控制信号发生电路510。

在读取操作和写入操作中,命令延迟电路520可以通过将命令cmd延迟缓冲器控制信号发生电路510的延迟量来产生有效命令cmd_eff。例如,如果通过使用命令cmd和地址add来产生缓冲器控制信号的缓冲器控制信号发生电路510出现三个时钟的延迟,则命令延迟电路520可以通过按照同样的方式将命令cmd延迟三个时钟来产生有效命令cmd_eff。然而,对于除读取操作和写入操作之外的其他命令,命令延迟电路520可以不将命令cmd延迟,而是可以仅仅将有效命令cmd_eff产生成与命令cmd一样(例如,无任何延迟)。换言之,对于除读取操作和写入操作之外的其他命令,命令延迟电路520的延迟值可以设置成0。命令延迟电路520可以基于接收的命令cmd将读取操作和写入操作与其他操作区分开。

在读取操作和写入操作中,地址延迟电路530可以通过将地址add延迟缓冲器控制信号发生电路510的延迟量来产生有效地址add_eff。然而,对于除读取操作和写入操作之外的命令,地址延迟电路530可以不将地址add延迟,而是可以仅仅将有效地址add_eff产生成与地址add一样。换言之,由于命令延迟电路520可以延迟或可以不延迟命令cmd,因此地址延迟电路530可以通过相同的方式延迟或不延迟地址add来产生有效地址add_eff。读取/写入信号rd/wt是用于命令延迟电路520将读取操作和写入操作通知给地址延迟电路的信号。即,读取/写入信号rd/wt是在读取操作和写入操作中激活的信号。

命令缓冲电路540可以缓冲有效命令cmd_eff以及将缓冲的命令传送给存储器件430_0至430_7。地址缓冲电路550可以缓冲有效地址add_eff以及将缓冲的地址传送给存储器件430_0至430_7。时钟缓冲电路560可以缓冲从存储器控制器4传送来的时钟clk以及将缓冲的时钟传送给存储器件430_0至430_7和数据缓冲器420_0至420_7。由命令缓冲电路540缓冲的命令、由地址缓冲电路550缓冲的地址以及由时钟缓冲电路560缓冲的时钟可以经由总线cmd/add/clk_int传送给存储器件430_0至430_7。此外,由时钟缓冲电路560缓冲的时钟可以经由总线clk_int传送给数据缓冲器420_0至420_7。

数据处理电路570可以包括第一串行到并行和并行到串行转换部571、纠错码产生部572、纠错部573、压缩部574、解压缩部575、选择部576、第二串行到并行和并行到串行转换部577以及数据处理控制部578。

第一串行到并行和并行到串行转换部571可以在写入操作中对从数据缓冲器420_0至420_7传送来的数据data进行串行到并行转换并将转换的数据传送给纠错码发生部572,以及可以在读取操作中对从纠错部573传送来的数据data进行并行到串行转换并将转换的数据传送给数据缓冲器420_0至420_7。这是为了使得纠错码发生部572和纠错部573能够并行地处理数据,由此缩短产生纠错码ecc和校正错误所需的时间。

在写入操作中,纠错码发生电路572可以通过使用从第一串行到并行和并行到串行转换部571传送来的数据data来产生纠错码ecc。在读取操作中,纠错部573可以通过使用从第二串行到并行和并行到串行转换部577或解压缩部575传送来的纠错码ecc来校正数据data中的任何错误。

在写入操作中,压缩部574可以压缩数据data和纠错码ecc,由此减小它们的位数。在附图中,数据data’和纠错码ecc’分别指代数据data和纠错码ecc的压缩的副本。解压缩部575可以在读取操作中将数据data’和纠错码ecc’解压缩。

选择部576为用于选择是否使用压缩部574和解压缩部575的组件。在未使用压缩功能的实施例中,选择部576可以将纠错码发生部572和纠错部573与第二串行到并行和并行到串行转换部577电耦接。换言之,压缩部574和解压缩部575可以被绕开。在使用压缩功能的实施例中,选择部576可以将压缩部574和解压缩部575与第二串行到并行和并行到串行转换部577电耦接。

第二串行到并行和并行到串行转换部577可以在写入操作中对数据和纠错码进行并行到串行转换,以及可以在读取操作中对数据和纠错码进行串行到并行转换。换言之,第二串行到并行和并行到串行转换部577可以执行与第一串行到并行和并行到串行转换部571相反的操作。

数据处理控制部578可以响应于有效命令cmd_eff来控制数据处理电路570中的组件571到577的操作和操作时序。在附图中,数据处理控制部578与组件571至577之间的符号ctrl指示数据处理控制部578控制组件571至577。由于数据处理控制部578的时序控制操作不是响应于命令cmd而实施,而是响应于有效命令cmd_eff而实施,因此数据处理控制部578的数据处理时序与数据缓冲器420_0至420_7的数据处理时序可以彼此匹配。这两个数据处理时序将不太可能彼此失配,因为数据缓冲器420_0至420_7响应于缓冲器通信总线bcom<0:3>上的控制信号(其与有效命令cmd_eff具有相同的时序信息)而工作。

虽然在图5中图示了模块控制器410包括缓冲器控制信号发生电路510、命令延迟电路520、地址延迟电路530、命令缓冲电路540、地址缓冲电路550、时钟缓冲电路560和数据处理电路570,但是应当注意,根据其设计,可以省略它们之中的一些组件。例如,在不需要纠错操作的情况下,在数据处理电路570中可以省略纠错码发生部572和纠错部573。此外,在不需要数据压缩操作的情况下,在数据处理电路570中可以省略压缩部574、解压缩部575和选择部576。

此外,虽然在图5中图示了缓冲器控制信号发生电路510、命令延迟电路520、地址延迟电路530、命令缓冲电路540、地址缓冲电路550、时钟缓冲电路560和数据处理电路570被包括在模块控制器410中,但是应当注意,它们之中的一些组件可以设置在模块控制器410的外部。此外,图5示出的各个功能模块(例如,延迟电路和部)可以包括适用于执行上述功能的合适电路元件。例如,命令延迟电路520可以包括适用于将接收的命令cmd延迟并输出延迟的命令cmd_eff的硬件电路。

图6是存储模块400中的用于读取操作的时序图,在读取操作中读取命令被传送给数据处理电路570和数据缓冲器420_0至420_7。

参见图6,在时间601处,读取命令rd可以从存储器控制器4被传输给存储模块400。

然后,在从时序601起经过三个时钟的时间603处,由缓冲器控制信号发生电路510产生的缓冲器控制信号(即,通知施加读取命令rd的缓冲器控制信号)可以经由缓冲器通信总线bcom<0:3>被传送给数据缓冲器420_0至420_7。

此外,在同一时间603处,由命令延迟电路520产生的有效读取命令rd_eff可以被传送给数据处理电路570。

由于已经施加了读取命令rd的通知在同一时间处被传送给数据缓冲器420_0至420_7和数据处理电路570,因此数据缓冲器420_0至420_7与数据处理电路570可以在不经历时序上的失配的情况下传输和接收数据。

图7是存储模块400中的用于写入操作的时序图,在写入操作中写入命令被传送给数据处理电路570和数据缓冲器420_0至420_7。

参见图7,在时间701处,写入命令wt可以从存储器控制器4被传输给存储模块400。

然后,在从时序701起经过三个时钟的时间703处,由缓冲器控制信号发生电路510产生的缓冲器控制信号(即,通知施加写入命令wt的缓冲器控制信号)可以经由缓冲器通信总线bcom<0:3>被传送给数据缓冲器420_0至420_7。

此外,在同一时间703处,由命令延迟电路520产生的有效写入命令wt_eff可以被传送给数据处理电路570。

由于已经施加了写入命令wt的通知在同一时间处被传送给数据缓冲器420_0至420_7和数据处理电路570,因此数据缓冲器420_0至420_7与数据处理电路570可以在不经历时序上的失配的情况下传输和接收数据。

根据各种实施例,可以在增加存储模块的容量的同时使得存储模块能够稳定地工作。

虽然已经出于说明的目的而描述了各种实施例,但是对于本领域技术人员将明显的是,在不脱离所附权利要求书中所限定的本发明的精神和范围的情况下,可以作出各种改变和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1