编码写屏蔽

阅读:516发布:2022-04-02

专利汇可以提供编码写屏蔽专利检索,专利查询,专利分析的服务。并且一种存储系统,具有存储 控制器 和与存储控制器耦合的存储装置。存储控制器向存储装置输出写数据值。存储装置从存储控制器接收写数据值,并且将写数据值与屏蔽键值比较。如果写数据值与屏蔽键值匹配,则存储装置不存储写数据值。如果写数据值不与屏蔽键值匹配,则存储装置存储写数据值。,下面是编码写屏蔽专利的具体信息内容。

1.一种存储控制器,包括:
主机接口,以接收写数据值和多个屏蔽值,各屏蔽值指示所述 写数据值中的对应一个是否为要排除存储在存储子系统之内的屏蔽 数据值;
屏蔽逻辑电路,耦合为从所述主机接口接收所述写数据值和屏蔽 值,并且适于通过用键值代替所述写数据值块之内的各屏蔽数据值, 产生编码写数据值块;和
存储接口,耦合为从所述屏蔽逻辑电路接收所述编码写数据值 块,并且适于将所述编码写数据值块输出到所述存储子系统。
2.根据权利要求1的存储控制器,其中各所述屏蔽值是具有第 一状态或第二状态的位,所述第一状态指示所述写数据值中的所述 对应一个是屏蔽数据值。
3.根据权利要求1的存储控制器,其中由所述主机接口接收的 各所述写数据值是具有八个组成位的字节,并且其中各所述屏蔽值 指示所述字节中的所述对应一个是否为要排除存储在所述存储子系 统之内的屏蔽字节。
4.根据权利要求1的存储控制器,其中所述屏蔽逻辑电路包括 键产生电路,以产生所述键值。
5.根据权利要求4的存储控制器,其中没有指示为屏蔽数据值 的各所述写数据值构成非屏蔽数据值,并且其中所述键产生电路适 于产生所述键值,以便所述键值不与所述写数据值块之内的任何非 屏蔽数据值匹配。
6.根据权利要求1的存储控制器,其中所述存储接口另外耦合 为从所述屏蔽逻辑电路接收所述键值,并且适于将所述键值输出到 所述存储子系统。
7.根据权利要求6的存储控制器,其中所述存储接口包括数据 接口,以将所述编码写数据值块输出到所述存储子系统,和请求接 口,以将所述键值输出到所述存储子系统。
8.根据权利要求7的存储控制器,其中所述数据接口包括:
数据发送电路,以从所述存储控制器输出表示所述编码写数据值 块的信号;和
请求发送电路,以从所述存储控制器输出表示所述键值的信号。
9.根据权利要求8的存储控制器,其中所述数据发送电路包括 第一多个输出驱动器电路,各适于同时输出表示所述编码写数据值 块的各自部分的信号。
10.根据权利要求9的存储控制器,其中所述第一多个输出驱动 器电路中的各输出驱动器电路适于输出所述编码写数据值块中的第 一写数据值的各自位,以便从所述存储控制器并行输出表示所述第 一写数据值的信号。
11.根据权利要求10的存储控制器,还包括第二多个输出驱动 器电路,适于从所述存储控制器与所述第一写数据值同时地输出第 二写数据值。
12.根据权利要求8的存储控制器,其中所述数据发送电路包括 第一输出驱动器电路,适于串行输出所述编码写数据值块的第一写 数据值的各所述组成位。
13.根据权利要求8的存储控制器,其中所述数据发送电路包括 多个输出驱动器电路,各适于串行输出所述编码写数据值块的各自 写数据值的组成位。
14.根据权利要求1的存储控制器,其中所述屏蔽逻辑电路包括 键选择器电路,以从多个预定值中选择所述键值。
15.根据权利要求14的存储控制器,还包括多个存储电路,以 存储所述多个预定值。
16.根据权利要求15的存储控制器,还包括控制逻辑,以将所 述多个预定值编程到所述存储电路。
17.根据权利要求16的存储控制器,其中所述控制逻辑适于响 应经由所述主机接口接收的命令,将所述多个预定值编程到所述存 储电路。
18.根据权利要求14的存储控制器,其中所述键选择器电路包 括多路复用器,具有多个数据输入,以接收所述多个预定值,和控 制输入,以接收键选择值,所述多路复用器适于按照所述键选择值, 将所述多个预定值中的一个作为所述键值输出。
19.根据权利要求18的存储控制器,其中所述键选择器还包括 选择值发生器,以产生所述选择值。
20.根据权利要求19的存储控制器,其中没有指示为屏蔽数据 值的各所述写数据值组成非屏蔽数据值,并且其中所述选择值发生 器耦合为从所述主机接口接收所述写数据值块和所述多个屏蔽值, 所述选择值发生器适于识别不与所述写数据值块之内的任何非屏蔽 值匹配的所述多个预定值中的一个,所述选择值发生器还适于按照 所述识别的所述多个预定值中的一个,产生所述选择信号。
21.一种在存储控制器之内操作的方法,所述方法包括:
接收写数据值块和多个屏蔽值,各屏蔽值指示所述写数据值的对 应一个是否为屏蔽数据值;
通过用键值代替各屏蔽数据值,产生编码写数据值块;以及
将所述编码写数据值块输出到存储子系统。
22.根据权利要求21的方法,还包括向所述存储子系统输出请 求,以存储不与所述键值匹配的各写数据值。
23.根据权利要求21的方法,还包括产生所述键值。
24.根据权利要求23的方法,其中没有指示为屏蔽数据值的各 所述写数据值组成非屏蔽数据值,并且其中产生所述键值包括产生 不与所述写数据值块之内的任何非屏蔽数据值匹配的键值。
25.根据权利要求23的方法,还包括向所述存储子系统输出所 述键值。
26.根据权利要求21的方法,还包括从预定键值表中选择所述 键值。
27.根据权利要求26的方法,还包括向所述存储子系统输出选 择器值,所述选择器值与从所述预定键表中选择的所述键值相对应。
28.根据权利要求27的方法,还包括在初始化操作中将所述预 定键存储到所述预定键表中。
29.根据权利要求21的方法,其中向所述存储子系统输出所述 编码写数据值块,包括将所述编码数据块中的至少一个写数据值以 位的串行流输出到所述存储子系统。
30.根据权利要求26的方法,其中以位的串行流输出所述至少 一个写数据值,包括在第一信号线上以连续发送输出所述写数据值 的各组成位。
31.一种存储装置,包括:
存储阵列;
比较电路,以将写数据值与键值比较,并且产生匹配信号,指示 所述写数据值是否与所述键值匹配;和
写电路,与所述存储阵列和所述比较电路耦合,所述写电路适于 如果所述匹配信号指示所述写数据值不与所述键值匹配,则将所述 写数据值存储在所述存储阵列中。
32.根据权利要求31的存储装置,还包括接收电路,以接收所 述写数据值,以及将所述写数据值输出到所述比较电路和所述写电 路。
33.根据权利要求32的存储装置,其中所述接收电路适于接收 所述键值,以及将所述键值输出到所述比较电路。
34.根据权利要求33的存储装置,其中所述接收电路包括多个 采样电路,包括至少一个采样电路来接收所述写数据值,和至少一 个另外采样电路来接收所述键值。
35.根据权利要求31的存储装置,其中所述存储阵列包括电容 元件的阵列,各适于按照其中存储的二进制数据,处在充电状态或 放电状态。
36.根据权利要求31的存储装置,其中所述存储阵列包括存 电路的阵列,各适于按照其中存储的二进制数据,使第一状态或第 二状态锁存。
37.根据权利要求32的存储装置,还包括一个表,以存储多个 预定值,和一个选择电路,以将所述预定值中的一个选择为所述键 值。
38.根据权利要求37的存储装置,其中所述接收电路适于接收 选择器值,以及其中所述选择电路适于按照所述选择器值,选择所 述预定值中的所述一个。
39.根据权利要求32的存储装置,其中所述接收电路包括至少 一个采样电路,以按采样操作顺序接收所述写数据值。
40.一种在存储装置之内操作的方法,所述方法包括:
接收写数据值,以存储在所述存储装置的存储阵列之内;
将所述写数据值与键值比较;以及
如果所述写数据值不与所述键值匹配,则将所述写数据值存储在 所述存储阵列之内。
41.根据权利要求40的方法,还包括接收所述键值。
42.根据权利要求40的方法,还包括将多个预定值中的一个选 择为所述键值。
43.根据权利要求42的方法,还包括接收所述多个预定值,并 且将所述多个预定值存储在所述存储装置之内。
44.根据权利要求42的方法,还包括接收选择值,以及其中选 择所述多个预定值中的一个,包括选择由所述选择值指示的所述多 个预定值中的一个。
45.一种存储系统,包括:
存储控制器,以输出写数据值;和
存储装置,耦合为从所述存储控制器接收所述写数据值,所述存 储装置适于将所述写数据值与第一键值比较,并且如果所述写数据 值不与所述第一键值匹配,则存储所述写数据值。
46.根据权利要求45的存储系统,其中所述存储控制器适于产 生所述第一键值,以及将所述第一键值输出到所述存储装置。
47.根据权利要求45的存储系统,其中所述存储控制器包括第 一预定值表,以及其中所述存储控制器适于从所述第一预定值表中 选择第二键值。
48.根据权利要求47的存储系统,其中所述存储控制器还适于 向所述存储装置输出选择器值,所述选择器值与所述第一预定值表 之内的所述预定值中的一个相对应。
49.根据权利要求48的存储系统,其中所述存储装置包括第二 预定值表,以及其中所述存储装置适于接收所述选择器值,并且基 于所述选择器值,从所述第二预定值表中选择所述第一键值。
50.一种在存储系统之内操作的方法,所述方法包括:
接收写数据值块和对应的多个屏蔽值;
通过用键值代替其所述屏蔽值中的对应一个在第一状态的各所 述写数据值,产生编码写数据值块;
将所述编码写数据值块传送到存储子系统;
在所述存储子系统之内将各所述写数据值与所述键值比较;以及
在所述存储子系统之内存储确定不与所述键值匹配的各所述写 数据值。
51.根据权利要求50的方法,还包括产生所述键值,以及将所 述键值传送到所述存储子系统。
52.根据权利要求51的方法,其中产生所述键值包括产生不与 其所述屏蔽值的对应一个指示屏蔽状况的所述写数据值中的任何一 个匹配的键值。
53.根据权利要求50的方法,还包括:
使用选择器值从第一预定值表中选择所述键值;
将所述选择器值传送到所述存储子系统;以及
从所述存储子系统之内的第二预定值表中选择所述键值。
54.根据权利要求53的方法,还包括在初始化操作中将预定值 存储在所述第二预定值表中。
55.一种存储控制器,包括:
请求接口,以接收第一写数据值,和将所述第一写数据值存储在 存储子系统中的请求;和
串行化驱动器电路,耦合为从所述请求接口以并行组成位组接收 所述第一写数据值,并且适于经由第一信号线以组成位的串行流将 所述第一写数据值输出到所述存储子系统。
56.根据权利要求55的存储控制器,其中所述串行化驱动器电 路包括:
串行化电路,以将所述并行组成位组转换成所述组成位的串行 流;和
输出驱动器,以从所述串行化电路连续接收所述组成位的串行流 的各位,并且将所述组成位的串行流的各位输出到所述第一信号线 上。
57.根据权利要求56的存储控制器,其中存储控制器还包括一 个接口,以与外部信号线耦合,并且其中所述第一信号线耦合在所 述输出驱动器与所述接口之间。
58.根据权利要求56的存储控制器,其中所述串行化电路包括 具有多个存储元件的移位寄存器,所述移位寄存器适于在对负载信 号跃变的多个响应之内接收所述并行组成位组,并且响应移位信号 的各自跃变,将所述并行组成位组的各位输出到所述输出驱动器。
59.根据权利要求55的存储控制器,其中所述接口适于与所述 第一写数据值同时接收第二写数据值,并且其中所述串行化驱动器 电路还适于从所述请求接口以并行组成位组接收所述第二写数据 值,并且经由第二信号线以组成位的串行流将所述第二写数据值输 出到所述存储子系统。
60.根据权利要求59的存储控制器,其中所述串行化驱动器电 路还适于同时将所述第一和第二写数据值分别输出到所述第一和第 二信号线上。
61.根据权利要求60的存储控制器,其中所述串行化驱动器电 路包括第一输出驱动器电路,以经由所述第一信号线输出所述第一 写数据值,和第二输出驱动器电路,以经由所述第二信号线输出所 述第二写数据值,并且其中所述第一输出驱动器电路和所述第二输 出驱动器电路适于响应发送时钟信号的跃变,分别输出所述第一和 第二写数据值。
62.根据权利要求55的存储控制器,其中所述请求接口适于接 收屏蔽值,该屏蔽值指示所述第一写数据值是否要排除存储在所述 存储子系统中,并且其中所述存储控制器还包括屏蔽逻辑电路,如 果所述屏蔽值指示所述第一写数据值要排除存储在所述存储子系统 中,则用键值代替所述第一写数据值。
63.根据权利要求62的存储控制器,其中所述屏蔽值是具有第 一状态或第二状态的位,所述第一状态指示所述第一写数据值要排 除存储在所述存储子系统中。
64.根据权利要求62的存储控制器,其中所述第一写数据值是 具有八个组成位的字节。
65.根据权利要求62的存储控制器,其中还包括请求接口,以 将所述键值输出到所述存储子系统。
66.一种存储装置,包括:
存储阵列,具有多个存储元件,和与所述存储元件的各自列耦合 的位线;
接收器,以从第一信号线接收至少八位的串行流,所述位的串行 流组成第一写数据值;
解串电路,耦合为从所述接收器接收所述位的串行流,并且适于 将所述位的串行流转换成并行位组;和
写驱动器电路,与所述位线耦合,并且耦合为从所述解串电路接 收所述并行位组,所述写驱动器电路适于将所述并行位组的各位分 别输出到所述位线之一上,以使所述第一写数据值能够存储在所述 存储阵列之内。
67.根据权利要求66的存储装置,其中所述写驱动器电路还适 于将所述并行位组同时输出到所述位线上。
68.根据权利要求66的存储装置,其中所述解串电路包括移位 寄存器。
69.根据权利要求66的存储装置,还包括写允许电路,以将所 述并行位组与键值比较,并且产生写允许信号,如果所述并行位组 与所述键值匹配,则所述写允许信号具有第一状态,以及如果所述 并行位组不与所述键值匹配,则所述写允许信号具有第二状态。
70.根据权利要求69的存储装置,其中所述写驱动器电路具有 允许输入,该允许输入耦合为从所述写允许电路接收所述写允许信 号,并且其中所述写驱动器电路还适于如果所述写允许信号在所述 第二状态,则将所述并行位组输出到所述位线上。
71.根据权利要求69的存储装置,还包括请求接口,以接收所 述键值。
72.根据权利要求69的存储装置,其中所述写允许信号电路适 于响应选择信号,从多个预定值中选择所述键值。
73.根据权利要求72的存储装置,还包括请求接口,以接收所 述选择信号。
74.根据权利要求72的存储装置,还包括多个存储电路,以存 储所述多个预定值。
75.一种存储系统,包括:
存储控制器,以从主机接收多个写数据值,并且以各自位的串行 流输出所述写数据值;和
多个存储装置,各耦合为从所述存储控制器接收所述位的串行流 的至少一个,并且适于将所述位的串行流的所述至少一个转换成并 行位组用于存储。
76.根据权利要求75的存储系统,还包括多条信号线,耦合在 所述存储控制器与所述多个存储装置之间,并且其中所述存储控制 器适于分别经由所述多条信号线之一以位的串行流输出各所述写数 据值。

说明书全文

技术领域

发明一般涉及数据传送和存储技术,并且更特别地涉及在存储 系统和访问存储系统的装置中的屏蔽写操作。

背景技术

现代存储系统中的读和写访问典型地通过多字节数据的传送 来处理。当从存储系统中读出不到一个完全数据块时,将包含希望 数据的数据块的地址提供给存储系统,并且读出完全数据块。一般 来说,对于读出多于所需要的数据没有代价。相反,当写入一个小 于完全数据块的值时,重要的是除所写入的值外,存储数据块保持 不变。这点典型地通过两种类型的专写操作中的一种:合并写操 作或屏蔽写操作来完成。
在合并写操作中(有时称为读-合并-写操作或读-修改-写操作), 存储控制器读出要更新的数据块,以适当偏移将写数据值合并到数 据块中,然后将更新了的数据块写回存储。因为需要两次存储器访 问(读和写),所以合并写操作相当大地减小存储系统的峰带宽, 并且因此典型地不用在高性能系统中。
在屏蔽写操作中,存储控制器向存储子系统发出屏蔽信号,以将 数据块之内的各数据值限制为屏蔽或非屏蔽。存储子系统通过仅存 储非屏蔽数据值而响应。为了传统起见,数据屏蔽的粒度典型地扩 展到字节(即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(INT 0)接收写数据块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相对应的各自组的限定匹配信号(即 QM00-3,QM10-3,...,QM(X-1)x0-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门585i的倒相输入;限定匹配信号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,以指示非屏蔽写操作。
仅为了参考方便起见,在本详细描述中提供了部分标题,并且决 不限定、限制、分析或描述这样部分的范围或深度。而且,虽然本 发明已参照其特定示例性实施例作了描述,但是将会显而易见,在 不脱离本发明的更广泛精神和范围下可以对其实行各种修变和改 变。因此,说明书和附图认为是说明性的而不是限制意义的。
相关申请的交叉引用
本申请要求由发明人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 Write Masking”的美国实用新型专利申请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的优先权。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈