CN101281508A - 编码写屏蔽 - Google Patents
编码写屏蔽 Download PDFInfo
- Publication number
- CN101281508A CN101281508A CNA2008100984734A CN200810098473A CN101281508A CN 101281508 A CN101281508 A CN 101281508A CN A2008100984734 A CNA2008100984734 A CN A2008100984734A CN 200810098473 A CN200810098473 A CN 200810098473A CN 101281508 A CN101281508 A CN 101281508A
- Authority
- CN
- China
- Prior art keywords
- mask
- key
- data value
- write
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
-
- 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
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/107—Serial-parallel conversion of data or prefetch
Abstract
一种存储系统,具有存储控制器和与存储控制器耦合的存储装置。存储控制器向存储装置输出写数据值。存储装置从存储控制器接收写数据值,并且将写数据值与屏蔽键值比较。如果写数据值与屏蔽键值匹配,则存储装置不存储写数据值。如果写数据值不与屏蔽键值匹配,则存储装置存储写数据值。
Description
本申请是国际申请日为2004年1月13日、国家申请号为200480003983.9、发明名称为“编码写屏蔽”的专利申请的分案申请。
相关申请的交叉引用
本申请要求由发明人Richard E.Perego和Frederick A.Ware于2003年1月13日提交的题为“Coded Write Masking”的美国临时专利申请No.60/439,666;由发明人Richard E.Perego和Frederick A.Ware于2003年3月11日提交的题为“Coded WriteMasking”的美国实用新型专利申请No.10/386,236;以及由发明人Richard E.Perego和Frederick A.Ware于2003年3月11日提交的题为“Memory System And Device With Serialized Data Transfer”的美国实用新型专利申请No.10/385,908的优先权。
技术领域
本发明一般涉及数据传送和存储技术,并且更特别地涉及在存储系统和访问存储系统的装置中的屏蔽写操作。
背景技术
现代存储系统中的读和写访问典型地通过多字节数据块的传送来处理。当从存储系统中读出不到一个完全数据块时,将包含希望数据的数据块的地址提供给存储系统,并且读出完全数据块。一般来说,对于读出多于所需要的数据没有代价。相反,当写入一个小于完全数据块的值时,重要的是除所写入的值外,存储数据块保持不变。这点典型地通过两种类型的专门写操作中的一种:合并写操作或屏蔽写操作来完成。
在合并写操作中(有时称为读-合并-写操作或读-修改-写操作),存储控制器读出要更新的数据块,以适当偏移将写数据值合并到数据块中,然后将更新了的数据块写回存储。因为需要两次存储器访问(读和写),所以合并写操作相当大地减小存储系统的峰带宽,并且因此典型地不用在高性能系统中。
在屏蔽写操作中,存储控制器向存储子系统发出屏蔽信号,以将数据块之内的各数据值限制为屏蔽或非屏蔽。存储子系统通过仅存储非屏蔽数据值而响应。为了传统起见,数据屏蔽的粒度典型地扩展到字节(即8位)粒度。具有8位或字节粒度的数据屏蔽有时称为字节屏蔽。虽然字节屏蔽具有需要存储子系统中的附加硬件的缺点(即为了检测和响应屏蔽信号),但是避免了与合并写操作关联的双访问性能代价。
图1说明一个现有技术字节屏蔽存储系统100,它具有一个存储控制器101和一个存储子系统103。存储控制器101包括一个主机接口105,以从一个访问请求器接收访问请求(REQ)、数据块(DATA)和屏蔽信息(MASK),和一个存储接口107,以向存储子系统发出对应请求、数据块和屏蔽信息。在屏蔽写操作中,经由主机接口105连同一个64位屏蔽字和一个屏蔽写请求一起,接收一个64字节写数据块(512位)。屏蔽字的各位与写数据块的各自字节相对应,并且如果设置,则指示该字节是一个不在存储子系统之内存储的屏蔽字节。通过经由请求通路102向存储子系统103发出一个屏蔽写指令,以及通过经由数据通路104向存储子系统传送写数据块和屏蔽字,存储控制器101对屏蔽写请求作出响应。数据通路包括用于并行传送四个数据字节的32条数据线108,和用于传送四个对应屏蔽位的四条屏蔽线106。因此,按十六个数据传送的顺序向存储子系统传送完整写数据块和屏蔽字,各传送包括四字节的写数据块和四位的屏蔽字。
存储子系统103由若干分立存储装置MEMR1形成,各具有一个请求接口和一个数据接口。各存储装置的请求接口与请求通路102耦合,以接收屏蔽写指令(包括一个地址值),并且各存储装置的数据接口与数据通路的各自9位片耦合,以在各十六个数据传送中接收一个数据字节和对应屏蔽位。对于各数据传送,只有当屏蔽位没有设置时,各存储装置才将数据字节存储在由地址值所指示的位置处(按照十六个数据传送中那个所作用的偏移)。
现有技术存储系统100的一个缺点是数据通路104中的相当部分,即每九条中有一条线路专用于屏蔽信号传送。因而,大于10%的数据通路带宽保留为支持字节屏蔽。当装置宽度(即除屏蔽输入外的存储装置数据接口的宽度)减小时,这个带宽代价变得更坏。例如,如果装置宽度从八位减小到四位,那么20%的数据通路带宽(每五条信号线中有一条)保留为字节屏蔽。因而,除强加相当带宽代价外,用于现有技术存储系统100的字节屏蔽技术实际上将存储子系统103之内的存储装置的装置宽度约束为至少八位。这个装置宽度约束直接转化为给定生产的存储装置和数据通路宽度的存储大小约束。例如,假定给定生产的存储装置和32线(除屏蔽线外)的数据通路宽度的存储容量为512兆位(Mb),则按点对点方式与存储控制器耦合的存储器的总容量为512Mb*(32/8)=2千兆位(Gb)。如图1虚线轮廓中装置MEMR2所示,虽然可以与数据通路104耦合一个附加组的存储装置,但是附加信号线连接实际上将数据通路104转换成多点总线。与点对点布置比较,多点总线布置具有不同的并且有时相当欠希望的信令特征。
附图说明
在附图的图中,借助于例子来说明本发明,但不作为对本发明的限制,其中相同标号指示类似元件,并且其中:
图1说明现有技术字节屏蔽存储系统;
图2说明按照本发明的一个实施例的存储控制器之内的操作的方法;
图3说明按照本发明的一个实施例的存储子系统之内的操作的方法;
图4说明按照本发明的一个实施例的存储系统;
图5说明按照本发明的一个实施例的存储装置;
图6说明按照本发明的一个实施例的图4的屏蔽逻辑;
图7说明用于通过图4的存储控制器传输写数据块的示例性流水线;
图8说明按照本发明的一个实施例的图6的键发生器的操作;
图9说明按照本发明的一个实施例的键发生器;
图10说明在图4的存储控制器与存储子系统之间的数据通路上传送字节大小的写数据值的示例性定时图;
图11说明在使用图10的数据传送方案的单级存储装置中能达到的存储容量;
图12说明本发明的一个可选择实施例中的数据传送方案,它能够使存储子系统的每级存储容量相当大地增加;
图13说明在使用图12的数据传送方案的单级存储装置中能达到的存储容量;
图14说明按照本发明的一个实施例的串行传送存储控制器的数据端口;
图15说明可以用于图14的数据端口之内的串行化电路的示例性实施例;
图16说明按照本发明的一个实施例的串行传送存储装置;
图17说明按照本发明的一个实施例的键选择存储控制器的操作;
图18说明应用于示例性的写数据块和对应屏蔽字的两阶段屏蔽写操作;
图19说明在图18的两阶段屏蔽写操作的各阶段之前和之后的存储子系统的内容;
图20说明按照本发明的一个实施例的键选择屏蔽逻辑电路;
图21说明通过图20的键选择电路实现的示例性状态图;
图22说明按照本发明的一个实施例的图20的键选择电路;
图23说明按照本发明的一个键选择实施例的存储装置;
图24说明将一个写数据块分成两个子块的示例性空间分割;
图25说明将一个写数据块分成两个子块的示例性时间分割;和
图26说明可以用于本发明的一个键选择存储系统之内的键选择器的示例性编码。
具体实施方式
在以下描述及在附图中,陈述特定术语和图符,以提供对本发明的完全理解。在有些实例中,术语和符号可能意指不需要实践本发明的特定细节。例如,电路元件或电路块之间的互连可以表示或描述为多导体或单导体信号线。各多导体信号线可选择地为单导体信号线,并且各单导体信号线可选择地为多导体信号线。表示或描述为单端的信号和信令通路也可以有差异,反之亦然。类似地,描述或画出具有高态有效或低态有效逻辑电平的信号在选择实施例中可以具有相反的逻辑电平。作为另一例,描述或画出包括金属氧化物半导体(MOS)晶体管的电路可选择地使用双极技术或任何其他技术实现,其中可以得到受信号控制的电流。关于术语,当信号驱动成低或高逻辑状态(或充电到高逻辑状态或放电到低逻辑状态),以指示一个特定条件时,信号称为“断定”。相反,信号称为“非断定”,以指示信号驱动(或充电或放电)成除断定状态外的状态(包括高或低逻辑状态,或当信号驱动电路跃变到高阻抗条件,例如开漏极或开集电极条件时可能发生的浮动状态)。当信号驱动电路断定(或在由上下文明确地声明或指示条件下,非断定)信号驱动与信号接收电路之间耦合的信号线上的信号时,信号驱动电路称为向信号接收电路“输出”信号。当在信号线上断定信号时,信号线称为“激活”,而当非断定信号时,信号线称为“释放”。另外,附于信号名的前缀符号“/”指示信号是低态有效信号(即断定状态是逻辑低状态)。信号名上的直线(例如)也用来指示低态有效信号。
这里以各种实施例公开一种写屏蔽存储系统,其中用一个键值代替进入的写数据块之内的屏蔽数据值。在一个实施例中,键值由存储系统动态地产生,然后代替各屏蔽数据值,以产生一个编码数据块。编码数据块和键值各输出到一个包括一个或多个分立存储装置的存储子系统。分立存储装置将键值与编码数据块的组成写数据值比较,并且仅存储那些确定为不与键值匹配的写数据值。因为键值用于识别屏蔽数据值,所以不必发送专用屏蔽信号(即如图1存储系统那样的每个写数据值的屏蔽信号),使得存储控制器与存储子系统之间的完全数据通路可用于写数据传送,并且相对于图1的现有技术存储系统达到相当大的带宽节省。
在本发明的一个选择实施例中,存储控制器从一个预定值表中选择一个键值,然后向存储子系统传递一个选择器值,以指示选择了预定值中的哪个。存储子系统之内的各分立存储装置包括预定值表,并且使用选择器值来选择选择器指定的键值。然后将所选择的键值用来识别屏蔽数据值,以便将它们排除在存储之外。因为选择器值可以显著小于键值,所以达到附加带宽节省。
虽然以下主要参照具有存储控制器和存储子系统的存储系统实施例描述本发明,但是所述技术和结构可以应用于处理系统之内的其他处。例如,一个处理器或其他存储请求器可以执行写数据块中的键值代替,并且将产生的编码数据块和键值传送给存储控制器。存储控制器然后可以将键值和编码数据块转发给存储子系统,以完成屏蔽写操作。
具有编码写屏蔽的存储系统
图2说明按照本发明的一个实施例的存储控制器之内的操作的方法。在153,存储控制器接收一个包含X个写数据值WD0-WD(X-1)的写数据块150,和一个包含X个屏蔽值M0-M(X-1)的对应屏蔽字152,各屏蔽值与写数据值的各自值相对应。写数据值可以是任何大小(例如8位、16位、32位等等),但是至少在图2的实施例中,包括足够数量的组成位,以保证至少有X个可能位模式。也就是,如果写数据值大小是N位,那么N足够大,以保证2N≥X。这种布置保证至少有一个N位的模式,它在屏蔽写操作中将不与非屏蔽数据值的X-1个可能位模式中的任何一个匹配(即因为写数据块中的X个写数据值中的至少一个被屏蔽)。在本描述的剩余部分,假定屏蔽值是单一位值,并且称为屏蔽位,然而可选择地使用多位屏蔽值。
在155,存储控制器产生一个键值,这里称为屏蔽键(mask key)158,具有N个组成位,以不与非屏蔽数据值中的任何一个匹配的模式布置。在157,用屏蔽键代替写数据块中的各屏蔽数据值,以产生一个编码数据块162。例如,如在154所示,设置屏蔽字的位M1和M(i)(例如,为逻辑“1”值),指示对应写数据值是屏蔽数据值。因此,用屏蔽键158代替屏蔽数据值,以产生编码数据块162。在159,将编码数据块和屏蔽键发送到存储子系统。
图3说明在图2中所涉及的按照本发明一个实施例的存储子系统之内的操作的方法。在175,存储子系统接收在图2中涉及的编码数据块,和一个屏蔽写请求,该请求包括屏蔽写命令、图2中所涉及的屏蔽键、和存储子系统之内的目标存储位置的地址(例如,要写入的存储位置范围的开始地址)。如下讨论,命令、屏蔽键和/或地址可以多路发送到一组请求线上,或可以经由各自组信号线接收。编码数据块可以在屏蔽写请求或其任何部分之前、之后或同时接收。
在177,将编码数据块之内的各写数据值与屏蔽键比较。如果给定写数据值不与屏蔽键匹配,那么在179按屏蔽写请求中指定的地址,将该写数据值存储在存储子系统之内。如果写数据值与屏蔽键匹配,则将该写数据值排除存储在存储子系统之内,从而达到屏蔽写操作的选择存储功能。
图4说明按照本发明的一个实施例的存储系统200。存储系统200包括存储控制器201和存储子系统203,它们经由控制通路214和数据通路216相互耦合。存储控制器201包括主机接口205、存储接口、屏蔽逻辑电路207和请求发生器209。
主机接口205耦合为从一个或多个访问请求器(例如处理器、专用集成电路(ASIC)、DMA控制器或其他请求器)接收访问请求、数据和屏蔽信息。当访问请求指定屏蔽写操作时,经由主机接口在存储控制器中接收具有Y个组成位的写数据块(DATA),和具有X个组成位的屏蔽字(MASK)。因而,各屏蔽位与写数据块中的Y/X个位的各自组相对应(即屏蔽粒度=Y/X)。每个这样的Y/X个位的可屏蔽组这里称为一个写数据值,并且写数据块称为具有X个组成写数据值。作为一个例子,如果Y=512(512位写数据块)且X=64(64位屏蔽字),那么写数据块包括64字节大小的写数据值。作为另一个例子,如果Y=512且X=16,那么写数据块认为包括十六个32位写数据值。可以使用许多其他Y和X值。
注意仅作为例子,主机接口的数据部分画出与Y条数据线耦合。主机接口的数据部分可选择地与多于或少于Y条数据线,以及在写数据传送的顺序中接收的Y位写数据块耦合。类似地,主机接口的屏蔽部分可以与多于或少于X条屏蔽信号线,以及在屏蔽传送的顺序中接收的X位屏蔽字耦合。
屏蔽写请求、写数据块和屏蔽字供给屏蔽逻辑207,屏蔽逻辑207又产生屏蔽键158和编码数据块208。编码数据块208供给存储接口之内的数据端口215,并且屏蔽键158供给请求发生器209。请求发生器209还从主机接口接收屏蔽写请求,并且作出响应,向存储接口211之内的控制端口213输出对应的控制信息210,该控制信息包括屏蔽键158和由屏蔽写请求指示的写地址。控制端口包括输出驱动器体(图4未具体示出),以经由控制通路214向存储子系统输出控制信息210。数据端口类似地包括输出驱动器体,以经由数据通路向存储子系统输出编码数据块208。
存储子系统203包括一组Z个分立存储装置2210-221Z-1,各与控制通路214和数据通路216的各自部分(即如2180-218Z-1所示)耦合。通过这种布置,各存储装置221从存储控制器201接收控制信息210和编码数据块208的各自部分。与各存储装置221耦合的数据线数W是屏蔽粒度的整数倍(即W=k(Y/X),其中k=1,2,3...),以便各存储装置以并行位组的形式至少接收一个完整写数据值(即在各自数据线上接收写数据值的各位)。在选择实施例中,数据线数W不必是屏蔽粒度的整数倍。
存储装置2210以扩展图表示,以说明基于键的写屏蔽操作。与各存储装置221一样,存储装置2210包括存储阵列245、读/写电路243和比较电路241。经由数据线218接收的各写数据值提供给比较电路241和读/写电路243。经由控制通路214(或选择地经由数据通路216)接收的屏蔽键158也提供给比较电路241,以与进入的写数据值比较。如果写数据值与屏蔽键158匹配,则比较电路241断定屏蔽信号246,以防止读/写电路243将该写数据值写入存储阵列245。如果写数据值不与屏蔽键匹配,则比较电路非断定屏蔽信号246,以使读/写电路243能够将数据值写入存储阵列245。
仍参照图4,存储装置2210-221Z-1共同地形成一个可寻址的存储单元,这里称为一个存储级。在一个存储级之内的各存储装置共享相同的物理地址范围,以便当在控制通路214上供给地址以用于读或写访问时,按指定地址(或相对指定地址的地址偏移)访问该级之内的所有存储装置。如图4所示,在存储子系统203之内可以包括一个或多个附加级的存储装置,以增加整个存储容量。在一个实施例中,各附加级的存储装置如虚线箭头214A所示共同与控制通路214耦合,并且各附加级的各存储装置如箭头218A0-218AZ-1所示与数据通路的各自部分耦合。
图5说明可以用于实现图4的各分立存储装置221的示例性存储装置260。存储装置260包括控制接口261、数据接口263、请求逻辑265、比较电路241、读/写电路243、地址解码器267和存储阵列245。存储阵列245包括按行和列布置的存储单元,使各行的存储单元经由各自字线270与地址解码器耦合,以及各列的存储单元经由各自位线272(或在差动耦合的存储单元的情况下经由位线对)与读/写电路243耦合。在读或写访问期间,经由控制接口261从存储控制器接收地址274,并且供给地址解码器267。地址解码器267对地址解码,以激活一条所选择字线270(即由地址指定的字线),从而能够对与该字线耦合的那行的存储单元进行读和写访问。在读操作中,所选择字线270的激活使得经由位线272将对应存储单元之内的数据供给读/写电路243之内的一个读出放大器体(图5中未示出)。读出放大器体将位线272上的相对低电平信号放大为逻辑电平(例如,互补MOS电平),并且向数据接口263之内的一组输出驱动器(图5中未示出)输出放大信号,以最终发送到存储控制器。
在写操作中,经由数据接口263之内的接收电路271接收写数据值,并且装入读/写电路243之内的各自写驱动器2730-273K-1。当由请求逻辑265断定写选通信号248(WR)时,写驱动器273将写数据值输出到位线272上,以存储在与激活字线270耦合的那行存储单元之内。在图5的实施例中,提供逻辑AND门2750-275K-1,以在写驱动器2730-273K-1的各自允许输入(EN)下选择性地阻止写选通信号248的断定。各AND门275包括一个耦合为接收写选通信号248的非倒相输入,和一个耦合为从比较电路241接收匹配信号2520-252K-1中的各自信号的倒相输入。参照AND门2750,当断定匹配信号2520时(例如,为逻辑高状态),即使写选通信号248变为高,AND门2750的输出也保持低,从而防止写驱动器2730向存储阵列245输出写数据值。当非断定匹配信号2520时,AND门2750将写选通信号248传到写驱动器2730的允许输入,使写驱动器2730能够向存储阵列245输出一个写数据值。
比较电路241包括若干比较器2690-269K-1,各具有一个输出,与AND逻辑门2750-275K-1的各自门的倒相输入耦合,并且各具有多个输入,耦合为从请求逻辑265接收比较允许(CE)信号246,从控制接口261接收屏蔽键158,以及从数据接口263接收各自写数据值。当在请求逻辑265之内接收除屏蔽写命令之外的写命令时,请求逻辑265非断定比较允许信号246,以禁止比较器269断定匹配信号252,从而能够使写选通信号248通过逻辑AND门2750-275K-1传递到写驱动器2731-273K-1的各自允许输入。当在请求逻辑265之内接收屏蔽写命令时,请求逻辑265断定比较允许信号246,以能够使比较器2690-269K-1分别断定匹配信号2520-252K-1。各比较器269将屏蔽键158与写数据值中的各自值比较,并且如果屏蔽键和写数据值匹配,则断定对应匹配信号252,以防止写选通信号248传递到对应写驱动器273的允许输入。通过这个操作,将与屏蔽键158匹配的各写数据值排除存储在存储阵列245之内。
虽然存储装置260画出包括多个写驱动器273、多个AND门275和多个比较器269,但是存储装置260可选择地具有单个写驱动器273、AND门275和比较器269,并且对应地减少数据接口之内的接收电路271的数目。同样,存储阵列245之内的存储单元可以用任何能够至少表示两个数据状态的存储元件实现。例如,在动态随机存取存储器(DRAM)装置中,存储阵列245中的各存储单元由电容装置实现,该电容装置可以为充电或放电状态,以表示两个可能数据状态(多个不同充电电平可以用来实现两个以上状态的表示,如将单个电容存储元件用来表示两个或多个数据位)。在静态随机存取存储器(SRAM)装置中,用双稳态锁存电路实现存储阵列245之内的各存储单元。也可以使用非易失存储单元(例如,浮动门装置,例如用于闪速可擦可编程只读存储装置的那些装置),如可以是非半导体存储元件(例如,磁介质或光介质)。
虽然已经根据对存储阵列245的直接访问描述了存储装置260之内的读和写访问,但是这样的访问可选择地或另外地针对存储装置260之内的页缓冲器。例如,在DRAM装置的情况下,存储缓冲器(例如,锁存器体)可以用来暂时存储一行存储阵列245的内容,用于随后针对该行的读或写访问。在这样装置中,屏蔽写操作可以直接针对存储缓冲器以及较大存储阵列245。
图6说明按照本发明的一个实施例的图4的屏蔽逻辑207。屏蔽逻辑207包括键发生器291、屏蔽缓冲器295、写数据缓冲器297和数据编码器299。将进入的写数据块和屏蔽字(即经由主机接口接收的DATA和MASK)分别存储在写数据缓冲器297和屏蔽缓冲器295中,并且还与进入的访问请求(REQ)一起供给键发生器291。键发生器291产生一个至少具有如写数据值那样多的组成位的屏蔽键158(即Y/X位,其中Y是写数据块中的位数,以及X是屏蔽字中的位数;注意屏蔽键可以具有比写数据值少的组成位,例如,在这些实施例中,其中根据与屏蔽键的比较,省略写数据值的Y/X位中的一个或多个),并且将屏蔽键158输出到数据编码器299和请求发生器(即图4的电路块209)。在一个实施例中,写数据缓冲器297和屏蔽缓冲器295是排队电路(即先进先出存储电路),它们在一次或多次装载操作中分别装入写数据块和屏蔽字,并且然后用来在移位操作的顺序中将写数据块和屏蔽字的组分值进送给数据编码器299。例如,在一个实施例中,将64字节写数据块和对应64位屏蔽字分别装入写数据缓冲器297和屏蔽缓冲器295,并且其后在四字节和四个对应屏蔽位的十六次连续传送中输出到数据编码器299。在写数据值和屏蔽位向数据编码器299的各传送之后,使写数据缓冲器297和屏蔽缓冲器295的内容进送,以便在写缓冲器和屏蔽缓冲器的头部出现一组新的写数据值和屏蔽位,并且可用于传送到数据编码器299。在各连续传送操作中供给数据编码器299的那组写数据值这里称为组块。在一个实施例中,组块大小R(即每个组块的写数据值的数目)是存储控制器与存储子系统之间的数据通路(例如,图4的通路216)的宽度的函数,并且设置为允许给定组块的各写数据值能够同时输出到数据通路上。
仍参照图6,数据编码器299包括一组R个选择器电路3010-301R-1,各具有第一数据输入,耦合为从键发生器291接收屏蔽键258,第二数据输入,耦合为从写数据缓冲器297之内的R个引导(leading)存储位置中的各自位置接收写数据值,和选择输入,耦合为从屏蔽缓冲器295之内的R个引导存储位置中的各自位置接收屏蔽位。作为一个例子,参照选择器电路3010,如果在选择输入接收的屏蔽位为高(例如,逻辑1),则对应写数据值指示为屏蔽数据值,并且选择器电路3010选择屏蔽键158代替写数据值,以输出到数据端口(即图4的元件215)。如果屏蔽位为低,则写数据值是非屏蔽数据值,并且由选择器电路3010输出到数据端口。因而,通过用屏蔽键158代替进入的写数据块之内的各屏蔽数据值,数据编码器299产生编码数据块。
图7说明通过图4的存储控制器用于传输写数据块的示例性三级流水线。在流水线的第一级的连续间隔PS1,接收写数据块WDB0-WDBn。然后缓冲写数据块,并在流水线的第二级的连续间隔PS2用于产生屏蔽键。最后,在流水线的第三级,将写数据块转换成编码数据块(CDB),并且传送到存储子系统。在图7所示的实施例中,在流水线三级各自之内的操作对于递增不同的写数据值同时执行。例如,在间隔0(INT0)接收写数据块WDB0之后,在间隔1与基于写数据块WDB0产生屏蔽键0相同时,接收写数据块WDB1。类似地,在间隔2与产生屏蔽键1(基于WDB1)相同时以及与编码数据块0(即在数据编码器中已经执行屏蔽键代替之后的写数据块0)的发送相同时,接收写数据块WDB2。在选择实施例中,流水线的各级可以分解成另外的流水线级。
图8说明按照本发明的一个实施例的图6的键发生器291的操作。图8的操作根据字节屏蔽描述,但是也可以应用于具有其他屏蔽粒度的系统。如上所述,键发生器操作以产生屏蔽键,该屏蔽键不与进入的写数据块之内的任何非屏蔽字节匹配。在图8的实施例中,键发生器通过迭代修改屏蔽键,每次迭代一位,直到可能与屏蔽键匹配的写数据块的非屏蔽字节数减小为零,来达到这个结果。可能与屏蔽键匹配的非屏蔽字节组这里称为匹配池,并且在311通过从写数据块中除去所有屏蔽字节而最初建立。也就是,假定一个写数据块具有X字节和Q屏蔽字节(Q至少为一),并且假定屏蔽键的一个任意初值,则屏蔽键可能与进入的写数据块之内的所有非屏蔽字节X-Q匹配。在313,将表示屏蔽键之内的位位置的位位置索引i初始化为零,并且将表示匹配池之内的字节数的匹配池大小j初始化为X-Q。在315,将匹配池之内的所有字节B0-Bj-1的第i位求和,以产生一个计数T。因而,在操作315的第一次迭代中,计数表示匹配池字节的第一位位置的1的数目。在317,将计数与j/2比较,以确定匹配池之内是否有更多字节在第i位位置具有1或在第i位位置具有0。如果计数大于j/2,那么匹配池中字节的大多数在第i位位置具有1,并且在319A将屏蔽键的第i位MK[i]设置为0。在321A,从匹配池中消除在第i位位置具有1的所有字节,因为这些字节现在肯定不与屏蔽键匹配。在323A,将匹配池大小j减小计数T的值,以反映在321A消除操作之后保留在匹配池内的字节数。返回判决操作317,如果T小于或等于j/2,那么匹配池中至少一半字节在第i位位置具有0。在这种情况下,在319B将屏蔽键的第i位设置为1,并且在321B从匹配池中消除在第i位位置具有0的字节,因为这些字节现在肯定不与屏蔽键匹配。在323B,将匹配池大小j设置为1的计数T的值,因为该数表示在321B的消除操作之后保留在匹配池中的字节数。在325,使位位置索引i递增,以准备在下一个位位置的计数。在327,将位位置索引与最大值比较,以确定屏蔽键产生是否完成。一般地,对于具有X个写数据值的写数据块,至少其中之一是屏蔽值,则在初始匹配池中唯一位模式的最大数是X-1。因此,如果在操作315-323的各迭代中消除匹配池之内的至少一半字节,那么在操作319-323的log2(X)次迭代之后,保证匹配池减小为零(即屏蔽键不与写数据块之内的非屏蔽写数据值中的任何一个匹配)。例如,如果写数据块包括64字节,其中之一屏蔽,那么在操作315-323的log2(64)=6次迭代之后,屏蔽键将不与非屏蔽数据字节中的任何一个匹配。因此,如果在327确定位位置索引i已达到log2(X),则屏蔽键产生操作完成。如果位位置索引还没有达到log2(X),那么在315在更新位位置索引以1的计数开始,执行操作315-323的另一次迭代。
因为在操作315-323的各迭代中设置或复位一个不同屏蔽键位,所以从相对于非屏蔽写数据值使屏蔽键唯一的观点来说,屏蔽键中仅六位有效。屏蔽键的剩余位(例如,字节屏蔽实施例中的剩余两位)可以用0或1填补。同样,用来建立屏蔽键唯一性的六位可以出现在分配给屏蔽键的总位数之内的任何偏移处。例如,在图8的字节屏蔽实施例中,位位置索引能从2至7以代替从0至5递增。
在一个执行操作315-323的一次额外迭代的选择实施例键产生实施例中,可以省略在311从写数据块除去屏蔽数据值,以及在操作313的随后X-Q计算。例如,在64字节写数据块的情况下,如果通过操作315-323的各自迭代分配了屏蔽键的至少七位,那么即使所有64位唯一,结果形成的屏蔽键也将不与组成写数据字节中的任何一个匹配。也就是,因为在操作315-323的各迭代中,从匹配池中消除写数据块的字节中的至少一半,所以在七次迭代之后,得到一个在7位值的128个模式之中保证唯一的模式,意指屏蔽键相对于写数据块的64字节肯定唯一。
仍参照图8,在另一个选择键产生实施例中,在313-ALT(图8虚线轮廓所示)将匹配池大小j初始化为X,并且按照在315确定的计数,在操作323-ALT将匹配池大小对分,而不是在323A和323B那样调整(即用操作323-ALT代替操作323A和操作323B)。通过这种方法,j表示在操作315-321的任何迭代之后,匹配池中写数据值的保证最大数,而不是匹配池的实际大小。这个选择键产生实施例特别适合于组合逻辑的实现,因为由323-ALT的除以2操作能通过将值j右移一位完成,并且避免在313和323A中的算术运算。
图9说明一个键发生器350的实施例,它按照图8中操作313-ALT和323-ALT所说明的选择布置操作。仅为了说明起见,键发生器350假定在一个接收64字节写数据块的字节屏蔽存储控制器中操作。在选择实施例中可以使用其他屏蔽粒度和块大小。最初,将进入的写数据块的字节与它们的各自屏蔽位的补码进行逻辑AND,以产生一个屏蔽限定字节池BYTE00&M00,BYTE01&M01,...,BYTE63&M63。通过这个操作,即一种与图8的屏蔽字节除去操作311相对应的操作,将屏蔽限定字节池中的各屏蔽数据值强制为零。对于屏蔽限定字节池之内的各字节的位0,使用加法电路351产生1的计数(即1的和)。因为写数据块的至少一字节被屏蔽,所以由加法电路351产生的1的计数可能从0到63范围,并且因此产生一个6位值T0[5:0],其中最高有效位T0[5]如果设置,则指示屏蔽限定字节池中多于一半字节在第0位位置具有1。因此,通过倒相器353的操作使屏蔽键的位零MK[0]设置为T0[5]的补码。
用于产生屏蔽键的位1即MK[1]的电路包括两个加法电路3610和3611,和一个消除电路360。消除电路包括64个位消除电路E0,它们各与各自屏蔽限定字节相对应,并且按照屏蔽键的第0位的状态MK[0],产生与两个可能的消除结果相对应的两个信号。例如,如果MK[0]为0,那么对于位0(b0)为1的屏蔽限定字节池的所有字节将被消除,以及如果MK[0]=1,那么对于b0=0的所有字节将被消除。因此,位消除电路E0各产生一个第一限定位1(qb10),如果b0=1,则将其强制为0,并且如果b0=0,则按照b1设置;和一个第二限定位1(qb11),如果b0=0,则将其强制为0,并且如果b0=1,则等于b1。按布尔符号(‘&’指示位AND操作):
qb10=b1&/b0;和
qb11=b1*b0。
加法电路3610将屏蔽限定字节池内各字节的qb10值相加,以产生1的计数T10[4:0],它与MK[0]为0时的消除结果相对应,并且加法电路3611将屏蔽限定字节池内各字节的qb11值相加,以产生1的计数T11[4:0],它与MK[0]为1时的消除结果相对应。因为在消除电路360中执行的消除,与MK[0]的实际状态相对应的1的计数从0到31范围,并且因此产生一个5位值,其中如果屏蔽限定字节池中的31个可能非消除字节多于一半在位1位置具有1,则最高有效位设置。因此,将两个计数值T10[4]和T11[4]的最高有效位(MSB)输入到一个多路复用器362,它按照MK[0]选择计数MSB中的一个。所选择计数MSB然后由倒相器363倒相,以形成屏蔽键值的位1即MK[1]。因而,如果对于屏蔽限定字节池中多于一半的非消除字节的可能数,b1=1,则MK[1]设置为0,否则MK[1]设置为1。
用于产生屏蔽键的位2即MK[2]的电路,依赖如用于产生屏蔽键的位1的电路那样先前确定的屏蔽键位两倍,并且因此包括四个而不是两个加法电路3710-3713,和一个消除电路370,该消除电路370对于每个屏蔽限定字节产生四个而不是两个限定位值。更具体地,消除电路370包括64个位消除电路E1,各产生四个限定位值qb20-qb23,它们与按照MK[1:0]的四个可能状态的四个可能消除结果相对应。例如,如果MK[1:0]=00,那么对于b1=1和b0=1的屏蔽限定字节池中的所有字节将被消除;如果MK[1:0]=01,那么对于b1=0和b0=1的所有字节将被消除;等等。因此,位消除电路D1各按照下列表达式产生四个限定位值qb20-qb23:
qb20=b2&/b1&/b0;
qb21=b2&/b1&b0;
qb22=b2& b1&/b0;和
qb23=b2& b1& b0。
加法电路3710将屏蔽限定字节池内各字节的qb20值相加,以产生1的计数T20[3:0],它与MK[1:0]=00时的消除结果相对应,以及加法电路3711-3713类似地产生三个分别的1的计数T21[3:0]-T23[3:0],它们分别与MK[1:0]为01、10和11时的消除结果相对应。因为在消除电路370中执行的消除,所以与MK[1:0]的实际状态相对应的1的计数从0到15范围,并且因此产生一个4位值,其中如果屏蔽限定字节池中15个可能非消除字节多于一半在位2位置具有1,则最高有效位设置。将四个计数值T20[3]-T23[3]的最高有效位(MSB)输入到一个多路复用器372,它按照MK[1:0]值选择四个计数MSB中的一个。所选择计数MSB然后由倒相器373倒相,以形成屏蔽键值的位2即MK[2]。因而,如果对于屏蔽限定字节池中多于一半的非消除字节的可能数,b2=1,则MK[2]设置为0,否则MK[2]设置为1。
在图9的实施例中,除在各级使加法电路数和消除电路产生的限定位值数加倍外,用于产生屏蔽键位MK[3]、MK[4]和MK[5]的电路与用于产生MK[2]的电路类似。因而,用于产生MK[5]的电路包括32个加法电路3910-39131并且消除电路390包括64个位消除电路E5,它们各产生32个限定位值qb50-qb531,这些限定位值与按照MK[4:0]的32个可能状态的32个可能消除结果相对应。加法电路3910-39131产生32个分别的1的计数T50[0]-T531[0],它们与32个可能消除结果(即按照MK[4:0])相对应。因为在消除电路390中执行的消除,所以与MK[4:0]的实际状态相对应的1的计数从0到1范围,并且因此产生一个单一位计数,如果屏蔽限定字节池中的单个可能剩余字节在位5位置具有1,则该单一位计数设置为1。将32个计数位T50[0]-T232[0]输入到一个多路复用器392,它按照MK[4:0]值选择32个计数位中的一个。所选择计数位然后由倒相器393倒相,以形成屏蔽键值的位5即MK[5]。因而,如果对于屏蔽限定字节池中的单个可能剩余字节,b5=1,则MK[5]设置为0,否则MK[5]设置为1。如上讨论,屏蔽键在任何剩余位位置(即在字节屏蔽实施例中位位置MK[6:7])用1或0填补。可选择地,剩余位位置可以保留为任意值。
在本发明的选择实施例中可以对图9的键发生器实行许多改变。例如,可以将消除电路(360,370,...,390)的各级所产生的限定位值提供给下一级消除电路,以减小逻辑冗余。例如,由电路D0产生的限定位值可以提供给电路D1。同样,如果提供用于产生附加屏蔽键位的电路(例如,用于产生MK[6]的电路),则可以省略用于产生初始匹配限定字节池的逻辑AND操作。而且,屏蔽键可以在多次位产生迭代而不是单次迭代中产生。一般地,对于N位屏蔽键,屏蔽键发生器每次迭代可以产生屏蔽键位中的某些数K,其中K小于或等于N,将所有计算的键位送给各随后迭代(即如果需要多于一次迭代)。例如,如果N=6且K=1,则屏蔽键发生器将使用单个加法电路(例如,图9的加法电路351)每次迭代产生一个屏蔽键位,从而用六次迭代完成屏蔽键。如果N=6且K=3,屏蔽键发生器将使用七个加法电路(即1+2+4)每次迭代产生三个屏蔽键位,从而用两次迭代完成屏蔽键。图9说明一个实施例,其中N=6且K=6,使用63个加法电路和单次迭代产生所有屏蔽键位。一般地,在键产生电路的量与屏蔽键产生的等待时间之间存在权衡。因此,按照特别应用的目标和约束,实际上能将屏蔽键发生器定制为N和K中的任何值。虽然图9示出了用于产生屏蔽键的组合逻辑电路,但是可选择地使用通用处理器、专用处理器、专用状态机或其他基于状态的电路,以产生屏蔽键。更一般地,在不违反本发明的精神和范围下,可以使用任何电路,以产生不与写数据块之内的非屏蔽数据值匹配的屏蔽键。
写数据值的串行化传送
图10说明在图4的存储控制器与存储子系统之间的32线数据通路上,用于传送字节大小的写数据值的示例性定时图。如所示,在十六个发送间隔的每个期间,在数据通路上并行传送四个字节,由此实现在十六个发送间隔上传送完整的64字节写数据块。如参照图4和图5所讨论,将屏蔽键与存储子系统的组成存储装置之内接收的各写数据值比较。因而,如果使用图10的并行数据传送方案,则各存储装置一般需要一个至少如写数据值的大小那样宽(即至少如屏蔽粒度那样宽)的数据接口。因此,如图11中所示,按照图10的约束(即32线数据通路和字节屏蔽粒度)用单级存储装置401所能达到的最大存储容量是4×SC位,其中SC是给定生产的存储装置401的最大存储容量。更一般地,单级存储装置的最大存储容量是SC×(DPW)/(MG),其中DPW是存储控制器与存储子系统之间的数据通路的宽度,以及MG是屏蔽粒度。可以添加附加级的存储装置,以增加存储系统的容量,但是添加的信号压降一般地带来数据通路上的信令性能降低。
图12说明本发明的一个选择实施例中的数据传送方案,它能够使存储子系统的每级存储容量相当大地增加。如所示,不是在数据通路上并行传送写数据值,而是经由单数据线将各写数据值串行传送到存储子系统。例如,在发送间隔0期间,经由数据通路的各自线将各32字节(B0-B31)的位0传送到存储子系统。特别地参照数据线DQ00,在各自发送间隔0至7期间,在数据线DQ00上串行传送字节B0的位0-7。在发送间隔0-7期间,分别在数据线DQ01-DQ31上类似地串行传送字节B1-B31。在发送间隔8-15期间,分别在数据线DQ00-DQ31上串行传送写数据块的剩余字节B32-B63。通过按这样方式串行传送写数据值,可以使存储子系统之内的各存储装置的数据接口如单一位那样窄,并且与32条数据线中的对应一条耦合(在一个选择实施例中可以使用较多或较少数据线)。如图13中所示,这样布置能够在存储子系统的每级使用32个SC大小的存储装置403,有效地使存储子系统的每级存储容量倍增了写数据值的大小。例如,在具有32线数据通路的字节屏蔽存储系统中,存储子系统的每级存储容量以8的系数从图11的4×SC容量增加到图13的32×SC容量。每级存储容量的增加在较大屏蔽粒度下甚至变得更加明确。
图14说明按照本发明的一个实施例的串行传送存储控制器420的数据端口421。数据端口421包括一组K个输出驱动器4250-425K-1,和对应一组K个串行化电路4230-423K-1。在发送时钟信号422即TCLK的每第N次循环之后,将各自N位写数据值装入各串行化电路423,并且然后在每个TCLK的随后N个循环期间,移出串行化电路423,一次一位。通过这种布置,在一个写数据值移出给定串行化电路423之后,如果可得到,则用一个新的写数据值重新装入该串行化电路。各输出驱动器与各自串行化电路的输出426耦合,以接收位的串行流,这些位形成写数据值。在图14的实施例中,各输出驱动器4250-425K-1在发送时钟信号422的各循环期间,在数据线DQ0-DQK-1的对应线上发送写数据值的组成位。可选择地,输出驱动器425可以响应一个时钟信号发送,这个时钟信号与用于控制串行化电路423之内的移位操作的时钟信号有相位偏移。同样,在一个实施例中,串行化电路423和输出驱动器425响应发送时钟信号422的两个边沿,在发送时钟信号422的N/2时钟循环之后,使写数据值的N位移出给定串行化电路,并且在发送时钟信号422的每次循环,在对应数据线上一个接一个发送写数据值的两位。在又一个实施例中,输出驱动器425是能够在单信号发送中传送两个或多个位的多电平输出驱动器(例如,发送四个可能信号电平中的一个,以每次发送传送一个两位符号)。在这样实施例中,用于对输出驱动器425计时的时钟信号可以在比用于控制串行化电路423之内的移位操作的时钟信号低的频率下操作(例如,在两位符号发送的情况下的频率一半)。可选择地,可以在各移位操作中从各串行化电路423输出两位。
图15说明可以用在图14的数据端口421之内的串行化电路430的示例性实施例。串行化电路430包括一个移位寄存器433和一个N模计数器431,各耦合为接收一个发送时钟信号422(TCLK)。N模计数器431响应TCLK的各上升和/或下降沿递增,并且从0到N-1的终端计数重复地计数,当达到终端计数时对移位寄存器433断定一个负载信号432。移位寄存器通过将一个写数据值434的N位装入移位寄存器之内的一组对应的N个存储元件,对负载信号432的断定作出响应。写数据值的第0位存储在移位寄存器433的头存储元件435,并且输出到信号线426上(即由一个输出驱动器接收)。在将写数据值434装入移位寄存器433之后,响应TCLK的上升和/或下降沿,使写数据值的组成位一次向前移动一位(即向头存储元件435移位)。通过这种布置,写数据值的各位依次向移位寄存器433的头存储元件435移动,并且输出到信号线426上。在一个选择实施例中,可以首先使写数据值434移出最高有效位。同样,可以提供两个或多个移位寄存器433,以一次向输出驱动器供给多于一位,如多电平输出驱动器的情况那样。
图16说明按照本发明的一个实施例的串行传送存储装置440。存储装置440包括控制接口261、数据接口441、存储阵列245、请求逻辑265、比较器269、逻辑AND门275和写驱动器273。虽然没有具体示出,但写驱动器273和逻辑门275形成读/写电路的一部分,该电路包括读出放大器体,经由位线272与存储阵列耦合。控制接口261、存储阵列245、请求逻辑265、地址解码器267、比较器269、写驱动器273和逻辑AND门275如上参照图5所述那样一般操作,但是数据接口441修改为能够经由单数据线DQ接收写数据值。更具体地,数据接口441包括接收器电路271和解串电路443,各耦合为接收一个接收时钟信号442(RCLK)。接收电路响应接收时钟信号442的各上升和/或下降沿,对信号线271采样,并且向解串电路443一个接一个地输出采样位。在一个实施例中,解串电路443是一个移位电路,它响应接收时钟信号442的各自跃变一位接一位地装入。也就是,当接收电路271输出各采样位时,将位移入解串电路443,以重新构成由存储控制器串行化的写数据值。在多电平信令实施例中(即由接收电路271接收的各符号表示多于一位的信息),接收电路271可以每个接收符号输出两个或多个位,响应接收时钟信号442的各跃变,使两个或多个位选通到解串电路443中。在接收时钟信号442的每N次跃变之后(即在上升沿、下降沿或其两者上发生的各跃变),将一个完整写数据值移入解串电路443,并且在屏蔽写操作的情况下,请求逻辑265断定比较允许信号246,以使比较器269能够将写数据值与经由控制接口261接收的屏蔽键242比较。如果屏蔽键和写数据值匹配,那么写数据值是一个屏蔽数据值,并且比较器269断定屏蔽信号252,以防止写数据值的存储。也就是,如参照图5所述的那样,所断定屏蔽信号252防止由请求逻辑产生的写选通信号248断定写驱动器273的允许输入。如果来自解串电路443的写数据值不与屏蔽键242匹配,则比较器269不断定屏蔽信号252,并且写选通信号248经由逻辑AND门275传递到写驱动器273的允许输入,从而使写驱动器273能够将写数据值存储在存储阵列245之内。
仍参照图16,接收电路271、解串电路443、比较器269、逻辑门275和写驱动器273形成存储装置440之内的写数据通道。虽然在图16的实施例中仅画出一个这样的写数据通道,但是可选择地提供多个写数据通道,使各写数据通道的接收电路271与各自外部数据线DQ耦合。
键选择实施例
在参照图4至图9和图14至图16所述的示例性存储系统中,存储控制器对于各进入的写数据块产生屏蔽键,然后将屏蔽键传送到存储子系统。在具有字节屏蔽粒度的64字节写数据块的情况下,代替64个离散屏蔽信号(即参照图1所述的离散屏蔽信号)而传送8位屏蔽键,达到存储控制器与存储子系统之间传送的屏蔽信息量的8∶1减少。就存储控制器与存储子系统之间的总接口而言,达到每个写数据块56位的带宽节省。
在本发明的一个选择实施例中,这里称为键选择实施例,甚至达到更大带宽节省和更大屏蔽信息传送的减少。在该键选择实施例中,存储控制器从一个预定屏蔽键表中选择一个屏蔽键,然后将一个表示所选择屏蔽键的值(这里称为键选择器)供给存储子系统。存储控制器使用所选择屏蔽键,以产生一个编码数据块,然后以参照图10和图12所述的并行传送或串行传送方式,向存储子系统输出编码数据块。形成存储子系统的各存储装置(或存储装置)包括预定屏蔽键的表,并且按照从存储控制器接收的键选择器选择预定键中的一个。各存储装置然后按以上参照图5和图16所述的方式,使用所选择屏蔽键,以识别屏蔽数据值,并且将屏蔽数据值排除存储在存储子系统中。
因为键选择器可以具有比屏蔽键值少得多的位(屏蔽键按照屏蔽粒度确定大小),所以代替屏蔽键向存储子系统传送键选择器,可以在存储控制器与存储子系统之间的通路中达到附加带宽节省,并且还达到屏蔽信息传送的减少。例如,在一个实施例中,键选择器是一个用于在两个预定屏蔽键之间选择的单一位值。例如代替8位屏蔽键传送键选择器,使从存储控制器到存储子系统传送的屏蔽键信息达到8∶1减少。与参照图1所述的现有技术系统中从存储控制器到存储子系统传送的64屏蔽位比较,传送单一位键选择器值使屏蔽信息传送达到64∶1减少。
图17说明按照本发明的一个实施例的键选择存储控制器的操作。为了描述,假定字节屏蔽粒度,但是在选择实施例中可以使用其他屏蔽粒度。在475,经由主机接口接收具有X个组成字节的写数据块。在477,将第一预定屏蔽键即屏蔽键A与写数据块之内的各非屏蔽字节比较。如果没有一个非屏蔽字节与屏蔽键A匹配(判决块479),那么在481将屏蔽键A分配为所选择屏蔽键(SMK),并且将键选择器(KSEL)设定为一个与屏蔽键A相对应的值(在本例中KSEL=0)。返回判决块479,如果写数据块的非屏蔽字节中任何一个确定与屏蔽键A匹配,那么在487将各非屏蔽字节与第二预定屏蔽键即屏蔽键B比较。如果写数据块的非屏蔽字节中没有一个与屏蔽键B匹配(判决块489),那么在491将屏蔽键B分配为所选择屏蔽键,并且将键选择器设定为对应值(在本例中KSEL=1)。
如果预定屏蔽键中至少一个确定不与写数据块的非屏蔽字节中任何一个匹配,那么在483通过用所选择屏蔽键代替写数据块之内的各屏蔽字节,产生一个编码数据块。在485,将编码数据块和键选择器发送到存储子系统。
如果预定屏蔽键两个中没有一个确定相对于写数据块的非屏蔽字节为唯一(即各屏蔽键至少与一个非屏蔽字节匹配,结果带来在479和489的肯定判决),那么出现这里称为屏蔽冲突的状况。在图17的实施例中,屏蔽冲突通过两阶段屏蔽写操作解决。在两阶段屏蔽写操作中,使用屏蔽键A执行第一阶段屏蔽写操作,以及使用屏蔽键B执行第二阶段屏蔽写操作。也就是,在493,将屏蔽键A分配为所选择屏蔽键(并且键选择器设置为0),并且执行操作483和485(在495由圆圈‘A’指示),以完成第一阶段屏蔽写操作,然后在497,将屏蔽键B分配给所选择屏蔽键(并且键选择器设置为1),并且第二次执行操作483和485(在499指示),以完成两阶段屏蔽写操作的第二阶段。因为屏蔽冲突,所以与屏蔽键A匹配的一个或多个非屏蔽字节将在两阶段屏蔽写的第一阶段期间非有意地屏蔽,但在第二阶段期间写入。
图18说明应用于一个示例性写数据块(WDB)和对应屏蔽字(MSK)的两阶段屏蔽写操作。仅为了示例起见,假定字节屏蔽粒度,并且假定屏蔽键A和B分别是十六进制值55(二进制值01010101)和AA(二进制值10101010)。因为写数据块包含与屏蔽键A和屏蔽键B两者匹配的非屏蔽值(即分别为55和AA的非屏蔽值),所以在所示场景中存在屏蔽冲突。因此,为了产生编码数据块CDB-A,将屏蔽键A分配为所选择屏蔽键,以在两阶段屏蔽写操作的第一阶段中写入。如编码数据块CDB-A中的阴影‘55’项所示,用屏蔽键A代替写数据块之内的屏蔽字节(即12,70和FF),以产生编码数据块CDB-A。同样,如编码数据块CDB-A中的粗线框511所示,写数据块内的非屏蔽55值偶然与屏蔽键A匹配,并且因此将像存储子系统之内的一个屏蔽数据值那样处理。图19说明在两阶段屏蔽写操作的各阶段之前和之后存储子系统的内容。为了示例起见,屏蔽写操作针对的存储区假定包含零值项。因此,在两阶段屏蔽写操作的第一阶段之后,除那些对应写数据字节与屏蔽键A匹配的位置外,使所有存储位置用写数据字节更新。因此,在两阶段屏蔽写操作的第一阶段中,即使主机请求写操作的意图是将值55写入存储位置515,也不更新与原始写数据块中的非屏蔽55值相对应的存储位置515。
再参照图18,在两阶段屏蔽写操作的第二阶段中,如阴影AA值项所示,用屏蔽键B代替写数据块WDB之内的各屏蔽字节,如粗线框513所示,非屏蔽AA值偶然与屏蔽键B匹配,并且因此将像存储子系统之内的一个屏蔽数据值那样处理。参照图19,在两阶段屏蔽写操作的第二阶段中,除那些对应写数据字节与屏蔽键B匹配的位置外,使所有存储位置用写数据字节更新。因为非屏蔽55值现在不与屏蔽键值匹配,所以如初始打算那样将非屏蔽55值写入位置515。即使非屏蔽AA值非有意地与屏蔽键值匹配,并且在两阶段屏蔽写操作的第二阶段不写入,非屏蔽AA值也已经在第一阶段写操作中写入。因而,对于两阶段屏蔽写操作的相对阶段,通过对偶然与屏蔽键值匹配的非屏蔽值实现存储,第一和第二阶段写操作彼此互补。
应该注意执行两阶段屏蔽写操作虽然对于解决屏蔽冲突有效,但是具有对存储子系统需要两次而不是一次屏蔽写访问的不希望特征。因此,两阶段屏蔽写操作的频率越大,存储系统的有效存储带宽越低。减小两阶段屏蔽写操作的频率的一种直接方式是增加从其中选择屏蔽键的预定屏蔽键数。作为统计事件,假定一组R个预定屏蔽键和总体X个写数据值,各具有N个组成位的唯一模式,各附加屏蔽键按系数(X-R)/(2N-R)减小屏蔽冲突的似然性。例如,在一个具有总体64个写数据值(一个屏蔽)、字节屏蔽粒度和两个预定屏蔽键的系统中,总体上屏蔽冲突的似然性为(63/256)*(62/255)≈6%。如果提供两个附加预定屏蔽键,则屏蔽冲突的似然性减小为(63/256)*(62/255)*(61/254)*(60/253)≈0.34%。设P表示预定屏蔽键数,则键选择器中需要的组成位数是log2(P)。一般地,只要log2(P)小于屏蔽粒度,则在屏蔽键传送实施例上达到带宽节省。
用于减小屏蔽冲突的似然性的其他技术包括按照写数据总体之内的已知或预期偏差选择预定屏蔽键组。例如,在使用十六进制值FF和00来表示真和假布尔状态的系统中,对于各预定屏蔽键使用除FF和00之外的模式可以减小屏蔽冲突的似然性。减小屏蔽冲突的另一种方法是将写数据块再分成两个或多个子块,从而减小屏蔽冲突概率表达式(X/2N)*((X-1)/2N-1))*...*((X-R)/(2N-R))中的总体大小X。例如,假定X>>R,则将写数据块再分成N个子块,使屏蔽冲突的概率减小约N倍。
图20说明按照本发明的一个实施例的键选择屏蔽逻辑电路550。屏蔽逻辑电路550包括键表551、键选择电路553、屏蔽缓冲器555、写数据缓冲器557和数据编码器。屏蔽缓冲器555、写数据缓冲器557和数据编码器299如上参照图6所述那样一般操作,以基于进入的屏蔽字(MASK)和写数据块(DATA)产生编码数据块。然而,代替从键发生器接收屏蔽键,数据编码器299通过键选择电路553接收从屏蔽表551选择的预定屏蔽键。也就是,键选择电路553从表551中选择预定屏蔽键中的一个作为所选择屏蔽键554(SMK),并且将所选择屏蔽键554供给数据编码器,用于产生编码数据块。键选择电路553还产生一个与所选择屏蔽键554相对应的键选择器552,并且将键选择器552输出到请求发生器。因而,请求发生器接收并且转发键选择器552而不是屏蔽键。
在一个实施例中,键表551包括可编程存储电路体,它们在系统初始化期间用主机供给的屏蔽键编程。可编程存储电路可以用易失或非易失存储元件实现,并且在非易失存储元件的情况下,可选择地在系统生产期间或在配置设置操作中编程。在一个选择实施例中,键表551包括一个硬件组的屏蔽键(例如,通过专用电路设计或通过一次可编程操作,例如熔断可编程操作达到)。同样,虽然在图20中键表551画出包括两个预定屏蔽键(MKA和MKB),但是在选择实施例中键表551可以包括多于两个的预定屏蔽键。
键选择电路553耦合为从主机接口接收屏蔽字和写数据块,以及从键表551接收预定屏蔽键。在一个实施例中,键选择电路553通过将键表551中的各预定屏蔽键与写数据块的非屏蔽写数据值比较的组合逻辑实现,并且如果预定屏蔽键中的至少一个相对于非屏蔽写数据值唯一,则产生键选择器,它将唯一预定屏蔽键选择为所选择屏蔽键554。如果预定屏蔽键中没有一个相对于非屏蔽写数据值唯一(即键表551中的各屏蔽键与至少一个非屏蔽写数据值匹配),则键选择电路553从键表551中选择第一默认屏蔽键(例如,屏蔽键A),并且断定冲突信号556,以指示屏蔽冲突状况。在图20的实施例中,将冲突信号556供给屏蔽缓冲器和写数据缓冲器,以通过两阶段屏蔽写操作的第一和第二阶段保持这些缓冲器的内容。也就是,断定冲突信号556,以防止屏蔽缓冲器555和写数据缓冲器557的内容由进入的屏蔽字和写数据块重写。冲突信号556可以另外地或选择地供给存储控制器之内的其他控制电路,以使控制电路能够防止屏蔽缓冲器和写数据缓冲器在完成两阶段屏蔽写操作之前被重写。这样的控制电路也可以输出一个忙信号,以通知访问请求器存储控制器暂时不能接收写数据块。
仍参照屏蔽冲突状况,将第一默认屏蔽键供给数据编码器299,作为用于两阶段屏蔽写操作的第一阶段的所选择屏蔽键554。在将编码数据块(使用第一默认屏蔽键产生)和所选择屏蔽键554输出到存储子系统之后,通过键选择电路选择第二默认屏蔽键(例如,屏蔽键B),并且作为所选择屏蔽键提供给数据编码器。然后使用第二默认屏蔽键,以产生用于两阶段屏蔽写操作的第二阶段的编码数据块。
图21说明由图20的键选择电路553实现的示例性状态图565。最初,键选择电路553在状态556,并且输出逻辑低键选择器和冲突信号(即/KSEL、/CNFL)。只要屏蔽键A(MKA)不与进入的写数据块之内的任何非屏蔽数据值匹配(即MKA<>WDB),键选择电路就保持在状态556。如果屏蔽键A与进入的写数据块之内的一个或多个非屏蔽数据值匹配,以及屏蔽键B不与写数据块之内的任何非屏蔽数据值匹配(即(MKA=WDB)AND(MKB<>WDB)),那么键选择电路跃变到状态557。在状态557,冲突信号保持为低,但是键选择器变为高,以选择屏蔽键B用于产生编码数据块。当接收下一个写数据块时,如果屏蔽键A不与任何非屏蔽数据值匹配,则键逻辑返回状态556。如果屏蔽键A与写数据块之内的非屏蔽数据值匹配,但是屏蔽键B不匹配,则键选择电路保持在状态557。不论是在状态556还是在状态557,如果屏蔽键A和屏蔽键B均确定与一个进入的写数据块之内的一个非屏蔽数据值匹配,那么就发生屏蔽冲突,并且键选择电路跃变到状态558。键选择器在两阶段屏蔽写操作的持续时间期间保持在状态558,然后如果在下一个写数据块之内没有检测到屏蔽冲突,则跃变到状态556或557(即如果屏蔽键A与写数据块之内的一个非屏蔽写数据值匹配,则跃变到状态556,否则跃变到状态557)。
图22说明按照本发明的一个实施例的图20的键选择电路553。键选择电路553包括多路复用器571和选择信号发生器575,各耦合为从键表接收预定屏蔽键。在图22的示例性实施例中假定四个预定屏蔽键MK0-MK3,然而可选择地使用更多或更少的屏蔽键。选择信号发生器575接收写数据块和屏蔽字作为输入,并且产生如参照图21所述的键选择器552和冲突信号556。在图22的实施例中,键选择器552是一个2位信号KSEL[1:0],并且供给多路复用器571的一个选择输入,以选择四个预定屏蔽键中的一个作为所选择屏蔽键554(SMK)输出。
选择信号发生器575包括一组X个匹配检测电路5790-579X-1(MD)、逻辑AND门5850-5853和编码器587。各匹配检测电路579耦合为从一个键表接收四个预定屏蔽键值MK0-MK3,和写数据块的X个写数据值的各自值及屏蔽字的对应屏蔽位。各匹配检测电路579产生与预定屏蔽键MK0-MK3相对应的各自组的限定匹配信号(即QM0-3,QM10-3,...,QM(X-1)0-3),各限定匹配信号指示对应屏蔽键是否与一个非屏蔽写数据值匹配。作为一个例子,参照匹配检测电路5790的详细图,在比较器581的各自比较器中,将各预定屏蔽键与写数据值WD0(即进入的写数据块的一个写数据值)比较。如果给定比较器581所接收的写数据值和预定屏蔽键匹配,则比较器在匹配线582中的对应线上输出一个逻辑高匹配信号。匹配线582与各自AND门583的输入耦合,各AND门具有一个共同耦合为接收屏蔽位M0的倒相输入。因此,如果由对应比较器581发匹配信号,并且写数据值非屏蔽(即屏蔽位M0为低),则各AND门583输出逻辑高状态下的各自限定匹配信号。用解析形式表示,在图22的示例性实施例中X个屏蔽检测电路5790-579X-1(MD0-MDX-1)各输出四个限定匹配信号如下:
MD0:QM00:(WD0=MK0)&/M0
QM01:(WD0=MK1)&/M0
QM02:(WD0=MK2)&/M0
QM03:(WD0=MK3)&/M0
MD1:QM10:(WD1=MK0)&/M1
QM11:(WD1=MK1)&/M1
QM12:(WD1=MK2)&/M1
QM13:(WD1=MK3)&/M1
...
MDX-1:QM(X-1)0:(WD(X-1)=MK0)&/M(X-1)
QM(X-1)1:(WD(X-1)=MK1)&/M(X-1)
QM(X-1)2:(WD(X-1)=MK2)&/M(X-1)
QM(X-1)3:(WD(X-1)=MK3)&/M(X-1)
仍参照图22,限定信号QM00,QM10,...,QM(X-1)0全部与屏蔽键MK0相对应(各指示MK0是否与写数据块之内的各自非屏蔽数据值匹配),并且供给AND门5850的各自倒相输入。因而,如果与MK0相对应的全部限定匹配信号为低,则AND门5850的输出(即S0)将为高,以指示MK0不与写数据块之内的任何非屏蔽数据值匹配。类似地,限定匹配信号QM01,QM11,...,QM(X-1)1全部与屏蔽键MK1相对应,并且供给AND门5851的倒相输入;限定匹配信号QM02,QM12,...,QM(X-1)2全部与屏蔽键MK2相对应,并且供给AND门5852的倒相输入;以及限定匹配信号QM03,QM13,...,QM(X-1)3全部与屏蔽键MK3相对应,并且供给AND门5853的倒相输入。因而,如果对应屏蔽键MK0-MK3不与写数据块之内的任何非屏蔽数据值匹配,则各AND门5850-5853将输出一个逻辑高信号。AND门5850-5853的输出(即分别为信号S0-S3)供给编码器587,在那里它们用来设置键选择器552和冲突信号556的状态。在一个实施例中,编码器587产生一个键选择器552,该键选择器552与最低编号的匹配键相对应,对其信号S0-S3的对应一个的输出为高。也就是,如果S0为高,则将KSEL[1:0]设置为00,以选择MK0;如果S0为低且S1为高,则将KSEL[1:0]设置为01,以选择MK1;如果S0为低、S1为低且S2为高,则将KSEL[1:0]设置为10,以选择MK2;以及如果S0为低、S1为低、S2为低且S3为高,则将KSEL[1:0]设置为11,以选择MK3。如果信号S0-S3全部为低,那么屏蔽键MK0-MK3中没有一个相对于写数据块唯一,并且存在冲突状况。在图22的实施例中,编码器587断定冲突信号556,以指示屏蔽冲突状况,并且设置键选择器552,以将屏蔽键MK0选择为两阶段屏蔽写的第一阶段的默认屏蔽键。在两阶段屏蔽写的第一阶段之后,编码器557设置键选择器,以将屏蔽键MK1选择为两阶段屏蔽写的第二阶段的默认屏蔽键。在选择实施例中,可使用其他键表选择作为两阶段屏蔽写的第一和/或第二阶段的默认屏蔽键。
图23说明按照本发明的一个键选择实施例的存储装置600。存储装置600包括主机接口601、数据接口603、地址解码器267、请求逻辑265、键表609、多路复用器611、比较器269、写驱动器273和逻辑门275。数据接口603(包括接收器271)、地址解码器267、请求逻辑265、比较器269、写驱动器273和逻辑门275全部如上参照图5所述那样一般操作,然而数据接口603可选择地可以是如参照图16所述那样的解串数据接口。除接收键选择器552而不是屏蔽键外,主机接口601也如参照图5所述那样操作。将键选择器552供给多路复用器611的一个选择输入,以从键表609选择一个屏蔽键,将所选择屏蔽键610提供给比较器169,用于与进入的写数据值比较(即当比较器269由来自请求逻辑265的比较允许信号246启动时)。注意虽然图23中示出了单个写数据通道,但是在选择实施例中存储装置600可选择地具有任何数目的写数据通道(即如图5中的较宽数据接口603、多个比较器269、多个写驱动器273和逻辑门275)。
在图23的实施例中,键表609包括四个预定屏蔽键,并且进入的键选择器552是一个2位值KSEL[1:0],以允许四中选一。在一个选择实施例中,可以在键表609之内提供更多或更少的预定屏蔽键,并且键选择器552的位数对应地增加或减少。在一个实施例中,键表609包括可编程存储电路体,它们在系统初始化期间用由存储控制器供给的屏蔽键编程。可编程存储电路可以使用易失或非易失存储元件实现,并且在非易失存储元件的情况下可以在系统生产期间或在配置设置操作中编程。在一个选择实施例中,键表609包括硬件组的屏蔽键(例如,通过专用电路设计或通过一次可编程操作,例如熔断编程操作达到)。
子块编码
如上简短所述,减少键选择存储控制器中的屏蔽冲突的一种方法在于对各进入的写数据块选择多个屏蔽键,各所选择屏蔽键与写数据块的各自子块(即部分)相对应。然后用各所选择屏蔽键代替对应子块之内的屏蔽值,以产生一个编码子块,并且将编码子块连同对应子块键选择器一起发送到存储子系统。各子块的总体大小的减小(即与完整写数据块比较的写数据值的减小数)产生屏蔽冲突的概率的近似成比例减小。
图24说明将一个64字节写数据块分成两个32字节子块,即子块0和子块1的示例性空间分割。如所示,在数据线DQ00至DQ15上发送的32个数据字节形成子块0,以及在数据线DQ16-DQ31上发送的32个数据字节形成子块2。在选择实施例中可以使用更细的空间分割,以进一步减小屏蔽冲突的似然性(例如分成4个子块,各在数据通路中的八条线组上发送)。
图25说明将一个64字节写数据块分成两个32字节子块,即子块0和子块1的示例性时间分割。如所示,在发送间隔0-7期间发送的32个数据字节形成子块0,以及在发送间隔8-15期间发送的32个数据字节形成子块1。在选择实施例中可以使用更细的时间分割(例如分成4个子块,各在传输间隔的各自组期间一个接一个发送)。而且,也可以使用时间和空间分割的组合。例如,图24中画出的空间分割可以与图25的时间分割组合,以产生一个四象限分割。此外,虽然图24和图25中说明串行化数据传送方案,但是可选择地可使用并行数据传送方案(例如,如图12中所示)。
与分割的类型和数目无关,基于各子块之内的写数据值产生分别的键选择器值,并且用于选择各自屏蔽键,以对子块编码。然后将编码子块和对应键选择器输出到存储子系统。
图26说明可以用在本发明的键选择存储系统之内的键选择器的一个示例性编码。如所示,使用一个2位键选择器KSEL[1:0],以指示一个给定写操作是屏蔽写操作还是非屏蔽写操作,并且如果是屏蔽写操作,则指定三个预定屏蔽键中的一个。也就是,如果键选择器指定三个预定屏蔽键中的任何一个,则指示屏蔽写操作。否则将键选择器设置为00,以指示非屏蔽写操作。
仅为了参考方便起见,在本详细描述中提供了部分标题,并且决不限定、限制、分析或描述这样部分的范围或深度。而且,虽然本发明已参照其特定示例性实施例作了描述,但是将会显而易见,在不脱离本发明的更广泛精神和范围下可以对其实行各种修变和改变。因此,说明书和附图认为是说明性的而不是限制意义的。
Claims (15)
1.一种在存储装置内的操作方法,包括:
接收数据值块;
确定是否任何数据值表示屏蔽键;以及
将那些不表示屏蔽键的数据值写入到存储器。
2.根据权利要求1的方法,其中所述确定包括:将所述数据值块与预定的至少一个屏蔽键进行比较,以及识别作为那些对应于所述预定的至少一个屏蔽键的数据值的屏蔽数据值。
3.根据权利要求1的方法,其中:
所述方法还包括以两段操作来接收所述数据值块的两个副本;以及
基于所述两个副本之间的数据不匹配,调整屏蔽数据值以便检测。
4.根据权利要求1的方法,其中所述确定是否任何数据值表示屏蔽键包括:从数据值中检测一组预定码中的一个。
5.根据权利要求1的方法,其中所述确定是否任何数据值表示屏蔽键包括:检测不能与有效数据值对应的码。
6.一种存储装置,包括:
存储阵列;
接口,接收数据值块;以及
电路,从数据值中识别是否所述数据值块中的任何数据值指示屏蔽操作,并作出响应,将除了那些指示屏蔽操作的数据值外的所有数据值写入到所述存储阵列。
7.根据权利要求6的存储装置,其中所述电路适于过滤每个数据值以检测与一组预定码中的一个的对应关系,并且当不对应时,作出响应,将该数据值写入到所述存储阵列。
8.根据权利要求7的存储装置,其中所述电路还包括屏蔽键表和比较器,并且其中所述电路通过将每个数据值与所述屏蔽键表中的多个预定值的每一个进行比较来检测对应关系,以识别是否所述数据值块中的任何数据值指示屏蔽操作。
9.根据权利要求8的存储装置,其中所述存储装置适于作为两段操作的部分接收所述数据值块的两个副本,并且对所述两个副本之间相同的存储阵列值进行写入。
10.根据权利要求6的存储装置,其中所述电路适于检测所述数据值块中不能与有效数据值对应的任何值作为屏蔽键。
11.根据权利要求6的存储装置,还包括屏蔽键表,其中所述电路与所述屏蔽键表耦合以确定在所述屏蔽键表中识别的预定屏蔽键值是否存在于所述数据值块中。
12.一种存储装置,包括:
存储阵列;
接口,接收编码数据值块;以及
逻辑,识别存在于所述编码数据值块中的任何屏蔽键值,并作出响应,将存在于所述编码数据值块中的除了那些对应于屏蔽键值的值之外的所有数据值写入到所述存储阵列。
13.根据权利要求12的存储装置,其中所述逻辑适于通过分析所述编码数据值块来识别是否存在屏蔽键,以识别所述编码数据值块中的哪个数据将被屏蔽,并作出响应,利用所有其它数据更新所述存储阵列。
14.根据权利要求12的存储装置,其中所述逻辑包括至少一个预定屏蔽键值和比较器,所述比较器将所述至少一个预定屏蔽键值与所述编码数据值块进行比较以识别非屏蔽数据。
15.一种存储装置中的改进,该存储装置包括存储单元阵列和适于接收将被写入存储器的数据值块的接口,所述改进包括:
对于所述数据值块中的每个数据值,检测该数据值是否对应于表示屏蔽键的码;
对于不与表示屏蔽键的码对应的每个数据值,将该数据值写入到所述存储单元阵列中;以及
对于与表示屏蔽键的码对应的每个数据值,不将该数据值写入到所述存储单元阵列中,使得不覆盖与该数据值在所述数据值块内的位置相关联的现有阵列内容。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43966603P | 2003-01-13 | 2003-01-13 | |
US60/439,666 | 2003-01-13 | ||
US10/385,908 | 2003-03-11 | ||
US10/386,236 | 2003-03-11 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800039839A Division CN1748204B (zh) | 2003-01-13 | 2004-01-13 | 存储控制器、存储装置和存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101281508A true CN101281508A (zh) | 2008-10-08 |
Family
ID=36166994
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100984734A Pending CN101281508A (zh) | 2003-01-13 | 2004-01-13 | 编码写屏蔽 |
CN2004800039839A Expired - Fee Related CN1748204B (zh) | 2003-01-13 | 2004-01-13 | 存储控制器、存储装置和存储系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800039839A Expired - Fee Related CN1748204B (zh) | 2003-01-13 | 2004-01-13 | 存储控制器、存储装置和存储系统 |
Country Status (3)
Country | Link |
---|---|
US (7) | US6826663B2 (zh) |
CN (2) | CN101281508A (zh) |
DE (1) | DE202004020948U1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110352414A (zh) * | 2017-12-29 | 2019-10-18 | 北京嘀嘀无限科技发展有限公司 | 为大数据添加索引的系统和方法 |
CN116741255A (zh) * | 2023-08-16 | 2023-09-12 | 沐曦集成电路(上海)有限公司 | 生成目标组合存储器的系统 |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6464628B1 (en) | 1999-08-12 | 2002-10-15 | Obtech Medical Ag | Mechanical anal incontinence |
US6471635B1 (en) | 2000-02-10 | 2002-10-29 | Obtech Medical Ag | Anal incontinence disease treatment with controlled wireless energy supply |
ATE403404T1 (de) | 2000-02-10 | 2008-08-15 | Potencia Medical Ag | Mechanische vorrichtung zur impotenzbehandlung |
CA2397279C (en) | 2000-02-10 | 2009-04-21 | Surgical Development Ag | Controlled urinary incontinence treatment |
DE60131726T2 (de) | 2000-02-11 | 2008-11-06 | Potencia Medical Ag | Kontrollierte impotenzbehandlung |
EP1255513B1 (en) | 2000-02-14 | 2005-05-25 | Potencia Medical AG | Penile prosthesis |
CN1196451C (zh) | 2000-02-14 | 2005-04-13 | 波滕西亚医疗公司 | 带有无线能量供给的男性阳萎假体设备 |
US6801459B2 (en) * | 2002-03-22 | 2004-10-05 | Intel Corporation | Obtaining data mask mapping information |
US6826663B2 (en) * | 2003-01-13 | 2004-11-30 | Rambus Inc. | Coded write masking |
US20050024402A1 (en) * | 2003-07-31 | 2005-02-03 | Quintana Jason M. | Transfer of data from a controller to an output device |
US8045707B2 (en) * | 2003-08-15 | 2011-10-25 | Broadcom Corporation | System and method for securing data |
KR100546387B1 (ko) * | 2003-10-13 | 2006-01-26 | 삼성전자주식회사 | 마스크 비트 전송방법 및 장치 |
US7124261B2 (en) * | 2004-02-09 | 2006-10-17 | Arm Limited | Access to bit values within data words stored in a memory |
US7225305B2 (en) * | 2004-04-08 | 2007-05-29 | International Business Machines Corporation | System, method and storage medium for controlling asynchronous updates to a register |
US20060195631A1 (en) * | 2005-01-31 | 2006-08-31 | Ramasubramanian Rajamani | Memory buffers for merging local data from memory modules |
US7827462B2 (en) * | 2005-03-31 | 2010-11-02 | Intel Corporation | Combined command and data code |
US7287103B2 (en) * | 2005-05-17 | 2007-10-23 | International Business Machines Corporation | Method and apparatus for generating a mask value and command for extreme data rate memories utilizing error correction codes |
US7242623B2 (en) * | 2005-07-12 | 2007-07-10 | Infineon Technologies Flash Gmbh & Co. Kg | Non-volatile memory cell device, programming element and method for programming data into a plurality of non-volatile memory cells |
US7660183B2 (en) * | 2005-08-01 | 2010-02-09 | Rambus Inc. | Low power memory device |
DE602005018067D1 (de) * | 2005-10-13 | 2010-01-14 | St Microelectronics Srl | Nichtflüchtige Speicheranordnung |
US7610417B2 (en) * | 2005-11-30 | 2009-10-27 | Rambus Inc. | Data-width translator coupled between variable-width and fixed-width data ports and supporting multiple data-width configurations |
KR100818298B1 (ko) * | 2005-12-08 | 2008-03-31 | 한국전자통신연구원 | 가변 시리얼 정합 방식의 메모리 시스템 및 그 메모리액세스 방법 |
US8327192B2 (en) * | 2006-02-06 | 2012-12-04 | Intel Corporation | Method for memory integrity |
US8290095B2 (en) * | 2006-03-23 | 2012-10-16 | Qualcomm Incorporated | Viterbi pack instruction |
US9262326B2 (en) | 2006-08-14 | 2016-02-16 | Qualcomm Incorporated | Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem |
US8275972B2 (en) | 2006-08-23 | 2012-09-25 | Ati Technologies, Inc. | Write data mask method and system |
US7694031B2 (en) * | 2006-10-31 | 2010-04-06 | Globalfoundries Inc. | Memory controller including a dual-mode memory interconnect |
US7861140B2 (en) * | 2006-10-31 | 2010-12-28 | Globalfoundries Inc. | Memory system including asymmetric high-speed differential memory interconnect |
US20080104352A1 (en) * | 2006-10-31 | 2008-05-01 | Advanced Micro Devices, Inc. | Memory system including a high-speed serial buffer |
KR100798926B1 (ko) * | 2006-12-04 | 2008-01-29 | 한국전자통신연구원 | 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법 |
US7921263B2 (en) * | 2006-12-22 | 2011-04-05 | Broadcom Corporation | System and method for performing masked store operations in a processor |
EP3200189B1 (en) | 2007-04-12 | 2021-06-02 | Rambus Inc. | Memory system with point-to-point request interconnect |
US7764536B2 (en) * | 2007-08-07 | 2010-07-27 | Grandis, Inc. | Method and system for providing a sense amplifier and drive circuit for spin transfer torque magnetic random access memory |
US20090063786A1 (en) * | 2007-08-29 | 2009-03-05 | Hakjune Oh | Daisy-chain memory configuration and usage |
WO2009042329A2 (en) * | 2007-09-27 | 2009-04-02 | Rambus Inc. | Reconfigurable memory system data strobes |
US7877398B2 (en) * | 2007-11-19 | 2011-01-25 | International Business Machines Corporation | Masking related sensitive data in groups |
US8961448B2 (en) * | 2008-01-28 | 2015-02-24 | Peter Forsell | Implantable drainage device |
WO2009096858A1 (en) | 2008-01-29 | 2009-08-06 | Milux Holding Sa | Method and instrument for treating obesity |
US8271747B2 (en) * | 2008-07-31 | 2012-09-18 | Rambus Inc. | Mask key selection based on defined selection criteria |
CN102150132A (zh) * | 2008-09-10 | 2011-08-10 | 瑞萨电子株式会社 | 信息处理装置 |
US7761714B2 (en) * | 2008-10-02 | 2010-07-20 | Infineon Technologies Ag | Integrated circuit and method for preventing an unauthorized access to a digital value |
US8874215B2 (en) | 2008-10-10 | 2014-10-28 | Peter Forsell | System, an apparatus, and a method for treating a sexual dysfunctional female patient |
ES2896623T3 (es) | 2008-10-10 | 2022-02-24 | Medicaltree Patent Ltd | Dispositivo y sistema de asistencia cardíaca |
CA2776450C (en) | 2008-10-10 | 2018-08-21 | Peter Forsell | Heart help device, system, and method |
WO2010042058A1 (en) | 2008-10-10 | 2010-04-15 | Milux Holding S.A. | An improved artificial valve |
EP2349170B1 (en) | 2008-10-10 | 2023-09-27 | Implantica Patent Ltd. | Apparatus for the treatment of female sexual dysfunction |
EP2349078A4 (en) | 2008-10-10 | 2018-02-07 | Kirk Promotion LTD. | Fastening means for implantable medcial control assembly |
US8332876B2 (en) * | 2008-11-20 | 2012-12-11 | Ati Technologies Ulc | Method, system and apparatus for tri-stating unused data bytes during DDR DRAM writes |
US20100278533A1 (en) * | 2009-04-30 | 2010-11-04 | Telefonaktiebolaget L M Ericsson (Publ) | Bit mask to obtain unique identifier |
US9949812B2 (en) | 2009-07-17 | 2018-04-24 | Peter Forsell | Vaginal operation method for the treatment of anal incontinence in women |
US10952836B2 (en) | 2009-07-17 | 2021-03-23 | Peter Forsell | Vaginal operation method for the treatment of urinary incontinence in women |
US8922555B2 (en) * | 2009-10-07 | 2014-12-30 | Nvidia Corporation | Pixel shader output map |
JP5178839B2 (ja) | 2009-11-27 | 2013-04-10 | 株式会社東芝 | メモリチップ |
KR101090329B1 (ko) * | 2010-02-25 | 2011-12-07 | 주식회사 하이닉스반도체 | 메모리장치, 메모리장치의 동작방법 및 제어방법 |
US9288082B1 (en) * | 2010-05-20 | 2016-03-15 | Kandou Labs, S.A. | Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences |
US8570790B2 (en) * | 2011-01-13 | 2013-10-29 | Cypress Semiconductor Corporation | Memory devices and methods for high random transaction rate |
US9164943B2 (en) | 2012-01-18 | 2015-10-20 | Intel Corporation | Self correction logic for serial-to-parallel converters |
US9117499B2 (en) | 2012-10-25 | 2015-08-25 | Elwha Llc | Bipolar logic gates on MOS-based memory chips |
US9304709B2 (en) | 2013-09-06 | 2016-04-05 | Western Digital Technologies, Inc. | High performance system providing selective merging of dataframe segments in hardware |
US9330040B2 (en) * | 2013-09-12 | 2016-05-03 | Qualcomm Incorporated | Serial configuration of a reconfigurable instruction cell array |
US9141541B2 (en) | 2013-09-20 | 2015-09-22 | Advanced Micro Devices, Inc. | Nested channel address interleaving |
US9135984B2 (en) | 2013-12-18 | 2015-09-15 | Micron Technology, Inc. | Apparatuses and methods for writing masked data to a buffer |
US9779019B2 (en) | 2014-06-05 | 2017-10-03 | Micron Technology, Inc. | Data storage layout |
US9641321B1 (en) * | 2014-11-05 | 2017-05-02 | Dark Signal Research, Llc | Method and apparatus for the virtualization of cryptographic resources |
US9997233B1 (en) | 2015-10-08 | 2018-06-12 | Rambus Inc. | Memory module with dynamic stripe width |
US9570125B1 (en) * | 2016-03-15 | 2017-02-14 | Micron Technology, Inc. | Apparatuses and methods for shifting data during a masked write to a buffer |
KR102518983B1 (ko) * | 2016-05-18 | 2023-04-07 | 에스케이하이닉스 주식회사 | 직/병렬화 회로 및 이를 이용한 데이터 처리 시스템 |
CN106328183B (zh) * | 2016-09-23 | 2018-08-31 | 山东师范大学 | 一种改进的存储器系统及方法 |
US10095421B2 (en) | 2016-10-21 | 2018-10-09 | Advanced Micro Devices, Inc. | Hybrid memory module bridge network and buffers |
US10366742B1 (en) * | 2018-02-07 | 2019-07-30 | Micron Technology, Inc. | Memory device parallelizer |
KR20220086904A (ko) * | 2020-12-17 | 2022-06-24 | 삼성전자주식회사 | 데이터 전송 방법 및 데이터 전송 장치 |
US11863209B2 (en) * | 2021-08-18 | 2024-01-02 | Pixart Imaging Inc. | Integrated circuit and method capable of minimizing circuit area of non-volatile memory circuit |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4369511A (en) * | 1979-11-21 | 1983-01-18 | Nippon Telegraph & Telephone Public Corp. | Semiconductor memory test equipment |
JPS5844584A (ja) * | 1981-09-11 | 1983-03-15 | Hitachi Ltd | マトリクス記録の制御回路 |
GB8407223D0 (en) * | 1984-03-20 | 1984-04-26 | British Telecomm | Broadband digital transmission systems |
US4745577A (en) | 1984-11-20 | 1988-05-17 | Fujitsu Limited | Semiconductor memory device with shift registers for high speed reading and writing |
US5218691A (en) * | 1988-07-26 | 1993-06-08 | Disk Emulation Systems, Inc. | Disk emulation system |
JPH03122492A (ja) | 1989-10-06 | 1991-05-24 | Toshiba Ceramics Co Ltd | 加熱装置用扉 |
DE3934248A1 (de) * | 1989-10-13 | 1991-04-18 | Standard Elektrik Lorenz Ag | Multiplexer und demultiplexer, insbesondere fuer nachrichtenuebertragungs-netze mit einer synchronen hierarchie der digitalsignale |
JPH03122492U (zh) | 1990-03-26 | 1991-12-13 | ||
IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
US5243703A (en) | 1990-04-18 | 1993-09-07 | Rambus, Inc. | Apparatus for synchronously generating clock signals in a data processing system |
US5375224A (en) * | 1990-09-28 | 1994-12-20 | Archive Corporation | Raw data reader |
KR940004404B1 (ko) | 1990-11-30 | 1994-05-25 | 삼성전자 주식회사 | 불휘발성 반도체 메모리장치 |
US5430859A (en) | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
JP3134819B2 (ja) | 1997-06-04 | 2001-02-13 | ソニー株式会社 | データ処理装置 |
US5715407A (en) | 1992-03-06 | 1998-02-03 | Rambus, Inc. | Process and apparatus for collision detection on a parallel bus by monitoring a first line of the bus during even bus cycles for indications of overlapping packets |
JPH05325545A (ja) | 1992-05-25 | 1993-12-10 | Mitsubishi Electric Corp | 半導体記憶装置 |
FR2699707B1 (fr) | 1992-12-23 | 1995-01-27 | Bull Sa | Système informatique à haut débit, composant de mémoire et contrôleur de mémoire en résultant. |
JPH06275069A (ja) * | 1993-03-20 | 1994-09-30 | Hitachi Ltd | シリアルメモリ |
JP3230898B2 (ja) * | 1993-06-02 | 2001-11-19 | シャープ株式会社 | データ駆動型情報処理システム |
US5508967A (en) * | 1993-08-09 | 1996-04-16 | Matsushita Electric Industrial Co., Ltd. | Line memory |
JPH07121351A (ja) | 1993-10-26 | 1995-05-12 | Sharp Corp | 半導体ram |
TW293107B (zh) * | 1994-10-28 | 1996-12-11 | Matsushita Electric Ind Co Ltd | |
US5764963A (en) | 1995-07-07 | 1998-06-09 | Rambus, Inc. | Method and apparatus for performing maskable multiple color block writes |
US6035369A (en) | 1995-10-19 | 2000-03-07 | Rambus Inc. | Method and apparatus for providing a memory with write enable information |
US5813043A (en) * | 1996-07-12 | 1998-09-22 | Motorola, Inc. | Method and system including memory patching utilizing a transmission control signal and circuit |
US6401167B1 (en) | 1997-10-10 | 2002-06-04 | Rambus Incorporated | High performance cost optimized memory |
US6347354B1 (en) | 1997-10-10 | 2002-02-12 | Rambus Incorporated | Apparatus and method for maximizing information transfers over limited interconnect resources |
JP3761329B2 (ja) * | 1997-11-17 | 2006-03-29 | 富士通株式会社 | 記憶装置 |
US6304930B1 (en) * | 1998-01-20 | 2001-10-16 | Matsushita Electric Industrial Co., Ltd. | Signal transmission system having multiple transmission modes |
US6968419B1 (en) | 1998-02-13 | 2005-11-22 | Intel Corporation | Memory module having a memory module controller controlling memory transactions for a plurality of memory devices |
US6122189A (en) | 1998-10-02 | 2000-09-19 | Rambus Inc. | Data packet with embedded mask |
US6223268B1 (en) | 1999-01-08 | 2001-04-24 | Sony Corporation | System and method for writing specific bytes in a wide-word memory |
JP2001043700A (ja) * | 1999-08-02 | 2001-02-16 | Fujitsu Ltd | 半導体記憶装置 |
FR2807245B1 (fr) | 2000-03-30 | 2002-05-24 | France Telecom | Procede de protection d'une puce electronique contre la fraude |
US6820148B1 (en) | 2000-08-17 | 2004-11-16 | Sandisk Corporation | Multiple removable non-volatile memory cards serially communicating with a host |
US7111224B1 (en) * | 2001-02-28 | 2006-09-19 | Xilinx, Inc. | FPGA configuration memory with built-in error correction mechanism |
KR100419012B1 (ko) * | 2001-07-19 | 2004-02-14 | 삼성전자주식회사 | 4비트 프리페치 기능을 가진 동기형 반도체 메모리 장치및 이 장치의 데이터 처리 방법 |
US6578126B1 (en) | 2001-09-21 | 2003-06-10 | Emc Corporation | Memory system and method of using same |
US6957307B2 (en) * | 2002-03-22 | 2005-10-18 | Intel Corporation | Mapping data masks in hardware by controller programming |
US6801459B2 (en) | 2002-03-22 | 2004-10-05 | Intel Corporation | Obtaining data mask mapping information |
US6826663B2 (en) * | 2003-01-13 | 2004-11-30 | Rambus Inc. | Coded write masking |
JP4717798B2 (ja) | 2003-01-13 | 2011-07-06 | ラムバス・インコーポレーテッド | 符号化書き込みマスキング |
-
2003
- 2003-03-11 US US10/386,236 patent/US6826663B2/en not_active Expired - Fee Related
- 2003-03-11 US US10/385,908 patent/US7313639B2/en not_active Expired - Lifetime
-
2004
- 2004-01-13 CN CNA2008100984734A patent/CN101281508A/zh active Pending
- 2004-01-13 DE DE202004020948U patent/DE202004020948U1/de not_active Expired - Lifetime
- 2004-01-13 CN CN2004800039839A patent/CN1748204B/zh not_active Expired - Fee Related
-
2005
- 2005-06-14 US US11/151,792 patent/US7216187B2/en not_active Expired - Lifetime
-
2006
- 2006-10-16 US US11/549,841 patent/US7478181B2/en not_active Expired - Fee Related
-
2008
- 2008-05-07 US US12/116,439 patent/US7925808B2/en not_active Expired - Fee Related
-
2010
- 2010-01-29 US US12/696,807 patent/US7921245B2/en not_active Expired - Fee Related
-
2011
- 2011-04-07 US US13/081,879 patent/US8347047B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110352414A (zh) * | 2017-12-29 | 2019-10-18 | 北京嘀嘀无限科技发展有限公司 | 为大数据添加索引的系统和方法 |
CN110352414B (zh) * | 2017-12-29 | 2022-11-11 | 北京嘀嘀无限科技发展有限公司 | 为大数据添加索引的系统和方法 |
CN116741255A (zh) * | 2023-08-16 | 2023-09-12 | 沐曦集成电路(上海)有限公司 | 生成目标组合存储器的系统 |
CN116741255B (zh) * | 2023-08-16 | 2023-11-24 | 沐曦集成电路(上海)有限公司 | 生成目标组合存储器的系统 |
Also Published As
Publication number | Publication date |
---|---|
US20100131725A1 (en) | 2010-05-27 |
DE202004020948U1 (de) | 2006-05-24 |
US7313639B2 (en) | 2007-12-25 |
US7925808B2 (en) | 2011-04-12 |
US7478181B2 (en) | 2009-01-13 |
CN1748204A (zh) | 2006-03-15 |
US20040139253A1 (en) | 2004-07-15 |
US6826663B2 (en) | 2004-11-30 |
US20080209141A1 (en) | 2008-08-28 |
US20070073926A1 (en) | 2007-03-29 |
US20040139288A1 (en) | 2004-07-15 |
US20110276733A1 (en) | 2011-11-10 |
US7216187B2 (en) | 2007-05-08 |
US8347047B2 (en) | 2013-01-01 |
CN1748204B (zh) | 2010-05-05 |
US20050232020A1 (en) | 2005-10-20 |
US7921245B2 (en) | 2011-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1748204B (zh) | 存储控制器、存储装置和存储系统 | |
US9514057B2 (en) | Storage module and method for managing logical-to-physical address mapping | |
JP2008276809A (ja) | 符号化書き込みマスキング | |
US7823044B2 (en) | Method for streamlining error connection code computation while reading or programming a NAND flash memory | |
US10095436B2 (en) | Cache memory device and data processing method of the device | |
JP4034738B2 (ja) | データマスクマッピング情報取得方法 | |
CN103197898A (zh) | 存储控制装置、存储装置和控制存储控制装置的控制方法 | |
US20030099140A1 (en) | Data handling system | |
US10866736B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
US20160266791A1 (en) | Memory control circuit unit, memory storage apparatus and data accessing method | |
CN101243416A (zh) | 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机系统中存储数据和/或指令的设备和方法 | |
JP2006507555A (ja) | コントローラプログラミングによるハードウェアへのデータマスクマッピング | |
US11755211B2 (en) | Overhead reduction in data transfer protocol for NAND memory | |
US9390008B2 (en) | Data encoding for non-volatile memory | |
KR100518567B1 (ko) | 독출 동작과 기입 동작이 동시에 수행되는 메모리 셀어레이 구조를 가지는 집적 회로 | |
US20080028166A1 (en) | Data processing system and method for operating a data processing system | |
US20230133559A1 (en) | Method and apparatus for performing data access control of memory device with aid of predetermined command | |
TW202134884A (zh) | 資料寫入系統與方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20081008 |