专利名称:利用垫和硅穿孔tsv的平行检查点的制作方法
利用垫和硅穿孔TSV的平行检查点
背景技术:
双列直插式存储模块(DIMM)包括一连串的随机存取存储器(RAM)集成电路。这些RAM集成电路通常采用动态RAM (DRAM)单元来存储数据。DIMM设置在印刷电路板上,且被设计为应用于计算刀片、个人电脑、工作站或服务器中。通过使用DIMM,可有利于快速数据检查点。检查点是一种将容错嵌入计算系统内的技术。其包括例如存储当前应用状态的快照,并在发生故障的情况下利用该快照重启应用的运行。
通过示例关于附图来描述本发明的某些实施例 图I是根据示例实施例的示出了可操作地连接至处理器插座的DIMM的计算刀片的示图。图2是根据示例实施例的示出了同构存储器体系结构的堆栈存储器的示图。图3是根据示例实施例的示出了异构存储器体系结构的堆栈存储器的示图。图4是根据示例实施例的示出了为读或写操作而激活存储器单元的现有技术垫(mat)的示图。图5是根据示例实施例的示出了数据的读取的现有技术垫的示图。图6是根据示例实施例的为在平行检查点过程中读或写数据而利用地址发生器模块来激活存储器单元的垫的示图。图7是根据示例实施例的用于在平行检查点过程中执行利用硅穿孔(TSV)控制器的读操作的垫的示图。图8是根据示例实施例的用于在平行检查点过程中执行写操作以将数据写入多个子阵列的垫的示图。图9是根据示例实施例的示出了为了平行检查点而执行的有利于数据的读或写的方法的流程图。图10是根据示例实施例的示出了为了在平行检查点过程中沿TSV传输数据而激活地址发生器的方法的流程图。图11是根据示例实施例的示出了为了在平行检查点过程中将数据写入被激活的存储器单元而激活地址发生器的方法的流程图。图12是根据示例实施例的示出了为了在涉及异构存储器的平行检查点过程中将数据写入被激活的存储器单元而激活地址发生器的方法的流程图。
具体实施例方式示出的是一种利用具有堆栈存储器的DMM的关于平行检查点的系统和方法,堆栈存储器包括垂直集成的存储器管芯(memory die)。在本文中所使用的平行检查点涉及DRAM管芯中的多个垫(mat)利用每一个垫或一组垫中的TSV、TSV控制器以及地址发生器电路将数据同时转移到堆栈管芯。在本文中使用的堆栈存储器包括垂直集成于作为DRAM芯片的一部分的一个单堆叠存储器管芯内的两层以上的有源电子元件。可通过包括单片电路、晶片依附晶片、管芯依附晶片或管芯依附管芯技术的技术制造堆栈存储器。通过使用TSV有利于垂直集成。采用三维(3D)堆栈形式的存储器管芯可为同构或异构。在本文中使用的同构包括采用一对一的结构的存储器管芯的分层,其中相似的存储器类型被垂直分层。在本文中使用的异构包括采用一对多的结构的存储器管芯的分层,其中不同的存储器类型被垂直分层。在某些示例实施例中,存储器管芯被组成为每一个存储器管芯具有一个以上的垫。堆栈存储器中的每一个存储器管芯可被细分为一组以上的子阵列。一组子阵列为一个垫。子阵列包括存储器单元的阵列。例如,管芯可被分为一组以上的四元子阵列。垫除了 包括至少一个子阵列之外,还包括局部解码器、预解码器、多路复用器、多路分配器、地址产生模块、TSV控制器以及为从子阵列中的一个以上读取数据或将数据写入子阵列中的一个以上而所需的其它逻辑电路中的至少一种。通过使用这些逻辑电路,可实现关于数据的读和写的平行性。位于一个共同的存储器管芯上的垫通过使用多条内部连线(例如中央总线或H形树段)而连接,而位于作为相同的堆栈存储器的组成部分的不同存储器管芯上的垫通过使用TSV而垂直集成。在同构堆栈存储器的情况中,利用TSV将位于一个存储器管芯上的一个垫中的存储器连接至位于另一个垫上的相似类型的存储器。该另一个垫位于另一个存储器管芯上。在异构堆栈存储器的情况中,利用TSV将位于一个垫上的一类存储器连接至位于另一个垫上的不同类的存储器。该另一个垫位于另一个存储器管芯上。通过使用TSV,可维持位于相同的堆栈存储器内的不同存储器管芯之间的平行性。在某些示例实施例中,以同构方式组织堆栈存储器内的垫,以使采用相似类型的存储器的垫利用TSV在多条管芯之间连接。例如,位于作为堆栈存储器的组成部分的第一管芯上的第一垫连接至位于作为该堆栈存储器的组成部分的第二管芯上的第二垫。第一管芯和第二管芯两者均使用的存储器类型可为动态随机存取存储器(DRAM)、或者其它的非易失性存储器(例如闪存、磁阻随机存取存储器(MRAM)、相变随机存取存储器(PCRAM))、忆阻器或某些其它适合类型的存储器。在某些示例实施例中,以异构方式组织堆栈存储器内的垫,以使采用不同类型存储器的垫利用TSV在多条管芯之间连接。例如,在两个管芯均为相同的堆栈存储器的组成部分时,位于第一管芯上的第一垫连接至位于第二管芯上的第二垫。第一管芯和第二管芯所使用的存储器类型不同,以使第一管芯可使用DRAM,而第二管芯可使用闪存。在某些示例实施例中,利用异构堆栈存储器以便有利于关于存储区域/存储密度的不均匀性。在一个示例实施例中,其中在不同的管芯中的存储器具有不同的区域特性,可将数据从位于一个存储器管芯上的一个垫写入位于多个不同的存储器管芯上的多个其它的垫。这些垫中的每一个位于相同的堆栈存储器内。该写入可基于相对于位于该堆栈存储器上的另一个垫该一个垫具有较低密度的存储器。在某些示例实施例中,其中堆栈管芯关于存储器延迟表现为异构,以管道输送方式将数据从位于一个存储器管芯上的一个垫写入位于多个不同的存储器管芯上的多个其它的垫。例如,来自具有快速存储器的垫的数据向具有慢速存储器的不同管芯中的垫读取(或写入)数据。由于具有高等待时间的垫需要较多的时间来完成其操作,快速垫可能使对多个垫的存取交错进行,以便覆盖该延迟。图I是示出了可操作地连接至处理器插座的DIMM的示例计算刀片100的示图。示出了多个插座101和与其相联的中央处理器(CPU),计算刀片100利用该中央处理器以便产生与存储器相关的读或写指令。经由双数据速率(DDR)总线102可操作地连接至插座101的是DIMM 103。堆栈存储器104和堆栈存储器105是该DIMM 103的一部分。该DIMM 103可包括多个堆栈存储器(例如除堆栈存储器104和105之外的8个堆栈存储器模块)。此外,堆栈存储器可包括DRAM、MRAN、PCRAM、忆阻器或以同构或异构方式组织的某些其它适合类型的存储器。图2是示出了示例同构存储器体系结构的堆栈存储器104的示图。示出了存储器管芯201和存储器管芯202。多个垫位于存储器管芯201上。这些垫包括垫207-222。可操作地将这些垫204-219中的每一个连接的是以例如中央总线223的形式的一条以上的内部连线。此外,多个TSV可操作地将存储器管芯201和存储器管芯202连接。例如,示出了 可操作地将垫219连接至垫225的TSV 224。还示出了垫225的分解图,分解图示出了位于垫225上的示例子阵列203-206。TSV 224支持数据在存储器管芯201和存储器管芯202
之间的传输。如所示,同构存储器体系结构具有垫之间的--映射,以使例如垫219映射到
垫225。这种一一映射是建立在每一个垫利用相同类型的存储器的基础上。图3是示出了示例异构存储器体系结构的堆栈存储器105的示例的示图。示出了存储器管芯301和存储器管芯302。位于这些存储器管芯301-302中的每一个上的是多个垫。例如,位于存储器管芯301上的是垫307-322。可操作地将这些不同垫307-322连接的是一条以上的以例如中央总线323形式的内部连线。在某些示例实施例中,连接不同垫的内部连线可能无法节约电能。如果利用TSV在垫之间读或写数据,则可能补充这种能力缺失。此外,可操作地将存储器管芯301连接至存储器管芯302的是TSV 324。具体地,TSV324将垫319连接至垫325。如图所示,相比于垫319,垫325在面积上较大,且包括较低密度型存储器。例如,包括垫319的存储器管芯301可具有16个垫,总共具有64个子阵列。相反,包括垫325的存储器管芯302可具有4个垫,总共具有16个子阵列。还示出了垫325的分解图,该分解图示出了位于垫325上的示例子阵列303-306。数据在垫319和325之间沿TSV 324的传输是异构的一种表示,因为其示出了较小面积的存储器管芯向较大面积的存储器管芯写或读数据。在某些示例实施例中,如果不同面积或延迟/等待时间的垫通过TSV被连接,则可能需要对垫执行修改,以便允许存储器管芯之间的互通。例如,如果关于面积垫325大于垫319,则存储器管芯302可被细分为多个存储器管芯。另外,如果这些面积或延迟/等待时间不同,则可以改变TSV连接的间隔尺寸,以使存储器管芯301中的两个以上垫可通过TSV与存储器管芯302中的一个垫组合和连接。此外,如果在存储器管芯上存在未使用的硅面积,则可重新组织芯片库,以使该未使用的硅可被使用。在某些示例实施例中,可利用该未使用的硅的重新组织来减少功率消耗。在某些示例实施例中,TSV的相对间隔尺寸提供了允许在位于不同的存储器管芯上的不同子阵列之间的管道输送存取的机会。例如,假设TSV带宽为“b位”。在检查点过程中,来自存储器管芯301的数据是以b位的速率从位于存储器管芯301上的子阵列读取,且被转移到存储器管芯302中的相对子阵列。利用管道输送,存储器管芯301可立即启动数据从存储器管芯301的子阵列至存储器管芯302中的相对子阵列的下一 b位转移。由于垫中不同子阵列以管道输送的方式被存取,因此可不必等待之前的转移操作完成即可启动该转移。此外,通过调节共享TSV连接的子阵列的数量和TSV 324的带宽,可缩短等待时间。例如,具有垫至垫连接(例如假设每一个垫具有4个子阵列)的3D设计可具有4个路线的速度高达4X的管道输送转移。图4是示例现有技术垫400的示图,该示图示出了激活存储器单元以用于读或写操作。示出了为子阵列203-206和对地址进行解码以访问子阵列203-206中的单元的预解码器模块402。通过内部连线(一条或多条)接收一地址,作为地址输入位401。位于子阵列203-206中的每一个上的是预充电/写入模块、连接的二维存储器单元以及读出放大器(SA)/多路复用器。此外,位于子阵列中的每一个上的是行解码器。在一个示例实施例中,地址的一部分被接收,且利用预解码器模块402被解码以用于子阵列203-206中的一个或多个。在子阵列203-206中的一个或多个上的行解码器进一步对剩余地址位进行解码,为了向子阵列上的二维存储器单元读或写数据。
图5是示出了数据的读取的示例现有技术垫500的示图。示出了将从其读取数据的子阵列203-206。该数据从子阵列203-206被读取,且通过多路复用器(MUX)501被路由作为数据输出位502,并沿内部连线被发送。在某些示例实施例中,利用三态缓冲器代替多路复用器501来从子阵列203-206读取数据。另外,其它的示例实施例可利用全局总线或其它适合的基底来从子阵列203-206读取数据。该数据可被路由至存储控制器或其它的适
口O图6是为在平行检查点过程中读或写数据而利用地址发生器模块来激活存储器单元的示例垫600的示图。示出了控制器601,该控制器601产生指令多路复用器603从地址发生器604检索地址的备份信号602。控制器601可为DIMM控制器、存储控制器或某些其它适合类型的控制器。地址发生器604可为产生与子阵列203-206中的存储器单元位置对应的数字值。此外,控制器601还可指令地址发生器604开始、设置、复位、改变或另外修改与地址发生器604相关的计数器值(例如时钟值)。如果未接收到备份信号601,则多路复用器602从地址输入605处表示的总线检索地址。利用由地址发生器604产生的或从总线检索得到的地址来从/向子阵列203-206读或写数据。如果接收到该备份信号602,则地址发生器604可产生关于位于存储器管芯上的垫中的每一个的地址,以平行读或写数据。具体地,由地址发生器604所产生的地址可在位于存储器管芯上的一个以上的垫中被共享。在某些示例实施例中,补充电容器,来解决如在本文中所述的平行检查点过程的执行中较差情形的峰值功率使用。图7是用于在平行检查点过程中利用TSV控制器执行读操作的示例垫700的示图。示出了产生向多路复用器703提供的备份信号702的控制器701。控制器701可为DMM控制器、存储控制器或其它适合的控制器。备份信号702通知垫700将从子阵列203-206读取数据,并且备份信号702沿TSV 708被传输。在本文中所使用的备份信号可为位值(例如“O”或“I”)。在某些示例实施例中,如果未提供备份信号702,则从子阵列203-206读取数据并沿输出总线704传输该数据。如图所示,如果接收到备份信号702,则多路复用器703从子阵列203-206中的一个或多个检索数据,并准备该数据在TSV 708上的传输。TSV控制器模块707控制数据在TSV 708上的放置。由多路复用器703检索的数据沿TSV 708被传输。TSV控制器模块707的示例包括确定性控制器(例如计数器)、TSV存取控制装置或某些其它适合的装置。在数据在TSV 708上的传输过程中,TSV控制器707激活不同的三态缓冲器705和706。图8是用于在平行检查点过程中执行写操作以将数据写入多个子阵列的示例垫800的示图。示出了产生地址信号802的控制器801和多路分配器803。控制器801可为DMM控制器、存储控制器或其它适合的装置。如果接收到该地址信号802,则多路分配器803从TSV 224检索数据和/或存储器地址,并将其写入子阵列203-206中的一个或多个和与其相关的存储器单元。在某些示例实施例中,该数据由垫700通过由TSV控制器707管理的TSV 708被提供给垫800。如果未接收到地址信号802,则从数据输入总线804检索数据,并将该数据写入子阵列203-206和与其相关的存储器单元。在某些示例实施例中,当存在备份信号或来自存储控制器的检查点请求时,顶部管芯中的每一个垫的内容被转移到备份存储器中的对应垫。例如,存储器管芯301的数据被转移到存储器管芯302 (即假设存储器管芯302充当主存储器)。如图6-8所示,由于每一个垫配置有足够的逻辑电路,以便从存储器单元读或写数据,因此在整个存储器上的备 份操作可平行发生。完成备份操作的时间是垫的尺寸(例如面积和/或密度)和连接垫的内部连线(例如中央总线、H形树段以及TSV)的带宽的函数。图9是示出了为了平行检查点而执行的有利于数据的读或写的示例方法900的流程图。可在计算刀片100上执行该方法900。执行操作901,以便等待处理器(例如与插座101相连的CPU)来发送检查点请求。执行确定操作902,来确定该请求是否为存储器行激活请求。如果确定操作902评估为“否”,则执行确定操作903。如果确定操作902评估为“是”,则执行操作907。操作907,当被执行时,基于放置在地址总线中的地址而激活存储器行。在某些示例实施例中,可由控制器601执行操作907。执行确定操作903,来确定该请求是否为由控制器601待执行的存储器列激活请求。如果确定操作903评估为“是”,则执行确定操作906。如果确定操作903评估为“否”,则执行确定操作904。确定操作906确定该请求是否为读请求。可由控制器701执行该确定操作906。如果确定操作906评估为“是”,则执行操作908。操作908,当被执行时,利用列地址从当前激活的行选择列组并将其发送至控制器701 (例如存储控制器)。如果确定操作906评估为“否”,则执行操作909。操作909更新利用列地址来自当前激活的行的该列组,该更新利用数据总线中的数据来进行。利用控制器801进行操作909。执行确定操作904,来确定是否请求平行检查点。如果确定操作904评估为“否”,则执行操作905。如果确定操作904评估为“是”,则执行操作910。可由控制器601执行确定操作904。执行操作905,来进行如由存储控制器所指示的DRAM程序。由控制器(例如控制器601)执行操作910,来启动备份过程。图10是示出了为了在平行检查点过程中沿TSV传输数据而激活地址发生器的示例方法1000的流程图。示出了被执行以设置备份信号(例如设置为“I”)并激活地址发生器604的操作1001。该操作1001可由控制器601来执行。执行确定操作1002以确定地址发生器是否在其所连接的一个特定垫或一组特定垫中已完成产生地址。如果确定操作1002评估为“否”,则执行操作1003。如果确定操作1002评估为“是”,则执行操作1005。执行操作1003,以利用由地址发生器604产生的地址来激活由该地址所表示的相应的单元。该操作1003可由预解码器605来执行。执行操作1004,以从被激活的单元读取数据,并通过TSV将该数据发送至另一个管芯(例如备份管芯)。执行操作1005,以等待与插座101相连的处理器来发送下一个请求(例如备份请求)。图11是示出了为了在平行检查点过程中将数据写入被激活的存储器单元而激活地址发生器的示例方法1100的流程图。示出了被执行以设置备份信号(例如设置为“I”)并激活地址发生器604的操作1101。该操作1101可由控制器601来执行。执行确定操作1102以确定地址发生器是否在其所连接的一个特定垫或一组特定垫中已完成产生地址。如果确定操作1102评估为“否”,则执行操作1103。如果确定操作1102评估为“是”,则执行
操作1105。执行操作1103,以利用由地址发生器604产生的地址来激活由该地址所表示的相应的单元。该操作1103可由预解码器605来执行。执行操作1104,以从TSV读取数据并将其存储在被激活的单元中。执行操作1105,以等待与插座101相连的处理器来发送下一个请求(例如备份请求)。图12是示出了为了在涉及异构存储器的平行检查点过程中将数据写入被激活的存储器单元而激活地址发生器的示例方法1200的流程图。示出了被执行以设置备份信号(例如设置为“I”)并激活地址发生器604的操作1201。该操作1201可由控制器601来执行。执行操作1202,以产生地址,使得该地址在多个子阵列上交错。在本文中所使用的交错包括与非邻接地址位置对应的存储器地址的产生。例如,如果使用交错,则地址可由地址发生器产生,以使这些地址在连接至TSV的不同子阵列之间循环进行。执行确定操作1203,以确定地址发生器是否在其所连接的一个特定垫或一组特定垫中已完成产生地址。如果确定操作1203评估为“否”,则执行操作1204。如果确定操作1203评估为“是”,则执行操作1206。执行操作1204,以利用由地址发生器604产生的地址来激活由该地址所表示的相应的单元。该操作1204可由预解码器605来执行。执行操作1205,以从TSV读取数据并将其存储在被激活的单元中。执行操作1206,以等待与插座101相连的处理器来发送下一个请求(例如备份请求)。在某些示例实施例中,在本文中所示的方法被存储在所示为单个介质的可移动的物理存储介质中,术语“机器可读介质”应被理解为包括存储一组以上指令的单个介质或多个介质(例如集中或分布数据库,和/或相关的高速缓冲存储器和服务器)。术语“机器可读介质”还应被理解为包括能够存储、编码或承载用于机器执行的一组指令和使得该机器执行本文中所示的方法的任意一种或任意多种的任意介质。从而术语“机器可读介质”应被理解为包括但不限于固态存储器、光磁介质以及载波信号。在本文中提及的方法可被写成在存储装置中存储的数据和指令,存储装置作为一个以上的计算机可读或计算机可用存储媒体或介质被实现。存储媒体包括不同形式的持久性存储器和非持久性存储器。注意的是,上面讨论的软件指令可被设置于一个计算机可读或计算机可用存储介质上,或者可被设置于分布于具有可能多的节点的大型系统中的多个计算机可读或计算机可用存储媒体上。这种计算机可读或计算机可用存储介质或媒体被考虑作为物品(或制品)的组成部分。物品或制品可涉及任意制造的单个元件或多个元件。在以上的描述中,阐述了大量细节,以便提供对本发明的理解。不过,本领域技术人员将理解,本发明没有这些细节也可实践本发明。虽然关于有限数量的实施例公开了本发明,但本领域技术人员将理解据其做出的大量修改和变化。所附权利要求意图在于覆盖落入本发明的“真实”精神和范围内的这种修改和变化。
权利要求
1.一种计算机系统,包括 位于堆栈存储器上的存储器管芯,被组成为包括数据的多个垫;以及 位于所述堆栈存储器上的另一个存储器管芯,被组成为另外多个垫,且通过硅穿孔TSV被连接至所述存储器管芯,所述数据沿所述TSV被传输。
2.根据权利要求I所述的计算机系统,进一步包括与所述多个垫中的位于所述存储器管芯上的垫相关的地址发生器,所述地址发生器产生与位于所述存储器管芯上的所述垫相关的子阵列存储器单元的地址。
3.根据权利要求2所述的计算机系统,其中所述地址发生器产生多个地址,所述多个地址中的每一个地址与多个子阵列存储器单元中的一个子阵列存储器单元相关。
4.根据权利要求2所述的计算机系统,其中所述地址发生器产生所述地址,作为存储器读操作或存储器写操作中的至少一种的一部分。
5.根据权利要求I所述的计算机系统,进一步包括启动所述数据沿所述TSV传输的控制器。
6.一种计算机系统,包括 多个子阵列,被分组作为位于存储器管芯上的垫,所述多个子阵列包括从所述子阵列中的至少一个子阵列读取的数据;以及 TSV控制模块,与位于所述存储器管芯上的所述垫相关,所述TSV控制TSV控制器控制数据在连接所述垫和位于另一个存储器管芯上的另一个垫的硅穿孔TSV上的放置。
7.根据权利要求6所述的计算机系统,进一步包括包含所述存储器管芯和所述另一个存储器管芯的堆栈存储器,所述堆栈存储器是双列直插式存储模块DIMM的一部分。
8.根据权利要求6所述的计算机系统,其中所述存储器管芯和所述另一个存储器管芯为同构,且具有相同的存储区域特点或相同的存储延迟特点中的至少一种。
9.根据权利要求6所述的计算机系统,其中所述存储器管芯和所述另一个存储器管芯为异构,且具有不同的存储延迟特点或不同的区域特点中的至少一种。
10.根据权利要求6所述的计算机系统,进一步包括与所述垫相关的、接收信号的多路复用器,所述信号指令所述多路复用器通过所述TSV将所述数据引向位于所述另一个存储器管芯上的所述另一个垫。
11.一种计算机系统,包括 多个子阵列,被分组作为位于存储器管芯上的垫,所述多个子阵列通过硅穿孔TSV被连接至另外多个子阵列,所述另外多个子阵列被分组作为位于另一个存储器管芯上的另一个垫,所述另外多个子阵列接收待写入所述另外多个子阵列中的至少一个另外子阵列的数据;以及 控制器,产生信号来识别与所述另外子阵列中的待写入所述数据的所述至少一个另外子阵列相关的地址。
12.根据权利要求11所述的计算机系统,其中所述信号被接收作为平行检查点模式的一部分。
13.根据权利要求11所述的计算机系统,其中所述控制器是DIMM控制器、中央处理器CPU或存储控制器中的至少一种。
14.根据权利要求11所述的计算机系统,进一步包括与所述另一个垫相关的、能从输入总线或所述TSV中的至少一种接收所述数据的多路复用器。
15.根据权利要求11所述的计算机系统,其中所述垫和另一个垫均具有四个子阵列。
全文摘要
一种系统和方法,包括位于堆栈存储器上的存储器管芯,该存储器管芯被组成为包括数据的多个垫。该系统和方法还包括位于所述堆栈存储器上的另一个存储器管芯,该另一个存储器管芯被组成为另外多个垫,且通过硅穿孔(TSV)被连接至所述存储器管芯,所述数据沿TSV被传输。
文档编号H01L23/043GK102687267SQ200980162152
公开日2012年9月19日 申请日期2009年11月13日 优先权日2009年11月13日
发明者纳温·穆拉利马诺哈尔, 诺曼·保罗·茹匹 申请人:惠普发展公司,有限责任合伙企业