CN101241452B - 存储系统和命令处理方法 - Google Patents
存储系统和命令处理方法 Download PDFInfo
- Publication number
- CN101241452B CN101241452B CN2007101998528A CN200710199852A CN101241452B CN 101241452 B CN101241452 B CN 101241452B CN 2007101998528 A CN2007101998528 A CN 2007101998528A CN 200710199852 A CN200710199852 A CN 200710199852A CN 101241452 B CN101241452 B CN 101241452B
- Authority
- CN
- China
- Prior art keywords
- data
- order
- error detection
- command
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了一种包括存储器控制器和存储器的存储系统以及相关方法。该方法包括:从该存储器控制器向该存储器传递命令和与该命令关联的误差检测/校正(EDC)数据;并行解码该命令并运行与该EDC数据相关的EDC操作;和如果该命令是写命令,则延迟运行该写命令指示的写操作,直到完成EDC操作为止,否则,则立即运行该命令指示的操作,而不管是否完成了EDC操作。
Description
技术领域
本发明一般涉及存储系统和处理存储系统命令的方法。
背景技术
“存储系统”的概念现在包括使能数字数据传输、存储和恢复的各种电路和相关控制方法。以前,存储系统仅与计算机系统和类似计算逻辑平台相关联。现在,从手机到汽车到制冷机的许多消费品包括可变复杂性的存储系统。
图(FIG.)1中概念性图示了一般存储系统,其中提供存储器2以存储通过信道3从存储器控制器1接收的数据。
存储器2从其工作本性来说可以是易失性的或非易失性的。易失性存储器可保持所存储的数据,只要向该存储器供电即可。动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)是公知类别的易失性存储器。相反,非易失性存储器具有在不被施加电力的情况下也保持所存储的数据的能力。闪存是非易失性存储器的一个普通示例。
与存储器类型和相关存储容量无关,存储器一般必须与一些种类的存储器控制器相关联。图1所示存储器控制器1可采取许多不同形式,包括一般处理器或控制器、直接存储地址(DMA)控制器、主机装置中央处理单元(CPU)、专用数据切换或传输元件等。在其所有可变形式中,与附加功能无关,存储器控制器1以其基本相关功能控制向和/或从存储器2传输数据。
经由信道3完成存储器控制器1和存储器2之间的数据传输。信道3在其实现上可以是硬连线的或无线的。例如,可经由(多个)射频(RF)信道、(多个)红外信道和/或(多个)磁电信道在存储器控制器1和存储器2之间无线传输数据。更具体地,存储器控制器1和存储器2经由由一个或多个总线和/或各种信号线形成的硬连线信道相连。在该上下文中,“总线”仅是与数据块和/或定时段相关地共同操作的信号线集合(物理的或操作的)。
图2所示示例仅是可用于连接存储器2和存储器控制器1的多种硬连线 信道3中的几种。在第一图示示例中,存储器2和存储器控制器1通过多个单向控制信号线(C/S)、单向地址总线(ADDR)、和双向数据总线(DQ)相连。假设为了图示存储器2是DRAM的目的,控制信号线可用于传递常用控制信号,例如片选(CS)、行地址选通(RAS)、列地址选通(CAS)、写使能等。在该配置中,地址总线可用于传递多个地址位,标识分别向其写入数据或从其读取数据的存储器2中的(多个)唯一位置。要写入存储器2的数据在下面将被称为“写数据”,而从存储器2恢复的数据将被称为“读数据”。
在图2的第二图示示例中,将控制信号线和地址总线的单向集合有效组合为单一控制/地址(C/A)总线。该总线配置一般利用打包(packetized)命令而与存储系统相关联。也就是说,某些存储系统架构利用通过将数据配置为所谓“数据分组”而提供的灵活性和有效性。数据分组的定义和使用是本领域技术人员公知的,并且是许多传统协议和标准的主题。
在图2的第三图示示例中,还使用公共单向C/A总线结构来从存储器控制器1向存储器2传递写数据。这里,可再次将写数据和相关控制数据和/或地址数据一起集合为一个或多个数据分组。
最后,在图2的第四图示示例中,使用公共单向总线不仅从存储器控制器2向存储器1传递控制数据、地址数据和写数据,而且从存储器2向存储器控制器1传递读数据。除了公共单向总线之外,在存储器控制器1和存储器2之间仅以别的方式定义某些控制信号线。在该示例中,在将读数据从存储器2传递到存储器控制器1之前,可对读数据进行打包。
传统和新兴(emerging)存储系统的一个显著特性是对于更大数据带宽(即,每单位操作的可用数据)和/或数据吞吐量(每时间段的可用数据)的增加的需求。可通过在存储系统操作中增加向/从存储器传递的数据比特数目来增加数据带宽。可通过增加在存储系统操作中向/从存储器传递的数据比特数目和/或增加执行每一存储系统操作的速度,来增加数据吞吐量。
给定在最大化可用数据带宽和数据吞吐量的同时降低存储系统尺寸和功耗的并发商业动机,已迅速出现某些实际限制就不令人吃惊了。例如,可以由存储器或存储器控制器的尺寸和/或可用连接(输入/输出)垫(pads)的对应数目来限制用于连接存储器控制器和存储器的信号线的数目。给定这样的物理限制,存储系统中的所有或一些信号线在它们的使用中可复用。
与存储器和存储器控制器之间的物理连接无关,几乎所有当前存储系统 正以越来越快的时钟速度运行。越来越快的时钟速度促进更大数据吞吐量。非常期望增强的数据吞吐量用于许多商业应用。
不幸的是,越来越快的时钟速度也增加数据通信(发送和/或接收)误差的可能性。实际上,存储系统已变得很复杂并且数据传输速度已变得很快,使得许多当前存储系统现在合并误差检测和/或误差校正(单独或统一表示为“EDC”)能力,以减轻不可避免的数据误差的结果。
EDC能力曾经最初用于远程(long-haul)(或大批(bulk))数据业务,例如电话网络和卫星通信系统。然而,现在,在存储系统中合并EDC能力的优点得到了很好重视。存在许多不同类型EDC协议、技术、方案、以及相关电路和软件。一类相对简单的误差检测技术传统上用于实现称为循环冗余校验(CRC)的功能。更复杂的EDC技术不仅能够检测所传递的数据中的一个或多个误差的存在,而且能够校正所检测的(多个)误差。
几乎所有EDC技术都通过向传递的数据块添加附加(“开销”)数据比特来实现。也就是说,首先通过算术或逻辑计算来运行数据块,以便产生对应EDC数据。然后将EDC数据和数据块一起传输。在接收方,通过类似算术/逻辑计算再次运行该数据块,并将得到的数据与所接收的EDC数据作比较。成功的比较指示没有误差的数据块。失败的比较指示数据块中的一个或多个误差。当使用更复杂的EDC技术时,通过进一步采取(resort to)开销数据可校正这些误差。
当存储系统的工作速度和总体复杂性增加时,在存储器控制器和存储器之间传递的控制数据、地址数据、写数据、读数据等已变得更容易发生误差。这样的误差的潜在灾难性效果是明显的。错误的控制数据、地址数据和/或写数据是特别危险的,因为这些数据能破坏存储器中存储的数据。
作为前述结果,许多当前存储器控制器现在包括能够生成与存储系统操作(例如,读/写操作)相关的EDC数据的专用电路和/或软件例程。与合并EDC能力(例如,硬件和/或软件)的存储器控制器相连的存储器必须在功能上能够隔离EDC数据和其他数据,并其后利用EDC数据来验证其他数据的一些部分的完整性。
另外,存储器通常包括当已标识了错误数据时能够通知存储器控制器的专用电路和/或软件例程。响应于来自存储器的通知,存储器控制器可重发该错误数据。
在使能由存储器控制器提供的EDC数据的情况下,存储器可附加或替代包括能够校正所接收的数据中所标识的(多个)误差的误差校正电路和/或软件例程。存储系统的EDC能力的总功率和复杂性是设计选择的内容,但是在当前存储系统中正增加提供一些EDC能力。
EDC能力在使用数据分组通信技术的存储系统的环境中是特别有益的。也就是说,可定义各数据分组以包括对应EDC数据连同其他类型数据(例如,控制数据、地址数据、写数据等)。EDC数据可与这些其他数据类型中的任何一个或多个相关联(例如,从这些数据中导出并用于检测和/或校正这些数据中的误差)。
尽管EDC能力在存储器控制器和存储器之间传递的数据验证中提供了很大好处,但是这样的能力代价很大。最大的代价通常强加于存储系统操作的总体速度上。EDC操作在存储器控制器中运行,并更具体地,存储器中运行的EDC操作在存储系统中生成数据吞吐量瓶颈。由此,当前存储系统设计者面临增加数据吞吐量的竞争需求,这需要存储系统操作的流线型、简化和加速,并面临确保数据完整性的竞争需求,这需要复杂和相对慢的EDC操作。
发明内容
认识到至少上述问题,本发明的所选实施例提供了一种存储系统,其能够在提供EDC能力时确保数据完整性,同时避免命令运行瓶颈的可能性。
根据一个实施例,本发明提供了一种操作包括存储器控制器和存储器的存储系统的方法。该方法包括:从存储器控制器向存储器传递命令和与该命令关联的误差检测/校正(EDC)数据,并行解码命令并运行与该EDC数据相关的EDC操作,并且如果该命令是写命令,则延迟运行该些命令所指示的写操作,直到完成EDC操作为止,否则立即运行该命令所指示的操作,而不管是否完成该EDC操作。
在相关实施例中,经由第一单向总线从存储器控制器向存储器传递命令作为命令分组,包括EDC数据、控制数据、和地址数据,并且解码命令的步骤包括在分组接收机中接收命令分组,并作为响应而生成内部命令、内部EDC数据、和内部地址。
在相关实施例中,运行该EDC操作的步骤包括:向误差检测器施加所述内部EDC数据、内部命令、和内部地址;在该误差检测器中生成与所述内部命令、内部地址、和内部EDC数据相关的误差信号;和向写使能信号传输块施加该误差信号。延迟运行写操作的步骤可包括:响应于该误差信号在该写使能信号传输块中生成最终写使能信号。
在另一相关实施例中,从该存储器控制器向该存储器传送该命令作为包括控制数据、地址数据、和与所述控制数据和地址数据中的至少一个关联的第一EDC数据的第一命令分组,并作为包括写数据和与所述写数据关联的第二EDC数据的第二命令分组。所述解码该命令信号的步骤包括:在分组接收机中接收该第一命令分组,并作为响应而生成内部命令、内部地址、第一内部EDC数据、和第一分组指示信号。所述运行EDC操作的步骤可包括:向误差检测器施加所述第一内部EDC数据、内部命令、第一分组指示信号、和内部地址;在该误差检测器中生成与所述内部命令、第一EDC数据、内部地址、和第一分组指示信号相关的第一误差信号;和将该第一误差信号施加到写使能信号传输块。这里,延迟运行写操作的步骤可包括:在该写使能信号传输块中生成与该第一误差信号相关的最终写使能信号。
在另一相关实施例中,解码该命令的步骤还可包括:在分组解码器中接收第二命令分组,并生成内部写数据、第二内部EDC数据、和第二分组指示信号;和存储该内部写数据。运行该EDC操作的步骤还可包括:将所述第二内部EDC数据、内部写数据、和第二分组指示信号施加到该误差检测器;和在该误差检测器中生成与所述内部写数据、第二内部EDC数据、和第二分组指示信号相关的第二误差信号。
在另一实施例中,本发明提供了一种存储系统,包括:经由信道与存储器相连的存储器控制器;其中该存储器控制器包括:命令/地址传送块,生成命令和与该命令关联的误差检测/校正(EDC)数据,并经由该信道将该命令和EDC数据传递到该存储器;和其中该存储器包括:接收机块,接收所述命令和EDC数据;和解码/运行块,与运行和EDC数据相关的EDC操作并行地解码和运行该命令;其中如果该命令不是写命令,则立即运行该命令指示的操作,而不管是否完成了EDC操作,但是如果该命令是写命令,则延迟该操作,直到完成EDC操作为止。
在另一实施例中,本发明提供了一种高速存储系统,包括:存储器控制器,经由点到点互连的集合(collection)而连接到存储卡上排列的多个存储元件;其中该存储器控制器包括命令/地址传送块,用于生成命令和与该命令 关联的误差检测/校正(EDC)数据,并经由至少一个互连将所述命令和EDC数据传送到与所述多个存储元件之一关联的至少一个存储器;和其中该存储器包括:接收机块,接收所述命令和EDC数据;和解码/运行块,与运行和EDC数据相关的EDC操作并行地解码和运行该命令;其中如果该命令不是写命令,则立即运行该命令指示的操作,而不管是否完成了EDC操作,但是如果该命令是写命令,则延迟该操作,直到完成EDC操作为止。
在这方面的所述多个存储元件中的至少一个可包括含有该存储器的垂直堆叠排列的存储器。所述垂直堆叠排列的存储器也可包括最底下(lowermost)的存储器,配置为将所述命令和EDC数据重新驱动到该堆叠排列的存储器中的另一存储器。
附图说明
结合附图来描述本发明的实施例。在图中,类似的附图标记始终指示类似的示例元件、组件、和步骤。在图中:
图1是传统存储系统的方框图;
图2是传统存储系统以及存储器控制器和存储器之间的可能信道连接类型的进一步示例的集合;
图3是总结本发明的方法实施例的某些方面的流程图;
图4是根据本发明一个实施例的存储系统的方框图;
图5是图示了能够实现图4所示写传输(transfer)块的一个示范电路的图;
图6是图示了能够实现图4所示误差检测器的一个示范电路的图;
图7是在实现符合本发明实施例的方法或系统的过程中有用的可能数据分组的概念图;
图8是根据本发明另一实施例的存储系统的方框图;
图9A和9B是在实现符合本发明实施例的方法或系统的过程中有用的可能相关数据分组的概念图;
图10是图示了能够实现图8所示误差检测器的一个示范电路的图;
图11是图示了能够实现图8所示误差检测器的另一示范电路的图;
图12是根据本发明实施例的包括存储卡的存储系统的方框图。
具体实施方式
现在将参考附图来描述本发明的实施例。然而,本发明可替换并以各种方式实施,并不仅限于图示实施例。相反,将图示实施例呈现为示教示例。本发明的实际范围由以下权利要求限定。
在一个方面中,本发明的实施例解决在合并EDC能力的存储系统中增加命令运行等待时间的问题。传统存储系统仅在完成对应EDC操作之后依次运行命令。当EDC数据与命令相关地从存储器控制器传递到存储器时,必须执行EDC操作,以便在可在存储器中运行该命令之前,验证与该命令关联的数据(例如,控制数据、地址数据等)的精度。在EDC操作之后的命令操作的依次运行确保在实际运行命令之前,与该命令相关地接收的数据是正确的。
在运行命令之前验证命令数据的简单(straight-forward)顺序方案确保了精度。这也可能创建存储器中的命令运行瓶颈。例如,如果在连接存储器控制器和存储器的信道上显然存在瞬态噪声,则存储器所依次接收的一组命令可能包括由噪声引起的数据误差。用于标识和/或校正这些误差的EDC操作在它们各自或累计运行上可相对长。由于仅可以在EDC验证之后顺序运行由这组命令指示的存储系统操作,所以在相对慢的一连串EDC操作中,传统存储系统可能停顿。结果,传统存储系统的数据吞吐量可显著降低。
然而,本发明的实施例认识到各类存储系统操作之间的实际运行差别。在不丧失一般性的情况下,本发明的实施例认识到“写操作”和“非写操作”之间的明显差别。为了描述的目的,“写操作”是具有改变存储器中的一个或多个数据值的预期能力的任何操作。该定义比例如传统RAM装置的环境中使用的短语“写操作”的习惯用途宽。它还包括在传统闪存装置的环境中使用的“编程操作”。显然,特别归结(ascribed)为改变存储器中存储的数据的这些类型传统操作被包含在“写操作”的工作定义之内。然而,其他操作也可包括在该定义之内。例如,在许多种类非易失性存储器中执行的擦除操作也企图能够改变存储器中的一个或多个数据值,并同样落入写操作的工作定义之内。
相反,其后个别并统称为“非写操作”的其他存储系统操作不企图能够改变存储器中的一个或多个数据值。应用到易失性和非易失性存储器两者的传统读操作是非写操作的示例,因为它们的运行不预期改变存储器中存储的任何数据值。而且,应用到传统存储器的刷新操作是非写操作的另一示例, 例如传统片选操作等。
在以下描述中,假设写操作或非写操作的每一操作与一个或多个命令相关联。可响应于由整体(unitary)块命令数据指示的单一命令来运行某些存储系统中的一些操作。可响应于通过包括命令数据的一串数据块或数据块集合指示的多个命令来运行其他操作。为了在该描述中始终清楚的目的,将不再提及各种命令的运行细节之间的差别,而在认识到所述命令可涉及许多不同数据配置和/或数据定时特性的情况下,将每一存储系统操作说成是响应于“命令”执行的。由此,考虑到以上描述,将写操作说成是响应于“写命令”而在存储器中运行的,而将非写操作说成是响应于“非写命令”而在存储器中运行的。
可以在本发明实施例的环境中在存储器控制器和存储器之间以各种方式“传递”命令和与命令关联的数据。这样的传递在本质上可以是无线和/或硬连线的。本发明的实施例预期标准和定制数据通信协议两者。
可以按照数据分组或某些非分组形式(即,使用传统串行或并行数据通信技术)在存储器控制器和存储器之间传递命令和相关存储系统数据(例如,地址数据、写数据、读数据等)。数据分组可以按照它们的结构和通信定时而以各种方式定义。本发明的实施例预期标准和定制数据分组定义两者。由此,尽管本发明的某些实施例对于利用打包数据的存储系统具有特定应用和益处,但是本发明不仅限于这样的系统。
打包或未打包的命令必须在利用基于存储器的资源(例如,存储器可用的硬件和/或软件资源)运行(或部分运行)之前在存储器中“解码”。分组解码是公知概念。由于打包数据的一个共同目的是多路复用对应信号线,所以需要在数据分组中包括的数据比特的一些划分和随后的解码。然而,描述中使用的术语“解码”具有更宽的定义并包括所有形式的数字数据和/或模拟信号解释和/或变换。
在许多实例中,为了描述的目的,可将存储系统数据和/或信号标识为内部或(verses)外部。内部数据、内部地址、内部命令等意味着在存储系统的存储器中可操作或有意义的数据。例如,在实际应用中,多个卖主制造的存储器控制器和不同卖主制造的存储器结合用于存储系统中。各种存储器控制器命令通常“解码”为可在存储器中运行的内部命令。有时,外部和内部命令或外部和内部数据的格式和定义可以是相同的。然而,从存储器控制器接 收的命令或数据的一些解码、变换或解释可以由存储器来执行。这对于例如时钟信号的某些控制信号也成立。然而,存储器控制器和存储器之间的数据/时钟定时变换、数据类型变换、信号电平变换、命令解释和解码等被认为本质上是传统的,并将根据存储系统设计而变化。
一旦命令和任何相关数据已在存储器中接收到、通过解码成功标识、并通过应用的EDC操作而验证,则可利用存储器中的硬件和/或软件资源来运行所述命令和任何相关数据。某一存储系统中的命令的实际运行是设计选择的问题,并且为了描述的目的也被认为是传统的。
在接下来图示的实施例中,一般存储内核被指示为用于在存储器中存储数据的主要硬件资源。尽管已选择了DRAM示例来图示本发明的各种实施例,但是本领域普通技术人员将认识到,可使用其他存储器类型,例如SRAM、或闪速(NAND或NOR)存储器。为了清楚起见,将采取传统存储内核操作,以避免重复无关的和与实现数据储存(写或编程)和数据恢复(读)的实际机制相关的传统理解的细节。由此,行和列寻址技术、施加的字线和位线电压、数据操作的施加顺序、信号线和控制信号的施加顺序等将根据某些存储内核的特定类型和设计而变化。
本发明的实施例还认识到存储内核一般与例如解码器、电压发生器、冗余存储电路等的多个相关电路关联。这些传统关联的外围电路大部分从下面图示的实施例中省略,因为认为它们的设计、使用和在实施例中的合并是传统理解的。
在认识到写操作和非写操作之间的不同操作暗示的情况下,可通过图3的流程图来归纳出本发明的某些方法实施例。在该流程图中,假设存储器控制器已将存储系统命令和包括EDC数据的相关数据一起传递到存储器。一旦接收到命令(4),存储器就开始并行运行解码操作(5A)和EDC操作(5B)。在该上下文中,短语“并行”指的是同时执行或者任何部分重叠运行。理想地,解码操作和EDC操作将同时开始并基本并行地运行,直到两个操作中的较快的那个完成为止。然而,运行解码操作的解码器电路和运行EDC操作的EDC电路之间的不同信号线长度、以及各电路实现之间的真实世界运行变化将导致这两个操作之间的一些运行不对称。虽然如此,仍可以说这两个操作之间的任何程度的一致运行是“并行”的。
与等待解码和运行操作直到其由对应EDC操作验证之后为止的传统方 案不同,本发明的实施例在执行EDC操作的同时开始解码和潜在运行所接收的命令。所接收的命令的初始解码(5A)将该命令标识为写命令或非写命令(7)。如果所接收的命令是非写命令,则其立即运行,而不考虑EDC操作的结果(5B)。在该上下文中,术语“立即”对于EDC操作及其完成具有特定含义。不必指示除了以下实际效果之外的时间直接性,即非写操作的运行不必需要EDC适应性的一些先前肯定指示(例如,EDC验证选通功能)。
相反,在初始解码(5A)指示所接收的命令是写命令的情况下,写命令的运行不“立即进行”。反而,一旦发生由运行对应EDC操作导致的肯定指示(例如,由其选通),则可能发生由写命令指示的写操作(9)的运行。由此,仅在已将写命令及其相关数据验证为没有误差、或者已校正了任何所检测的(多个)误差之后,才运行写命令。
如上所述,传统EDC操作在其复杂性、精密性和应用上不同。在一些实施例中,仅可运行简单CRC或类似校验和过程,来验证所接收的命令的正确性。EDC操作作出的误差指示在一些实施例中可导致设置误差标记并丢弃错误命令,而没有其他基于存储器的活动。在这样的实施例中,误差标记可导致基于存储器控制器的活动,例如按照降低的时钟频率的命令重发、误差检测和校正等。
在其他实施例中,存储器可实现能够校正在命令及其相关数据中包括的一个或多个误差的高度精密的误差校正过程。然而,即使在存储器具有固有误差校正能力的情况下,也一般将误差指示(例如误差标记)从存储器传递到存储器控制器,使得存储器控制器可对随后的命令数据的通信或开发进行调整,只要可应用即可。
以这种方式,可立即运行非写操作,而没有与等待EDC操作完成关联的延迟。因为非写操作不预期改变在存储器中存储的一个或多个数据值,所以它们的潜在错误运行比较不苛求存储系统的后续操作。例如,如果与读操作关联的读地址数据中的误差使得从存储器中读出错数据,这样的数据可由存储器控制器丢弃,并且读操作重新开始。尽管这样的读取重试操作延迟了存储系统的整体操作,但是它们不破坏存储器中存储的数据。
然而,由于写操作不具有破坏所存储的数据的可能性,所以它们的运行是以对应EDC操作的肯定指示作为条件的。由此,仅归因于写操作的EDC操作能够延迟存储器吞吐量。结果,降低了开发基于存储器运行的瓶颈的可 能性,同时确保所存储的数据的完整性。
图4中图示了根据本发明操作的存储系统的一个实施例。这里,存储器控制器10经由硬连线信道13而连接到存储器20。在图示示例中,假设存储器20是DRAM,但是作为选择,其可以是另一形式的易失性存储器(例如,SRAM)、非易失性存储器(例如,闪存)、或混合有易失性和非易失性组件的存储器(例如与易失性存储器高速缓存器、中间存储器和/或暂时缓存器关联的非易失性内核存储器)。
在图4图示的示例中,存储器控制器10包括时钟发生器(CLKG),用于生成外部时钟信号(CLK),并经由专用信号线将该外部时钟信号(CLK)施加到存储器20。但是一般、特别是在同步存储系统中,不需要向存储器20施加外部时钟,并且可内部生成驱动存储器20中的电路的操作的内部时钟(Iclk)。作为选择,存储器20可响应于发源于除了存储器控制器之外的一个或多个源的外部信号而生成(多个)必要内部时钟信号。
存储器控制器10还包括命令和地址分组发生器12(C/A_G)。由此,假设按照分组形式传送在图4图示的示例中的存储器控制器10和存储器20之间的至少命令和地址通信。认为为了多个目的进行的数据分组的定义和生成是传统的,并且在该描述中将不给出有关C/A分组发生器12的特定本质和设计的附加细节。在图示实施例中,将C/A分组发生器12生成的C/A分组经由单向C/A总线传递到存储器20。
存储器控制器10还包括数据发射机14和数据接收机15,两者都是传统设计。数据发射机14生成写数据,以便传递到存储器20。在图示示例中,经由单向总线写总线(WB)传递写数据。写数据是响应于由来自存储器控制器10的命令指示的写操作而要存储在存储器20中的数据。在图示示例中,写数据将通常与对应写命令并行传递到存储器20,但是可以在存储器控制器20传递对应写命令之前或之后传递该写数据。
数据接收机15从存储器20接收读数据。读数据是响应于存储器控制器10传递的读命令而从存储器20恢复的数据。经由单向读总线(RB)而将读数据从存储器20传递到存储器控制器10。
由此,在图4图示的示例中,信道13包括时钟信号线、第一单向C/A总线、第二单向写总线、和第三单向读总线。另外,专用误差信号线可用于从存储器20向存储器控制器10传递误差检测。分离单向总线的使用具有几个 性能优点,包括降低仲裁总线冲突的需求。另外,可优化第一、第二和第三总线之间的总线宽度(即,形成每一总线的组成信号线的数目)。由此,对应第一、第二和第三总线宽度可以相同或不同。例如,可将不同总线宽度用于写和读操作,以便实现最大数据传输效率。例如,参见2002年2月21日公开的已公开的美国专利申请2002/0023191,通过引用而由此合并其主题。
图4图示的示例中的存储器20包括内部时钟发生器(ICLKG)22,用于接收外部时钟信号(CLK),并生成至少一个内部时钟信号(Iclk)。将内部时钟发生器11生成的所述一个或多个内部时钟信号施加到存储器20内的各电路。例如,在图4图示的同步DRAM示例中,将内部时钟信号(Iclk)施加到分组接收机(PR)24以及内部读/写数据缓存器30和32。和存储器控制器10中的外部时钟发生器11一样,认为内部时钟发生器22的设计本质上是传统的。
分组接收机24在其设计和操作上也可以是传统的。分组接收机24接收经由C/A总线从存储器控制器10传递的C/A分组,并其后解码在C/A分组中包括的数据。在该上下文中,解码可以和将分组数据比特分离为它们的构成成分(例如,来自命令数据的地址数据、来自EDC数据等)一样简单。作为选择或另外,分组接收机24可将外部施加的分组数据解码并变换为内部一致的数据。这样的变换可和转变信号电平或再定时数据比特一样简单,或者其可涉及完全外部到内部代码变换,该变换涉及查找表和/或数据变换算法的运行。不管计算或操作复杂性的水平如何,在图4图示的示例中,可以说分组接收机24从输入命令中导出内部命令(com)、内部地址(add)、和内部EDC数据(edc)。
应该注意,在图示示例中画出了分组接收机的概念,其假设在存储器控制器10和存储器20之间进行数据的打包传递。在非分组存储系统中,可使用更一般的“接收机块”来接收和解码命令。
还应该注意,在该上下文中,可以与内部命令和/或内部地址相关地导出内部EDC数据。由此,可将顺序执行的(多个)EDC操作施加到仅指示内部命令的数据、仅指示内部地址的数据、或共同作为单一数据块或作为分离数据块的命令和地址数据两者。由此,在图示示例中,误差检测器(ED)28接收内部命令、内部地址和内部EDC数据。在利用所接收的数据执行了定义的EDC操作之后,误差检测器28生成指示所接收的C/A数据分组中的误差 存在与否的误差信号(er)。
在该描述性上下文中,已使用术语“误差检测器”来指示例如实现CRC技术的符合要求的误差检测器。然而,该术语不应被解释为以某种方式限于仅误差检测电路或类似能力。相反,这样的电路还可合并具有不同程度精密性的误差校正能力。
也将内部地址施加到用传统DRAM存储器内核36可操作地配置的传统地址解码器(AD)34。地址解码器34可用于生成实现存储器内核36内的各种操作的字线(WLi)和位线(Yi)信号。
也将内部命令施加到存储器20内的命令解码器(CD)26。命令解码器26在其设计和操作上可以是传统的。在图4图示的示例中,多位内部命令由分组接收机24生成并被施加到命令解码器26。响应于该内部命令,命令解码器26生成多个存储控制信号。自然地,命令解码器26生成的控制信号的数目和本质可随着使用的存储器内核及其相关外围电路的本质和类型而变化。在图4图示的示例中,命令解码器26生成传统DRAM控制信号,例如芯片激活(ACT)、预充电(PRE)、刷新(RE)和写使能(WE)等。除了写使能信号之外,这些控制信号可以传统上施加到存储器内核36及其相关外围电路。
然而,向存储器20中运行写操作的电路施加写使能信号必须考虑误差检测器28执行的EDC验证操作。即,由来自误差检测块28的关于与内部写命令和/或内部地址关联的数据有效(即不包括未校正的误差)的一些指示来选通启动存储器20中的写操作的一个或多个控制信号的施加。在该上下文中,术语“写使能信号”不仅限于单一信号指示。相反,本发明的实施例认识到可使用单独或组合的一个或多个控制信号(或数据值)来启动写操作。由此,为了使用简便,以任何格式或组合施加的这样的(多个)控制信号将被称为“写使能信号”。
可以以多种方式实现写使能信号的施加和与写操作数据相关的有效数据的一些与EDC相关的指示之间的函数关系。例如,可使用在存储器驻留控制器上运行的软件例程或类似控制逻辑来延迟施加写使能信号,直到已接收到来自实现EDC操作的另一例程的肯定指示为止。作为选择,可利用多个不同电路实现写使能信号的选通。
在图4图示的示例中,使用写使能信号传输块38来选通由命令解码器 26生成的写信号向存储器内核36及其相关电路的施加。
图5以一些附加细节示出了写使能信号传输块38。命令解码器26生成的写使能信号(WR)在例如触发器或锁存电路的延迟元件38-1中接收,将延迟元件38-1的输出施加到例如选通触发器电路的开关元件38-2。一旦施加误差检测器28生成的误差信号(er)作为最终写使能信号(FWR),则从开关元件38-2输出该信号。最终写使能信号(FWR)控制在存储器内核36及其相关电路中的写操作的运行。本领域普通技术人员将认识到存在许多不同电路,可用于实现对施加到存储器内核的写使能信号施加的误差指示选通功能。
如先前所述,误差检测器28生成的误差信号(er)可以是许多不同误差检测和/或误差校正算法、电路、和/或协议的产品。图6中图示了能够生成误差信号(er)的电路的一个简单示例。这里,以一些附加细节示出了误差检测器28。误差检测器28包括能够实现CRC算法的传统EDC发生器28-1。在图示示例中,EDC发生器28-1接收内部命令和内部地址两者,并生成与所接收的数据相关的内部CRC数据(icrc)。然后在传统比较器电路28-2中将该内部CRC数据(icrc)与从分组接收机24提供的EDC数据(例如,命令分组中的由存储器控制器10计算并传递到存储器20的外部CRC数据)进行比较。这两个数据集之间的成功比较导致来自误差检测器块28的肯定(无误差)指示。这两个数据集之间的失败比较导致来自误差检测器块28的否定(误差)指示。在一个实施例中,误差检测器28生成的误差信号(er)可以是提供否定或肯定指示的简单逻辑信号(例如,标记值)。
传递到存储器20的命令分组中的一个或多个误差的存在通常引起对应存储器控制器10的严重注意。大部分误差是由噪声效应信道13引入数据分组中的。然而,可能存在数据比特误差的许多其他可能源。许多当前存储器控制器包括可调用以改善数据通信精度的适应性能力。例如,响应于来自存储器20的误差指示,存储器控制器10可增强其信号传送强度,以减轻信道13中的噪声效应。存储器控制器20也可或作为选择可降低其数据传输率,或开始使用更鲁棒的误差检测和校正技术。作为选择,存储器控制器20可简单重发错误命令、或以更高传输强度和/或更慢传输率来重发错误命令。由此,当误差检测器28生成误差指示时,存储器20将通常(但并非必须)将“误差标记”传递到存储器控制器10。在该上下文中,该误差标记将采用许多不 同形式中的一种,但是在图4图示的示例中,经由专用误差标记信号线从存储器20向存储器控制器10传递简单二进制数据信号。在传递命令分组之后,可以由存储器控制器10定期(routinely)轮询该标记信号。
在图4图示的示例中,存储器20也包括从单向写总线(WB)接收写数据的写数据缓冲器(DIB)30。在写数据缓冲器30中保持所接收的写数据,直到其被传输到存储器内核36及其相关电路为止。在图示示例中,响应于所施加的内部时钟(Iclk)和最终写使能信号(FWR),而将来自存储器控制器10的写数据输出到存储器内核36作为内部写数据(iwd)。
存储器20也包括读数据缓冲器(D0B)32,用于从存储器内核36接收读数据(ird)。在读数据缓冲器32中保持所接收的读数据,直到其经由单向读总线(RB)被传输到存储器控制器10为止。在图示示例中,响应于所施加的内部时钟(Iclk)和命令解码器26生成的读使能信号(RE)而将从存储器内核36恢复的读数据输出到存储器控制器10。在一些实施例中,从存储器20向存储器控制器10提供的读数据将包括有用地施加到存储器控制器10中的数据接收机15的一个或多个读时钟信号。
图7图示了可在本发明实施例中使用的一个可能数据分组。在提供存储器控制器和存储器之间的硬连线连接的存储系统中,可将数据分组传统上定义为在一连串定时间隔期间经由多个信号线传递的一组数据比特。由存储器10的时钟发生器11生成的外部时钟信号(CLK)的周期可用于定义这些定时间隔。在图示示例中,在九(9)个连续定时间隔期间使用与存储器控制器10的对应输出管脚相连的六(6)个信号线,以传递包括最多五十四(54)个数据比特的命令分组。示范数据分组包括控制数据(例如,/CS、/RAS、/CAS、和/WE)、地址数据(例如,R0-R12和C0-C12)、某些无关数据(“X”)和与所述命令和地址数据相关的EDC数据(例如,8比特CRC数据)。
当分组接收机24接收该数据分组时,可从分组中剥去各种数据比特,进行变换或解释(如果必须),并然后将其传递到存储器20中的其他电路。图示示例仅是可在本发明实施例中使用的许多数据分组定义中的一个。在存储器控制器10和存储器20之间交换的数据分组的定义将根据存储系统的信道类型、工作速度、存储密度、和类似设计特征而变化。尤其应该注意的是,图示存储系统的EDC能力不限于简单CRC协议,而可以使用更复杂的误差检测/校正协议。这样的协议当然将影响与命令分组通信的EDC数据的本质 和数量。
已在突出存储器控制器10和存储器20中显然的某些功能和能力的描述中呈现了前述实施例。与这些功能和能力相关的前述实施例中标识的各电路不应完全按照字面意义解释。本领域普通技术人员将认识到,可以在大量不同电路组合中实现这些功能和能力。可进行上述示范电路的这样的组合和/或划分。作为选择,可使用软件来实现这些功能和能力中的一个或多个。无论以硬件和/或软件实现、并实现打包或非打包数据通信配置,一般可以说存储器包括能够与一个或多个构成存储器内核相关地接收存储系统命令、解码命令、并运行命令的解码/运行块。
事实上,可使用一个或多个控制器、(多个)微处理器、或特定用途集成电路(ASIC)和相关软件来实现归因于在图4的上下文中的上述一个或多个电路的功能和能力。例如,可在软件控制的单一计算平台中组合命令解码器26和误差检测器28的功能。分组接收机24可包含内部时钟发生器22和/或误差检测器28和/或命令解码器26的功能。写数据缓冲器30和读数据缓冲器32可在单一集成存储电路中实现。总言之,(多个)特定电路定义将根据总体存储系统设计和数据分组定义而得出。
作为附加示例,呈现了图8的实施例。该实施例与图4的非常类似,并将不重复对相似组件和功能的描述。代替集中在实施例之间的差别上,存储器控制器10’将图4的命令和地址分组发生器12(C/A_G)和数据发射机14的功能组合为单一命令/地址/写数据发生器16(C/A/WD_G)。C/A/WD发生器16经由单一单向总线与存储器20’相连。与经由该单一单向总线从存储器控制器10’向存储器20’传递的命令分组中的写命令关联的写数据的组合具有几个优点,包括简化信道13’和降低存储器20’处的数据处理复杂度。
除了信道13’的结构的可能改变之外,图8的实施例也将影响存储器控制器10’和存储器20’之间传递的数据分组的定义。即,必须与涉及每一命令的数据数量相关地考虑将存储器控制器10’和存储器20’相连的信号线的数目以及分组定时间隔的数目。
例如,如果我们假设和针对图4的存储器系统假设的相同的用于图8的存储器系统的信道资源和时间帧可用性,并由此假设类似数据分组定义,则利用多个数据分组在图8的存储器系统中传递命令可能成为必须。该可能性进一步在图9A和9B中图示。这里,在不同时间帧期间单独传递相关第一和 第二数据分组,以便完全实现从存储器控制器10’到存储器20’的存储系统命令传递。图9A示出的第一数据分组包括控制数据(例如,/CS、/RAS、/CAS、和/WE)、地址数据(例如,R0-R12和C0-C12)、无关数据(“X”)和与所述控制和地址数据相关的第一EDC数据(例如,5比特CRC数据)。图9B示出的第二数据分组包括写数据(例如,D0-D12)、无关数据(“X”)和与所述写数据相关的第二EDC数据(例如,5比特CRC数据)。
第一和第二数据分组中的每一个通过也包括第一传送的数据/命令比特(DC)而指示其本质。该比特将该数据分组标识为包括命令/地址数据或包括写数据。响应于数据/命令比特,存储器20’中的分组接收机24’知道如何处理组成数据。例如,在图8的实施例中,假设分组接收机24’顺序接收图9A和9B图示的第一和第二数据分组。响应于第一分组中显而易见的数据/命令比特,分组接收机24’生成第一分组指示信号(idc),并将该信号施加到误差检测器28’。借助于第一分组指示信号(idc),误差检测器28’能够标识与命令/地址数据相关的第一EDC数据,并运行定义的EDC操作。
当分组接收机24’接收到第一数据分组时,除了第一分组指示信号(idc)之外,其生成内部命令(com)、内部地址(add)、和第一EDC数据(edc)。响应于这些各种数据信号,误差检测器28’运行EDC操作并生成与命令/地址数据相关的第一误差信号(er1)。命令检测器26’和写使能信号传输块38’然后响应于第一误差信号(er1)工作。
随后(或先前地),当分组接收机24’接收到第二数据分组时,除了第二分组指示信号(idc)之外,其生成内部写数据(wd)和第二EDC数据(edc)。将内部写数据(wd)从分组接收机24’传递到写数据缓冲器30’(DB)以进行暂时存储。响应于第二EDC数据(edc),误差检测器28’运行定义的EDC操作并生成与写数据相关的第二误差信号(er2)。将第二误差信号(er2)施加到写数据传输块40(DTB),该写数据传输块40(DTB)控制从写数据缓冲器30’向存储器内核36’及其相关电路传输内部写数据(wd)。以这种方式,作为写操作的一部分,可仅将EDC验证后的写数据存储在存储器内核36’中。
在图8图示的示例中,将第一和第二误差信号(er1和er2)施加到或逻辑电路,以生成向回传递到存储器控制器10’的误差标记信号。由此,命令/地址数据或写数据中的所检测的误差将导致向存储器控制器10’传递否定误差标记指示。
图10图示了实现图8的误差检测器28’的一个可能电路。这里,第一和第二EDC发生器(EDCG1和EDCG2)接收分组指示信号(idc)的逻辑互补版本作为相应使能控制信号。
第一EDC发生器28’-1可以是能够实现CRC算法的传统EDC发生器。在图示示例中,第一EDC发生器28’-1接收内部命令和内部地址两者,并生成与所接收的数据相关的第一内部EDC数据(icrc)。在传统比较器电路28’-2中将第一内部EDC数据(icrc1)与从分组接收机24’提供的第一EDC数据(例如,第一数据分组中的与命令/地址数据相关由存储器控制器10’计算并传递到存储器20’的CRC数据)作比较。这两个结果的成功比较生成肯定(无误差)第一误差信号(er1)。这两个结果的失败比较生成否定(误差)第一误差信号(er1)。
类似地,第二EDC发生器28’-3接收内部写数据,并生成与所接收的写数据相关的第二内部EDC数据(icrc2)。在传统比较器电路28’-4中将第二内部EDC数据(icrc2)与从分组接收机24’提供的第二EDC数据(例如,第二数据分组中的与写数据相关由存储器控制器10’计算并传递到存储器20’的CRC数据)作比较。这两个结果的成功比较生成肯定(无误差)第二误差信号(er2)。这两个结果的失败比较生成否定(误差)第二误差信号(er2)。
作为图10的示例的替换,仅需要使用单一EDC发生器和对应比较器来生成第一和第二误差信号两者。这可通过将相应数据信号顺序施加到EDC发生器并其后将结果和提供的EDC参考作比较而实现。图11图示了利用单一EDC发生器28’-5和单一比较器28’-6植入误差检测器28’的一个可能电路。这里,使用分组指示信号(idc)的互补版本来控制向EDC发生器28’-5分别切换施加内部命令(com)和内部地址(add)数据或内部写数据(wd)。然后将EDC发生器28’-5顺序生成的内部EDC数据(例如,icrc)与施加的EDC参考值(例如,外部提供的CRC数据)作比较,以便生成第一和第二误差信号两者(er1和er2)。
在描述中到现在为止,示范实施例已假设了能够在单一集成电路(IC)中实现的存储器(例如,DRAM、SRAM、或闪存)。然而,本发明的实施例决不限于单一IC存储器实现、或一个存储器控制器仅与一个整体存储装置相配的实现,
如上所述,当前存储系统的设计和实现中的一个重要驱动因素是容量。 图12的存储系统包括和包括多个存储单元0到“N”的对应存储器20”(例如,存储卡或类似装置)一起排列的单一存储器控制器10”。每一存储单元可包括一个或多个易失性或非易失性存储器。例如,在一个实施例中,每一存储单元包括垂直堆叠排列的各存储器。
存储器控制器10”经由包括多个高速点到点互连的信道13”而连接到存储器20”。这样的高速点到点互连非常容易受到它们的组成信号线的长度变化的影响。由此,很难实现存储单元的横向扩展排列。然而,存储单元的垂直堆叠排列允许存储器控制器10”和存储器20”之间的相对短的点到点互连。可根据传统理解的技术来配置每一存储单元中的堆叠的存储器之间的进一步垂直互连。例如,在一个实施例中,最底下的存储单元可根据所接收的地址将所接收的分组定线(route)(或重新驱动(re-drive))到堆栈中的其他存储器。每一存储单元可包括其自己的误差检测器,或者公共存取(并可能更强大)的误差检测器28”可在存储器20”上提供。
在本发明另一实施例中,可将智能卡实现为与充当前面描述的术语中的“存储器控制器”的智能卡终端关联的“存储器”。即,可以按照与前述实施例一致的方式来处理从智能卡终端向智能卡传递的命令。
事实上,根据前述教义的指示,合并有可能受益于EDC能力的合并的存储系统的许多产品将进一步受益于存储系统命令的处理。
应该注意,尽管在教导了制造和使用本发明的选定实施例和详细示例的上下文中已教导了本发明,但是本发明不仅限于所公开的实施例。本领域普通技术人员将认识到,可对这些实施例进行各种修改和变更,而不脱离由以下权利要求限定的本发明的范围。
Claims (48)
1.一种在包括存储器控制器和存储器的存储系统中的方法,包括:
从该存储器控制器向该存储器传递命令和与该命令关联的误差检测/校正数据;
并行解码该命令并运行与该误差检测/校正数据相关的误差检测/校正操作;和
如果该命令是写命令,则延迟运行该写命令指示的写操作,直到完成误差检测/校正操作为止,否则
立即运行该命令指示的操作,而不管是否完成了误差检测/校正操作。
2.根据权利要求1的方法,其中将该命令传递到该存储器,作为多个命令信号、作为包括控制数据的命令分组、作为包括控制数据和地址数据的命令分组、或作为包括控制数据、地址数据、和写数据的命令分组。
3.根据权利要求1的方法,其中将该命令传递到该存储器作为包括该误差检测/校正数据的命令分组。
4.根据权利要求2的方法,其中经由第一单向总线从该存储器控制器向该存储器传递该命令。
5.根据权利要求4的方法,其中该存储器响应于该命令经由第二单向总线向该存储器控制器传递读数据。
6.根据权利要求5的方法,其中所述第一和第二单向总线具有不同总线宽度。
7.根据权利要求2的方法,其中经由双向总线在所述存储器控制器和存储器之间传递写数据和读数据。
8.根据权利要求1的方法,其中该误差检测/校正操作实现循环冗余校验法,并且该误差检测/校正数据包括循环冗余校验法数据。
9.根据权利要求1的方法,其中经由第一单向总线从该存储器控制器向该存储器传递的命令包括含有误差检测/校正数据、控制数据、和地址数据的命令分组,并且其中所述解码命令的步骤包括:
在分组接收机中接收该命令分组,并作为响应而生成内部命令、内部误差检测/校正数据和内部地址。
10.根据权利要求9的方法,其中运行该误差检测/校正操作的步骤包括:
向误差检测器施加所述内部误差检测/校正数据、内部命令、和内部地址;
在该误差检测器中生成与所述内部命令、内部地址、和内部误差检测/校正数据相关的误差信号;和
向写使能信号传输块施加该误差信号。
11.根据权利要求10的方法,其中延迟运行写操作的步骤包括:响应于该误差信号而在该写使能信号传输块中生成最终写使能信号。
12.根据权利要求10的方法,还包括:
在命令解码器中解码该内部命令,并生成被施加到存储器内核的多个控制信号,以便运行该命令所指示的操作;
其中所述控制信号之一包括施加到该写使能信号传输块的写使能信号。
13.根据权利要求10的方法,还包括:
响应于该误差信号而在该存储器中生成误差标记,并将该误差标记传递到该存储器控制器。
14.根据权利要求10的方法,还包括以下步骤中的至少一个:
经由第二单向总线从该存储器控制器向该存储器传递与该命令关联的写数据;和
经由第三单向总线从该存储器向该存储器控制器传递与该命令关联的读数据。
15.根据权利要求14的方法,其中所述第二和第三单向总线中的至少一个具有和第一单向总线不同的总线宽度。
16.根据权利要求1的方法,其中从该存储器控制器向该存储器传递的命令包括含有控制数据、地址数据、和与所述控制数据和地址数据中的至少一个关联的第一误差检测/校正数据的第一命令分组,并包括含有写数据和与所述写数据关联的第二误差检测/校正数据的第二命令分组,并且其中所述解码该命令信号的步骤包括:
在分组接收机中接收该第一命令分组,并作为响应而生成内部命令、内部地址、第一内部误差检测/校正数据、和第一分组指示信号。
17.根据权利要求16的方法,其中所述运行误差检测/校正操作的步骤包括:
向误差检测器施加所述第一内部误差检测/校正数据、内部命令、第一分组指示信号、和内部地址;
在该误差检测器中生成与所述内部命令、第一误差检测/校正数据、内部地址、和第一分组指示信号相关的第一误差信号;和
将该第一误差信号施加到写使能信号传输块。
18.根据权利要求17的方法,其中延迟运行写操作的步骤包括:在该写使能信号传输块中生成与该第一误差信号相关的最终写使能信号。
19.根据权利要求17的方法,其中解码该命令的步骤还包括:
在分组解码器中接收第二命令分组,并生成内部写数据、第二内部误差检测/校正数据、和第二分组指示信号;和
存储该内部写数据。
20.根据权利要求19的方法,其中运行该误差检测/校正操作的步骤还包括:
将所述第二内部误差检测/校正数据、内部写数据、和第二分组指示信号施加到该误差检测器;和
在该误差检测器中生成与所述内部写数据、第二内部误差检测/校正数据、和第二分组指示信号相关的第二误差信号。
21.根据权利要求20的方法,还包括:
向数据传输块施加该第二误差信号;和
响应于该第二误差信号经由该数据传输块向存储单元阵列传输所存储的内部写数据。
22.根据权利要求20的方法,还包括:
响应于所述第一和第二误差信号而在该存储器中生成误差标记,并将该误差标记传递到该存储器控制器。
23.一种存储系统,包括:
经由信道与存储器相连的存储器控制器;
其中该存储器控制器包括:命令/地址传送块,生成命令和与该命令关联的误差检测/校正数据,并经由该信道将该命令和误差检测/校正数据传递到该存储器;和
其中该存储器包括:
接收机块,接收所述命令和误差检测/校正数据;和
解码/运行块,与运行和误差检测/校正数据相关的误差检测/校正操作并行地解码和运行该命令;
其中如果该命令不是写命令,则立即运行该命令指示的操作,而不管是否完成了误差检测/校正操作,但是如果该命令是写命令,则延迟运行该操作,直到完成误差检测/校正操作为止。
24.根据权利要求23的系统,其中该命令/地址传送块生成的命令包括:多个命令信号、包括控制数据的命令分组、包括控制数据和地址数据的命令分组、或包括控制数据、地址数据、和写数据的命令分组。
25.根据权利要求23的系统,其中该命令/地址传送块生成的命令包括含有该误差检测/校正数据的命令分组。
26.根据权利要求23的系统,其中该信道包括从该存储器控制器向该存储器传递该命令的第一单向总线。
27.根据权利要求26的系统,其中该信道还包括响应于该命令从该存储器向该存储器控制器传递读数据的第二单向总线。
28.根据权利要求27的系统,其中所述第一和第二单向总线具有不同总线宽度。
29.根据权利要求23的系统,其中该信道包括在所述存储器控制器和存储器之间传递写数据和读数据的双向总线。
30.根据权利要求23的系统,其中该解码/运行块中的误差检测/校正操作的运行实现循环冗余校验法,并且该误差检测/校正数据包括循环冗余校验法数据。
31.根据权利要求23的系统,其中该命令/地址传送块生成的命令包括含有控制数据、误差检测/校正数据、和地址数据的命令分组,并且其中该接收机块包括分组接收机,用于接收该命令分组,并生成内部命令、内部误差检测/校正数据和内部地址。
32.根据权利要求31的系统,其中该存储器还包括:
误差检测器,用于接收所述内部误差检测/校正数据、内部命令、和内部地址,并生成与所述内部命令、内部地址、和内部误差检测/校正数据相关的误差信号;
命令解码器,用于接收该内部命令,并生成被施加到存储器内核的多个控制信号以运行该命令,其中所述多个控制信号包括写使能信号;和
写使能信号传输块,用于接收所述写使能信号和误差信号,并响应于该误差信号如该命令指示的那样生成最终写使能信号,用于启动存储单元阵列中的写操作。
33.根据权利要求32的系统,其中该信道包括从该存储器控制器向该存储器传递命令分组的第一单向总线。
34.根据权利要求33的系统,其中该信道还包括第二单向总线和第三单向总线中的至少一个,该第二单向总线从该存储器控制器向该存储器传递与该命令分组关联的写数据,而该第三单向总线从该存储器向该存储器控制器传递与该命令分组关联的读数据。
35.根据权利要求34的系统,其中所述第二和第三单向总线中的至少一个具有和第一单向总线不同的总线宽度。
36.根据权利要求23的系统,其中该命令/地址传送块生成的命令包括含有控制数据、地址数据、和与所述控制数据和地址数据中的至少一个关联的第一误差检测/校正数据的第一命令分组,并包括含有写数据和与所述写数据关联的第二误差检测/校正数据的第二命令分组,并且其中所述接收机块包括分组接收机,用于接收该第一命令分组,并生成内部命令、内部地址、第一内部误差检测/校正数据、和第一分组指示信号。
37.根据权利要求36的系统,其中该存储器还包括:
误差解码器,用于接收所述第一内部误差检测/校正数据、内部命令、内部地址、和第一分组指示信号,并生成与所述内部命令、内部地址、第一内部误差检测/校正数据、和第一分组指示信号相关的第一误差信号;
命令解码器,用于接收该内部命令,并生成被施加到存储器内核的多个控制信号以运行该命令,其中所述多个控制信号包括写使能信号;和
写使能信号传输块,用于接收所述写使能信号和第一误差信号,并响应于该第一误差信号如该命令指示的那样生成最终写使能信号,用于启动存储单元阵列中的写操作。
38.根据权利要求37的系统,其中该信道包括从该存储器控制器向该存储器传递第一和第二命令分组的第一单向总线。
39.根据权利要求38的系统,其中该信道还包括第二单向总线,用于从该存储器向该存储器控制器传递与该命令关联的读数据。
40.根据权利要求39的系统,其中所述第一和第二单向总线具有不同的总线宽度。
41.一种高速存储系统,包括:
存储器控制器,经由点到点互连的集合而连接到存储卡上排列的多个存储元件;
其中该存储器控制器包括命令/地址传送块,用于生成命令和与该命令关联的误差检测/校正数据,并经由至少一个互连将所述命令和误差检测/校正数据传送到与所述多个存储元件之一关联的至少一个存储器;和
其中该存储器包括:
接收机块,接收所述命令和误差检测/校正数据;和
解码/运行块,与运行和误差检测/校正数据相关的误差检测/校正操作并行地解码和运行该命令;
其中如果该命令不是写命令,则立即运行该命令所指示的操作,而不管是否完成了误差检测/校正操作,但是如果该命令是写命令,则延迟该操作,直到完成误差检测/校正操作为止。
42.根据权利要求41的系统,其中该命令/地址传送块生成的命令包括含有控制数据、误差检测/校正数据、和地址数据的命令分组,并且
其中该接收机块包括分组接收机,用于接收该命令分组,并生成内部命令、内部误差检测/校正数据、和内部地址。
43.根据权利要求42的系统,其中该存储器还包括:
误差解码器,用于接收所述内部误差检测/校正数据、内部命令、和内部地址,并生成与所述内部命令、内部地址、和内部误差检测/校正数据相关的误差信号;
命令解码器,用于接收该内部命令,并生成被施加到存储器内核的多个控制信号以运行该命令,其中所述多个控制信号包括写使能信号;和
写使能信号传输块,用于接收所述写使能信号和误差信号,并响应于该误差信号如该命令指示的那样生成最终写使能信号,用于启动存储单元阵列中的写操作。
44.根据权利要求41的系统,其中该命令/地址传送块生成的命令包括含有控制数据、地址数据、和与所述控制数据和地址数据中的至少一个关联的第一误差检测/校正数据的第一命令分组,并包括含有写数据和与所述写数据关联的第二误差检测/校正数据的第二命令分组,并且
其中所述接收机块包括分组接收机,用于接收该第一命令分组,并生成内部命令、内部地址、第一内部误差检测/校正数据、和第一分组指示信号。
45.根据权利要求41的系统,其中所述多个存储元件中的至少一个包括含有该存储器的垂直堆叠排列的存储器。
46.根据权利要求45的系统,其中所述垂直堆叠排列的存储器包括最底下的存储器,配置为将所述命令和误差检测/校正数据重新驱动到该堆叠排列中的另一存储器。
47.根据权利要求45的系统,其中该命令包括含有控制数据、地址数据和与所述控制数据和地址数据中的至少一个关联的误差检测/校正数据的命令分组;并且
其中该存储卡还包括响应于该误差检测/校正数据的至少一个误差检测/校正电路。
48.根据权利要求47的系统,其中该堆叠排列的存储器中的每一存储器包括:
分组接收机,用于接收该分组命令,并生成内部控制数据、内部地址数据、和内部误差检测/校正数据;和
误差解码器,用于接收所述内部误差检测/校正数据、内部命令、和内部地址,并生成误差信号;
命令解码器,用于接收该内部命令,并生成被施加到存储器内核的多个控制信号以运行该命令,其中所述多个控制信号包括写使能信号;和
写使能信号传输块,用于接收所述写使能信号和误差信号,并响应于该误差信号如该命令指示的那样生成最终写使能信号,用于启动存储单元阵列中的写操作。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070013179A KR101308047B1 (ko) | 2007-02-08 | 2007-02-08 | 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법 |
KR13179/07 | 2007-02-08 | ||
US11/779,345 | 2007-07-18 | ||
US11/779,345 US8020068B2 (en) | 2007-02-08 | 2007-07-18 | Memory system and command handling method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101241452A CN101241452A (zh) | 2008-08-13 |
CN101241452B true CN101241452B (zh) | 2012-08-29 |
Family
ID=39686912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101998528A Active CN101241452B (zh) | 2007-02-08 | 2007-12-14 | 存储系统和命令处理方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US8020068B2 (zh) |
JP (1) | JP5283393B2 (zh) |
KR (1) | KR101308047B1 (zh) |
CN (1) | CN101241452B (zh) |
TW (1) | TWI446159B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7562285B2 (en) | 2006-01-11 | 2009-07-14 | Rambus Inc. | Unidirectional error code transfer for a bidirectional data link |
US8352805B2 (en) | 2006-05-18 | 2013-01-08 | Rambus Inc. | Memory error detection |
US8132074B2 (en) * | 2007-11-19 | 2012-03-06 | Intel Corporation | Reliability, availability, and serviceability solutions for memory technology |
US8196009B2 (en) * | 2008-06-18 | 2012-06-05 | Intel Corporation | Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code |
CN102257573B (zh) * | 2008-12-18 | 2014-11-05 | 考文森智财管理公司 | 错误检测方法和包括一个或多个存储器设备的系统 |
US20100180183A1 (en) * | 2009-01-12 | 2010-07-15 | Macronix International Co., Ltd. | Circuit for reducing the read disturbance in memory |
US8862973B2 (en) * | 2009-12-09 | 2014-10-14 | Intel Corporation | Method and system for error management in a memory device |
US9158616B2 (en) | 2009-12-09 | 2015-10-13 | Intel Corporation | Method and system for error management in a memory device |
KR101132797B1 (ko) * | 2010-03-30 | 2012-04-02 | 주식회사 하이닉스반도체 | 모듈제어회로를 포함하는 반도체모듈 및 반도체모듈의 제어방법 |
US8533538B2 (en) * | 2010-06-28 | 2013-09-10 | Intel Corporation | Method and apparatus for training a memory signal via an error signal of a memory |
KR101178562B1 (ko) | 2010-11-02 | 2012-09-03 | 에스케이하이닉스 주식회사 | 커맨드 제어회로 및 이를 포함하는 반도체 메모리 장치 및 커맨드 제어방법 |
US10452084B2 (en) * | 2012-03-14 | 2019-10-22 | Ademco Inc. | Operation of building control via remote device |
US9881656B2 (en) | 2014-01-09 | 2018-01-30 | Qualcomm Incorporated | Dynamic random access memory (DRAM) backchannel communication systems and methods |
KR20150142850A (ko) * | 2014-06-12 | 2015-12-23 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 이용한 트레이닝 방법 |
JP2016110516A (ja) * | 2014-12-09 | 2016-06-20 | キヤノン株式会社 | メモリコントローラとその制御方法 |
CN104636674B (zh) * | 2015-03-17 | 2017-06-09 | 浪潮集团有限公司 | 一种用于受损数据恢复的线性估计方法 |
DE102015205670A1 (de) | 2015-03-30 | 2016-06-09 | Volkswagen Aktiengesellschaft | Angriffserkennungsverfahren, Angriffserkennungsvorrichtung und Bussystem für ein Kraftfahrzeug |
US10316403B2 (en) * | 2016-02-17 | 2019-06-11 | Dillard University | Method for open-air pulsed laser deposition |
US10705912B2 (en) | 2017-06-07 | 2020-07-07 | Rambus Inc. | Energy efficient storage of error-correction-detection information |
WO2019190866A1 (en) | 2018-03-26 | 2019-10-03 | Rambus Inc. | Command/address channel error detection |
US10388362B1 (en) * | 2018-05-08 | 2019-08-20 | Micron Technology, Inc. | Half-width, double pumped data path |
DE102018007141B4 (de) * | 2018-09-10 | 2019-10-10 | Inova Semiconductors Gmbh | Segmentierte Steuerungsanordnung |
JP7161583B1 (ja) | 2021-06-29 | 2022-10-26 | ウィンボンド エレクトロニクス コーポレーション | 半導体装置 |
CN114880164B (zh) * | 2022-07-12 | 2022-09-20 | 合肥康芯威存储技术有限公司 | 一种管理存储页的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357529A (en) * | 1992-04-24 | 1994-10-18 | Digital Equipment Corporation | Error detecting and correcting apparatus and method with transparent test mode |
CN1529948A (zh) * | 2001-06-11 | 2004-09-15 | �����ɷ� | 用于检测并补偿无线电信号到达时间误差的系统和方法 |
CN1700353A (zh) * | 2004-05-17 | 2005-11-23 | 海力士半导体有限公司 | 具有延迟锁定回路的存储设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4335715A (en) * | 1980-06-20 | 1982-06-22 | Kirkley William H | Osteotomy guide |
IT1202527B (it) * | 1987-02-12 | 1989-02-09 | Honeywell Inf Systems | Sistema di memoria e relativo apparato di rivelazione-correzione di errore |
US5163940A (en) * | 1991-03-04 | 1992-11-17 | American Cyanamid Company | Surgical drill guide for tibia |
JPH0523395A (ja) | 1991-07-24 | 1993-02-02 | Toyobo Co Ltd | 血液浄化吸着材 |
JP2965776B2 (ja) | 1992-02-17 | 1999-10-18 | 功二 橋本 | 高耐食アモルファスアルミニウム合金 |
US5216672A (en) | 1992-04-24 | 1993-06-01 | Digital Equipment Corporation | Parallel diagnostic mode for testing computer memory |
US6035369A (en) * | 1995-10-19 | 2000-03-07 | Rambus Inc. | Method and apparatus for providing a memory with write enable information |
EP0837392A1 (en) | 1996-10-21 | 1998-04-22 | Texas Instruments Incorporated | A memory device with an error correction function |
GB2361848A (en) | 2000-04-25 | 2001-10-31 | Ibm | Error correction for system interconnects |
JP2001312428A (ja) * | 2000-05-02 | 2001-11-09 | Nec Eng Ltd | データバッファ監視回路 |
US20040064660A1 (en) * | 2002-09-27 | 2004-04-01 | Lyons Michael Stewart | Multiplexed bus with multiple timing signals |
US7877647B2 (en) | 2003-05-23 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Correcting a target address in parallel with determining whether the target address was received in error |
-
2007
- 2007-02-08 KR KR1020070013179A patent/KR101308047B1/ko active IP Right Grant
- 2007-07-18 US US11/779,345 patent/US8020068B2/en active Active
- 2007-09-27 US US11/862,409 patent/US8037390B2/en active Active
- 2007-11-01 TW TW096141239A patent/TWI446159B/zh active
- 2007-12-14 CN CN2007101998528A patent/CN101241452B/zh active Active
-
2008
- 2008-02-06 JP JP2008026582A patent/JP5283393B2/ja active Active
-
2011
- 2011-09-09 US US13/228,763 patent/US8205135B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357529A (en) * | 1992-04-24 | 1994-10-18 | Digital Equipment Corporation | Error detecting and correcting apparatus and method with transparent test mode |
CN1529948A (zh) * | 2001-06-11 | 2004-09-15 | �����ɷ� | 用于检测并补偿无线电信号到达时间误差的系统和方法 |
CN1700353A (zh) * | 2004-05-17 | 2005-11-23 | 海力士半导体有限公司 | 具有延迟锁定回路的存储设备 |
Also Published As
Publication number | Publication date |
---|---|
US8037390B2 (en) | 2011-10-11 |
US20080195922A1 (en) | 2008-08-14 |
CN101241452A (zh) | 2008-08-13 |
US20120005555A1 (en) | 2012-01-05 |
TW200836057A (en) | 2008-09-01 |
US20080195914A1 (en) | 2008-08-14 |
JP5283393B2 (ja) | 2013-09-04 |
TWI446159B (zh) | 2014-07-21 |
US8205135B2 (en) | 2012-06-19 |
KR20080074316A (ko) | 2008-08-13 |
JP2008198202A (ja) | 2008-08-28 |
US8020068B2 (en) | 2011-09-13 |
KR101308047B1 (ko) | 2013-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101241452B (zh) | 存储系统和命令处理方法 | |
US7475174B2 (en) | Flash / phase-change memory in multi-ring topology using serial-link packet interface | |
CN101217060B (zh) | 用于识别故障存储器元件的系统和方法 | |
TWI514139B (zh) | 實體頁、邏輯頁及碼字對應 | |
TWI430085B (zh) | 具有分離循環冗餘碼訊框之有效率帶內可靠性技術的方法、積體電路與系統以及動態隨機存取記憶體裝置 | |
CN102568603A (zh) | 数据传输装置、存储器控制装置和存储器系统 | |
CN104541249A (zh) | 用于非易失性存储器的耐久性感知纠错码(ecc)保护 | |
CN102084341A (zh) | 用于在高速串行链路中使用的循环冗余码 | |
CN101576853A (zh) | 数据存取方法、使用此方法的控制器与存储系统 | |
CN101573694A (zh) | 用于小数据结构的ecc保护的方法、系统和装置 | |
CN104205235A (zh) | 用于处理从非易失性存储器阵列检索的状态置信度数据的方法和设备 | |
US10866746B2 (en) | Memory addressing methods and associated controller, memory device and host | |
CN102257573A (zh) | 错误检测方法和包括一个或多个存储器设备的系统 | |
CN101325090A (zh) | 通过使循环冗余码线路相对于数据线路偏移改善等待时间 | |
KR102410022B1 (ko) | 에러스크럽방법 및 이를 이용한 반도체모듈 | |
US8045405B2 (en) | Memory system, memory device and command protocol | |
US20170249276A1 (en) | Integrated circuit system | |
KR20200052842A (ko) | 메모리 시스템, 메모리 모듈 및 메모리 시스템의 동작 방법 | |
CN110720126B (zh) | 传输数据掩码的方法、内存控制器、内存芯片和计算机系统 | |
CN104298572A (zh) | 一种纠错方法、装置和系统 | |
CN103809918A (zh) | 储存媒体、存取系统及方法 | |
CN100490002C (zh) | 串行传输接口的存储器装置以及错误更正方法 | |
US20190109603A1 (en) | Accelerated Processing for Maximum Distance Separable Codes Using Composite Field Extensions | |
CN1149517C (zh) | 异步智能卡 | |
CN112017725B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |