CN114840455A - 存储器接口上的数据加扰技术 - Google Patents
存储器接口上的数据加扰技术 Download PDFInfo
- Publication number
- CN114840455A CN114840455A CN202210099302.3A CN202210099302A CN114840455A CN 114840455 A CN114840455 A CN 114840455A CN 202210099302 A CN202210099302 A CN 202210099302A CN 114840455 A CN114840455 A CN 114840455A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory controller
- read
- memory device
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 320
- 238000000034 method Methods 0.000 title claims description 49
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 51
- 230000007704 transition Effects 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 22
- 238000012546 transfer Methods 0.000 description 17
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000001514 detection method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000000630 rising effect Effects 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000036961 partial effect Effects 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008054 signal transmission Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 102100035964 Gastrokine-2 Human genes 0.000 description 4
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- G06F11/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
各种实施例包括相对于现有存储器设备更快速地从写入错误和读取错误中恢复的存储器设备。某些模式的写入数据和读取数据可能会导致存储器控制器和存储器设备之间的存储器接口上的信号质量不佳。所公开的存储器设备与存储器控制器同步,在将数据传输到存储器控制器之前对读取数据进行加扰,并对从存储器控制器接收的数据进行解扰。即使对于相同的读取数据或写入数据,加扰和解扰也会导致存储器接口上的不同模式。因此,当写入操作或读取操作失败,并且重放操作时,重放操作时在存储器接口上传输的模式是不同的。结果,存储器设备更容易从导致存储器接口上信号质量差的数据模式中恢复。
Description
相关申请的交叉引用
本申请要求于2021年2月2日提交且序列号为63/144,971的题为“将命令传输到DRAM的技术(TECHNIQUES FOR TRANSFERRING COMMANDS TO A DRAM)”的美国临时专利申请的优先权。本申请进一步要求于2021年2月23日提交且序列号为63/152,814的题为“存储器接口上的数据加扰(DATA SCRAMBLING ON A MEMORY INTERFACE)”的美国临时专利申请的优先权。本申请进一步要求于2021年2月23日提交且序列号为63/152,817的题为“DRAM命令接口训练(DRAM COMMAND INTERFACE TRAINING)”的美国临时专利申请的优先权。本申请进一步要求于2021年4月26日提交且序列号为63/179,954的题为“DRAM写入训练(DRAM WRITETRAINING)”的美国临时专利申请的优先权。这些相关申请的主题在此通过引用并入本文。
技术领域
各种实施例通常涉及计算机存储器设备,并且更具体地涉及用于在存储器接口上进行数据加扰的技术。
背景技术
除其他事项之外,计算机系统通常包括一个或更多个处理单元,例如中央处理单元(CPU)和/或图形处理单元(GPU),以及一个或更多个存储器系统。一种类型的存储系统称为系统存储器,它可供一个或更多个CPU和一个或更多个GPU访问。另一种类型的存储器系统是图形存储器,通常只能由一个或更多个GPU访问。这些存储器系统包括多个存储器设备。在系统存储器和/或图形存储器中采用的一种示例存储器设备是同步动态随机存取存储器(SDRAM,或者更简洁地,DRAM)。
传统上,高速DRAM存储器设备采用多个接口。接口包括用于将命令和/或存储器地址传送到DRAM的命令地址接口。这样的命令包括发起写入操作的命令、发起读取操作的命令等。接口还包括用于向和从DRAM传输数据的数据接口,例如在写入操作和读取操作期间。一个或更多个存储器控制器提供接口来代表在CPU和/或GPU上执行的存储器客户端执行写入操作、读取操作和其他DRAM命令。
随着DRAM存储器设备速度的提高,写入操作和读取操作对可能影响传输到DRAM和从DRAM接收的信号质量的现象变得越来越敏感。例如,较差的信号质量增加了写入到DRAM和/或从DRAM读取的数据具有一个或更多个位错误的可能性。用于检测和/或纠正此类错误的一种技术是基于信号源处的数据生成单独的循环冗余校验(CRC)码,并对照信号目的地处的数据来校验CRC码。在检测到CRC错误时,存储器控制器启动重放操作,其中错误数据再次写入存储器或从存储器读取。因为信号质量通常随时间变化,所以即使原始操作导致错误,重放操作也可能成功。
这种在DRAM写入操作和读取操作期间解决位错误的技术的一个缺点是某些错误不容易通过重放操作解决。高速DRAM接口上的一种特殊错误来源是数据相关抖动。数据相关抖动可能由符号间干扰引起,其中在接口上传输的一个符号或一组数据会干扰在同一接口上传输的后续符号。数据相关抖动还可由串扰引起,其中在接口的一个信号路径上传输的数据干扰在接口的其他附近信号路径上传输的数据。由于这些类型的干扰是数据相关的,因此在后续的重放操作中,由数据相关的抖动引起的错误可能会再次出现。对于一些病态数据模式,由于与数据模式相关联的重复错误,存储器控制器可能启动一系列不成功的重放操作。此类重复错误可能会导致DRAM性能降低、写入操作和/或读取操作的延迟增加,或者在极端情况下会导致系统故障。
如上所述,本领域需要更有效的技术来从与存储器设备相关联的错误中恢复。
发明内容
本公开的各种实施例阐述了一种用于处理存储器设备中的加扰数据的计算机实现的方法。该方法包括将与存储器设备相关联的第一组数据加扰操作与与存储器控制器相关联的第二组数据加扰操作同步。该方法还包括基于由第二组数据加扰操作生成的第一值接收第一加扰数据。该方法还包括基于由第一组数据加扰操作生成的第二值解扰第一加扰数据以生成未加扰(unscrambled)数据。该方法还包括将未加扰数据存储在存储器设备的存储器核心中。
其他实施例包括但不限于实现所公开技术的一个或更多个方面的系统,以及包括用于执行所公开技术的一个或更多个方面的指令的一个或更多个计算机可读介质,以及用于执行所公开的技术的一个或更多个方面的方法。
所公开的技术相对于现有技术的至少一个技术优势在于,通过所公开的技术,DRAM存储器设备与存储器控制器协同,在重放操作期间改变写入数据或读取数据的加扰模式。结果,通过存储器接口传输的加扰数据在原始操作和相关联的重放操作之间改变。类似地,通过存储器接口传输的加扰数据在相同的原始操作的第一重放操作和随后的第二重放操作之间改变。因此,相对于现有技术,降低了在随后的重放操作期间由一个操作的数据相关抖动导致的错误将重复的可能性。这些优点代表了相对于现有技术方法的一种或更多种技术改进。
附图说明
为了能够详细理解上述各种实施例的特征的方式,可以通过参考各种实施例对以上简要概括的本发明构思进行更具体的描述,其中一些实施例被示出在附图中。然而,应当注意,附图仅图示了本发明构思的典型实施例并且因此不应被视为以任何方式限制范围,并且存在其他同样有效的实施例。
图1是被配置为实现各种实施例的一个或更多个方面的计算机系统的框图;
图2是根据各种实施例的用于包括在图1的计算机系统的系统存储器和/或并行处理存储器中的存储器设备的数据加扰架构的框图;
图3是根据各种实施例的用于存储器控制器(诸如图1的计算机系统的系统存储器控制器或PPS存储器控制器)的数据加扰架构的框图;
图4示出根据各种实施例的将连续命令传送到包括在图1的计算机系统的系统存储器和/或并行处理存储器中的存储器设备的时序图;
图5是根据各种实施例的用于经由图2的数据加扰架构执行写入操作的方法步骤的流程图;以及
图6是根据各种实施例的用于经由图2的数据加扰架构执行读取操作的方法步骤的流程图。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对各种实施例的更透彻的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些特定细节中的一个或更多个的情况下实践本发明构思。
系统概述
图1是被配置为实现各种实施例的一个或更多个方面的计算机系统100的框图。如图所示,计算机系统100包括但不限于通过存储器桥105和通信路径113耦合到并行处理子系统112的中央处理单元(CPU)102和系统存储器104。存储器桥105经由系统存储器控制器130耦合到系统存储器104。存储器桥105进一步经由通信路径106耦合到I/O(输入/输出)桥107,并且I/O桥107进而耦合到交换机116。并行处理子系统112经由并行处理子系统(PPS)存储器控制器132耦合到并行处理存储器134。
在操作中,I/O桥107被配置为从输入设备108(例如键盘或鼠标)接收用户输入信息,并将输入信息转发到CPU 102以通过通信路径106和存储器桥105进行处理。交换机116被配置为在I/O桥107和计算机系统100的其他组件之间提供连接,例如网络适配器118和各种附加卡120和121。
还如图所示,I/O桥107耦合到系统盘114,系统盘114可以被配置为存储内容和应用程序以及供CPU 102和并行处理子系统112使用的数据。一般而言,系统盘114提供用于应用程序和数据的非易失性存储,可能包括固定或可移除硬盘驱动器、闪存设备和CD-ROM(光盘只读存储器)、DVD-ROM(数字通用光盘-ROM)、蓝光、HD-DVD(高清DVD)或其他磁性、光学或固态存储设备。最后,虽然没有明确示出,但其他组件,例如通用串行总线或其他端口连接、光盘驱动器、数字多功能磁盘驱动器、胶片记录设备等,也可以连接到I/O桥107。
在各种实施例中,存储器桥105可以是北桥芯片,并且I/O桥107可以是南桥芯片。此外,可以使用任何技术上合适的协议来实现通信路径106和113以及计算机系统100内的其他通信路径,包括但不限于AGP(加速图形端口)、超传输(Hyper Transport)或本领域已知的任何其他总线或点对点通信协议。
在一些实施例中,并行处理子系统112包括将像素传送到显示设备110的图形子系统,该显示设备110可以是任何传统的阴极射线管、液晶显示器、发光二极管显示器等。在这样的实施例中,并行处理子系统112结合了针对图形和视频处理优化的电路,包括例如视频输出电路。此类电路可以跨并行处理子系统112内包括的一个或更多个并行处理单元(PPU)并入。在一些实施例中,每个PUPS包括图形处理单元(GPU),所述图形处理单元(GPU)可以被配置为实现图形渲染管线以执行与基于由CPU 102和/或系统存储器104提供的图形数据生成像素数据有关的各种操作。每个PPU可以使用一个或更多个集成电路设备,例如可编程处理器、专用集成电路(ASIC)或存储器设备,或以任何其他技术上可行的方式来实现。
在一些实施例中,并行处理子系统112结合了针对通用目的和/或计算处理而优化的电路。再次,此类电路可跨包括在并行处理子系统112内的一个或更多个PPU并入,其被配置为执行此类通用和/或计算操作。在又一个实施例中,并行处理子系统112内包括的一个或更多个PPU可以被配置为执行图形处理、通用处理和计算处理操作。系统存储器104包括至少一个设备驱动器103,其被配置为管理并行处理子系统112内的一个或更多个PPU的处理操作。
在各种实施例中,并行处理子系统112可以与图1的一个或更多个其他元件集成以形成单个系统。例如,并行处理子系统112可以与CPU 102和其他连接电路集成在单个芯片上以形成片上系统(SoC)。
在操作中,CPU 102是计算机系统100的主处理器,控制和协调其他系统组件的操作。特别地,CPU 102发出控制并行处理子系统112内PPU操作的命令。在一些实施例中,CPU102将并行处理子系统112内PPU的命令流写入数据结构(图1中未明确示出),其可以位于系统存储器104、PP存储器134或CPU 102和PPU均可访问的另一存储位置中。指向数据结构的指针被写入推送缓冲区以启动对数据结构中的命令流的处理。PPU从推送缓冲区读取命令流,然后相对于CPU 102的操作异步执行命令。在生成多个推送缓冲区的实施例中,应用程序可以通过设备驱动程序103为每个推送缓冲区指定执行优先级,以控制对不同推送缓冲区的调度。
每个PPU包括I/O(输入/输出)单元,其通过通信路径113和存储桥105与计算机系统100的其余部分进行通信。该I/O单元生成用于在通信路径113传输的分组(或其他信号),并且还接收来自通信路径113的所有传入分组(或其他信号),将传入分组引导至PPU的适当组件。可以改变PPU与计算机系统100的其余部分的连接。在一些实施例中,包括至少一个PPU的并行处理子系统112被实现为可以插入计算机系统100的扩展槽中的附加卡。在其他实施例中,PPU可以与总线桥,例如存储器桥105或I/O桥107,集成在单个芯片上。再次,在其他实施例中,PPU的一些或所有元件可以与CPU 102一起被包括在单个集成电路或芯片系统(SoC)中。
并行处理子系统112内的CPU 102和PPU经由系统存储器控制器130访问系统存储器。系统存储器控制器130向包括在系统存储器104中的存储器设备发送信号以启动存储器设备、向存储器设备传输命令、将数据写入存储器设备、从存储器设备读取数据等。系统存储器104中采用的一种示例存储器设备是双倍数据速率SDRAM(DDR SDRAM或更简洁地DDR)。DDR存储器设备以两倍于上一代单数据速率(SDR)存储器设备的数据速率执行存储器写入和读取操作。
此外,并行处理子系统112内的PPU和/或其他组件经由并行处理系统(PPS)存储器控制器132访问PP存储器134。PPS存储器控制器132向包括在PP存储器134中的存储器设备发送信号以启动存储器设备、向存储器设备发送命令、向存储器设备写入数据、从存储器设备读取数据等。PP存储器134中采用的一个示例存储器设备是同步图形随机存取存储器(SGRAM),它是一种用于计算机图形应用的SDRAM的特殊形式。一种特殊类型的SGRAM是图形双倍数据速率SGRAM(GDDR SDRAM或更简洁的GDDR)。与DDR存储器设备相比,GDDR存储器设备配置了更宽的数据总线,以便在每次存储器写入和读取操作时传输更多的数据位。通过采用双倍数据速率技术和更宽的数据总线,GDDR存储器设备能够实现PPU通常所需的高数据传输速率。
应当理解,本文所示的系统是说明性的并且变化和修改是可能的。可以根据需要修改连接拓扑,包括桥的数量和布置、CPU 102的数量以及并行处理子系统112的数量。例如,在一些实施例中,系统存储器104可以直接连接到CPU 102而不是通过存储器桥105,并且其他设备将经由存储器桥105和CPU 102与系统存储器104通信。在其他替代拓扑中,并行处理子系统112可以连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。在其他实施例中,I/O桥107和存储器桥105可以集成到单个芯片中而不是作为一个或更多个分立设备存在。最后,在某些实施例中,可能不存在图1中所示的一个或更多个组件。例如,可以取消交换机116,并且网络适配器118和附加卡120、121将直接连接到I/O桥107。
应当理解,本文描述的核心架构是说明性的,并且变化和修改是可能的。除其他事项之外,图1的计算机系统100在所公开的实施例的范围内可以包括任意数量的CPU 102、并行处理子系统112或存储器系统(诸如系统存储器104和并行处理存储器134)。此外,如本文所用,对共享存储器的引用可包括任何一个或更多个技术上可行的存储器,包括但不限于由并行处理子系统112内的一个或更多个PPU共享的本地存储器、在多个并行处理子系统112之间共享的存储器、高速缓存存储器、并行处理存储器134和/或系统存储器104。还请注意,如本文所用,对高速缓存存储器的引用可包括任何一个或更多个技术上可行的存储器,包括但不限于L1高速缓存、L1.5高速缓存和L2高速缓存。综上所述,本领域普通技术人员将理解,图1中描述的架构决不限制本公开的各种实施例的范围。
在DRAM接口上执行数据加扰
各种实施例涉及用于在DRAM存储器设备的接口上进行数据加扰的技术。所公开的技术在存储器接口上提供数据的同步加扰和解扰以确保病态数据模式不在接口上重复。所公开的存储器设备生成可预测的序列值系列。与存储器设备耦合的存储器控制器生成相同的可预测序列值系列。
在写入操作期间,存储器控制器根据第一序列值对写入数据进行加扰。当存储器设备接收到加扰的写入数据时,存储器设备根据相同的第一序列值对写入数据进行解扰。如果写入操作失败,则存储器控制器用相同的写入数据重复写入操作。存储器控制器根据第二序列值对写入数据进行加扰,从而导致存储器接口上的不同模式。当存储器设备接收到加扰的写入数据时,存储器设备根据相同的第二序列值对写入数据进行解扰。
在读取操作期间,存储器设备根据第三序列值对读取数据进行加扰。当存储器控制器接收到加扰的读取数据时,存储器控制器根据相同的第三序列值对读取数据进行解扰。如果读取操作失败,则存储器控制器重复读取操作,并且存储器设备检索相同的写入数据。存储器设备根据第四序列值对读取数据进行加扰,从而导致存储器接口上的不同模式。当存储器控制器接收到加扰的读取数据时,存储器控制器根据相同的第四序列值对读取数据进行解扰。
图2是根据各种实施例的用于包括在图1的计算机系统的系统存储器104和/或并行处理存储器134中的存储器设备的数据加扰架构200的框图。如进一步描述的,数据加扰架构200包括支持写入操作期间的数据解扰和读取操作期间的数据加扰的组件。
在一些示例中,包括在存储器设备中的命令解串器272经由命令(CMD)引脚270接收串行化命令。串行化命令可以包括任意数量的部分命令字,其中每个部分命令字包括整个命令的一部分。每个部分命令可以包括任意数量的位。例如,每个命令可以包括20个位,命令解串器272接收作为每个5位的四个部分命令字。命令解串器272解串四个部分命令字以重构二十位命令。命令解串器272将解串的命令传送到命令解码器274。
命令解码器274解码从命令解串器272接收的命令。一些命令将值存储到配置寄存器276和/或从配置寄存器276加载值。例如,命令解码器274可以接收将值存储在配置寄存器276中的命令以启用数据加扰或禁用数据加扰。命令解码器274可以接收命令以将值存储在配置寄存器276中以启用或禁用数据加扰的各种组件,例如线性反馈移位寄存器、伪随机数生成器、反转逻辑、交换逻辑、移位逻辑等等。命令解码器274可以接收存储伪随机位序列(PRBS)种子值278的命令,每次序列生成器214被初始化时,该命令被加载到序列生成器214中。
一些命令在存储器设备中执行各种操作。例如,命令解码器274可以接收读取命令,并且作为响应,存储器设备执行读取操作以从存储器核心216加载数据并将数据传输到存储器控制器。类似地,命令解码器274可以接收写入命令,并且作为响应,存储器设备执行写入操作以将从存储器控制器接收的数据存储在存储器核心216中。此外,如果命令解码器274在数据加扰被启用时接收到读取命令或写入命令,然后命令解码器274向序列生成器214发送触发事件212。触发事件212初始化序列生成器214以生成第一序列值和/或将序列生成器214从当前序列值推进到下一个序列值.
在写入操作期间,存储器控制器(诸如系统存储器控制器130和/或PPS存储器控制器132)对写入数据进行加扰,可选地对写入数据进行编码,将写入数据串行化,并将写入数据传输到存储器设备。存储器设备的数据加扰架构200经由一个或更多个数据(DQ)和/或扩展数据(DQX)I/O引脚202接收写入数据。接收器204从DQ、DQX I/O引脚202接收写入数据,反序列化写入数据,并将写入数据传输到数据解码器208。
数据解码器208对写入数据执行解码操作。由存储器控制器传输到DQ、DQX I/O引脚202的写入数据通常被编码以优化通过存储器接口的信号传输。通过存储器控制器和DRAM之间的物理I/O层传输编码数据的目标是优化信号传输的数据。编码优化数据以最小化接口上的转变、最小化串扰、减少接口上的终端电路消耗的直流(DC)功率的量等。数据可以通过最大转换避免(MTA)操作进行编码,该操作减少低到高和/或高到低信号转换的数量,以提高存储器接口上的信噪比(SNR)。附加地或替代地,可以经由数据总线倒置(DBI)操作对数据进行编码,以减少存储器接口上的高信号值的数量,从而减少存储器接口上消耗的功率。附加地或替代地,可以通过任何技术上可行的操作对数据进行编码。
尽管对写入数据进行编码会改变数据以优化写入数据以实现最佳信号传输,编码操作为一组输入数据生成相同的输出数据。因此,如果给定写入数据集的编码数据在存储器接口上呈现病态数据模式,则相同编码数据的重放操作在存储器接口上呈现相同病态数据模式。因此,存储器控制器在编码用于传输的写入数据之前,对写入数据进行加扰。数据加扰架构200通过数据解码器208对写入数据进行解码,然后通过解扰器210对解码数据进行解扰来反向执行这些步骤。解扰器210从数据解码器208接收解码的写入数据。解扰器210基于从序列生成器214接收的序列值对解码数据进行解扰以生成由存储器客户端生成的原始数据。解扰器210将原始数据传送到存储器核心216进行存储。
并行地,在写入操作期间,存储器控制器执行CRC操作。更具体地,存储器控制器生成错误检测和纠正(EDC)码,例如循环冗余校验(CRC)码。存储器控制器从通过存储器接口传输的编码写入数据生成EDC码,例如CRC值。存储器控制器可选地对EDC码进行编码、对EDC码进行序列化,并将EDC码传输到存储器设备。存储器设备的数据加扰架构200经由一个或更多个EDC I/O引脚226接收EDC码。接收器228从EDC I/O引脚226接收EDC码,将EDC码反序列化,并将EDC码传送到EDC解码器232。EDC解码器232以结合数据解码器208描述的方式对EDC码执行解码操作。EDC解码器232将解码的EDC码传送到CRC测试器234。CRC测试器234执行CRC操作。更具体地,CRC测试器234基于来自接收器204的编码写入数据生成第二EDC码。CRC测试器234将第二EDC码与从EDC解码器232接收的EDC码进行比较并且生成状态输出260。如果第二EDC码匹配从EDC解码器232接收的EDC码,则CRC测试器234发送通过状态输出260。如果第二EDC码与从EDC解码器232接收的EDC码不匹配,则CRC测试器234发送失败状态输出260。
附加地或替代地,存储器设备将用于写入数据块的EDC码发送回存储器控制器。存储器控制器基于存储器控制器传送至存储器设备的写入数据及从存储器存接收到的EDC码,执行CRC测试。通过这种方法,EDC是单向的,从存储器控制器流向存储器设备,但不是从存储器设备流向存储器控制器。
在写入操作期间,多路复用器236选择状态输出260并将状态输出260发送到发送器240。发送器240通过读取时钟(RCK)输出引脚242将状态输出260发送到存储器控制器,否则假定RCK输出引脚242在写入操作期间未使用。附加地或替代地,存储器设备经由单独的错误状态引脚将状态输出260传输到存储器控制器。附加地或替代地,存储器控制器通过任何技术上可行的技术确定写入操作是否导致错误。
在读取操作期间,存储器核心216检索所请求的读取数据并将读取数据传送到加扰器218。加扰器218从存储器核心216接收读取数据。加扰器218基于从序列生成器214接收的序列值对读取数据进行加扰以生成加扰读取数据。加扰器218将加扰的数据传输到数据编码器220。
数据编码器220对读取的数据执行编码操作。由DRAM经由DQ、DQX I/O引脚202传输到存储器控制器的读取数据通常被编码以优化存储器接口上的信号传输,如本文所述。数据编码器220将编码数据发送到发送器224。发送器224将编码的读取数据串行化并通过DQ、DQX I/O引脚202将编码的读取数据发送到存储器控制器。存储器控制器对读取的数据进行反序列化,可选地解码读取数据,对读取数据进行解扰以生成原始读取数据,并将原始读取数据传输给请求数据的存储器客户端。
虽然对读取数据进行编码会改变数据以优化读取数据以实现最佳信号传输,但是编码操作为一组输入数据生成相同的输出数据。因此,如果给定读取数据集的编码数据在存储器接口上呈现病态数据模式,则相同编码数据的重放操作在存储器接口上呈现相同病态数据模式。因此,数据加扰架构200在对读取数据进行编码以供传输之前对读取数据进行加扰。
并行地,在读取操作期间,CRC生成器246从数据编码器220接收编码的读取数据。CRC生成器246执行CRC操作。更具体地,CRC生成器246生成EDC码(诸如CRC值),并将该EDC码发送到EDC编码器248。EDC编码器248将编码数据发送到发送器252。发送器252将EDC码串行化并经由EDC I/O引脚226将该EDC码发送到存储器控制器。存储器控制器对经由EDC I/O引脚226接收的EDC码进行反序列化。存储器控制器基于经由DQ、DQX I/O引脚202接收的编码读取数据生成第二EDC码。存储器控制器将第二EDC码与从EDC编码器248接收的EDC码进行比较并生成状态输出。如果第二EDC码与从EDC编码器248接收的EDC码匹配,则存储器控制器生成通过状态输出。如果第二EDC码与从EDC编码器248接收的EDC码不匹配,则存储器控制器生成故障状态输出。
在读取操作期间,多路复用器236选择读取时钟(RCK)生成器238的输出并将RCK生成器238的输出发送到发送器240。发送器240通过RCK输出引脚242将RCK生成器238的输出发送到存储器控制器,从而提供读取时钟信号,存储器控制器通过该信号对通过DQ、DQX I/O引脚202接收的读取数据和通过EDC I/O引脚226接收的EDC码进行采样。
当存储器控制器在写入操作或读取操作上检测到EDC错误时,存储器控制器执行重放操作以重复写入操作或读取操作。在写入操作期间,当存储器控制器通过RCK输出引脚242从CRC测试器234接收失败状态输出260时,存储器控制器检测到EDC错误。在读取操作期间,存储器控制器基于通过DQ、DQX I/O引脚202接收的数据生成EDC码,例如CRC值。当通过EDC I/O引脚226从CRC生成器246接收的EDC码与存储器控制器生成的EDC码不匹配时,存储器控制器检测到EDC错误。
如本文所述,重放操作写入或读取与原始写入操作或读取操作相同的数据。然而,用于重放操作的数据被加扰,使得在重放操作期间通过存储器接口传输的数据与原始写入操作或读取操作期间不同。结果,在原始写入操作或读取操作期间导致EDC错误的病态数据模式在重放操作期间不太可能重复。
序列生成器214生成一系列序列值,用于在写入操作期间解扰数据和在读取操作期间加扰数据。在一些示例中,序列生成器214包括用于为所有DQ、DQX I/O引脚202生成序列值的单个生成器。在一些示例中,序列生成器214包括用于DQ、DQX I/O引脚中的每一个的单独生成器202。在后面这些示例中,序列生成器214可以为DQ、DQX I/O引脚202中的每一个生成单独的和唯一的序列值。
在一些示例中,序列生成器214包括在写入操作期间为解扰器210生成序列值的第一生成器和在读取操作期间为加扰器218生成序列值的第二生成器。对于能够执行并发的写入操作和读取操作的存储器设备,可以采用用于写入操作和读取操作的单独生成器。在一些示例中,序列生成器214包括单个生成器以在写入操作期间为解扰器210生成序列值并在读取操作期间为加扰器218生成序列值。对于不能执行并发写入操作和读取操作的存储器设备,可以采用用于写入操作和读取操作的单个公共生成器。解扰器210和加扰器218中的每一个对从序列生成器214接收的序列值和从数据解码器208(用于写入操作)或存储器核心216(用于读取操作)接收的输入数据执行预定操作。预定操作可以包括逻辑运算、算术运算等。逻辑运算可包括按位异或(XOR)运算、异或(XNOR)运算、与/与非(AND/NAND)运算、或/或非(OR/NOR)运算等。算术运算可以包括加法运算、减法运算、乘法运算等。
存储器控制器发送触发事件212以将序列生成器214与包括在存储器控制器中的类似序列生成器同步。触发事件212使序列生成器214启动到已知状态。在启动到已知状态时,序列生成器214生成第一序列值。此后,每次存储器控制器发送后续触发事件212时,序列生成器214从当前序列值前进到下一个序列值。类似地,在启动到已知状态时,包括在存储器控制器中的序列生成器生成相同的第一序列值。此后,每次存储器控制器向存储器设备发送后续触发事件212时,包括在存储器控制器中的序列生成器从当前序列值前进到下一个序列值。以此方式,包括在存储器控制器中的序列生成器和序列生成器214保持彼此同步。
在一些示例中,存储器控制器向存储器设备发送触发事件212以推进序列生成器214并且在每次写入操作和每次读取操作期间执行加扰和/或解扰。在这样的示例中,解扰器210可以在每个原始写入操作和每个重放写入操作期间解扰数据。类似地,加扰器218可以在每个原始读取操作和每个重放读取操作期间对数据进行加扰。由于在操作期间加扰数据通过存储器接口传输,因此加扰可以将对于存储器接口良性的原始数据转换成病态数据模式。但是,在重放操作期间,数据将使用不同的序列值进行加扰。因此,即使连续多次操作的原始数据相同,通过接口传输的加扰数据也会随着每个后续操作而不同。
在一些示例中,存储器控制器将触发事件212发送到存储器设备以推进序列生成器214并且仅在重放操作期间执行加扰和/或解扰。在这样的示例中,解扰器210可以仅在重放写入操作期间对数据进行解扰。类似地,加扰器218可以仅在重放读取操作期间加扰数据。
序列生成器214与解扰器210和加扰器218结合,通过一种或更多种技术上可行的技术的任意组合对写入数据进行解扰以及对读取数据进行加扰。
在一些示例中,触发事件212使存储器设备将初始种子值和/或多项式加载到包括在序列生成器214内的线性反馈移位寄存器(LFSR)中。如本文所述,当存储器设备接收到读取命令或写入命令并且数据加扰被启用时,存储器设备生成触发事件212。类似地,当存储器设备接收到读取命令或写入命令并且数据加扰被启用时,存储器设备初始化序列生成器214并且生成第一序列值和/或将序列生成器214从当前序列值推进到下一个序列值。LFSR可以支持任何PRBS格式,例如PRBS-15序列、PRBS-7序列等。多项式可以是用于PRBS格式的任何合适的多项式。例如,PRBS-15序列可以由多项式x^15+x^14+1表示。各个DQ和DQX位的生成器可以用相同的种子值和/或多项式或不同的种子初始化值和/或多项式的任意组合启用。
存储器控制器经由诸如命令地址接口的未加扰接口和/或第二加扰接口初始化包括在序列生成器214内的LFSR的种子值和/或多项式。附加地或替代地,存储器控制器通过触发存储器设备将预定种子值和/或多项式加载到LFSR中来初始化LFSR的种子值和/或多项式。存储器控制器用相同的种子值和/或多项式初始化包括在存储器控制器中的LFSR。包括在序列生成器214中的LFSR和包括在存储器控制器中的LFSR由此同步。
一旦初始同步完成,序列生成器214和存储器控制器中的LFSR同时移位以生成伪随机输出以对写入数据进行解扰和对写入数据进行加扰。当LFSR被触发时,每个序列生成器214和存储器控制器中的LFSR移出随机序列,然后用于对写入数据进行解扰或对读取数据进行加扰。
在一些示例中,可以使用伪随机数生成器(PRNG)代替LFSR。在此类示例中,序列生成器214和存储器控制器最初使用相同的PRNG种子值同步。当PRNG被触发时,每一个序列生成器214和存储器控制器中的PRNG生成确定性随机值。然后使用随机值对写入数据进行解扰或对读取数据进行加扰。
在一些示例中,除了LFSR和/或PRNG之外或代替LFSR和/或PRNG,反转逻辑单元执行反转操作。在这样的示例中,序列生成器214中的每个反转逻辑单元和存储器控制器最初是同步的。当触发时,反转逻辑单元反转每个符号的逻辑电平以对写入数据进行解扰或对读取数据进行加扰。如本文所使用的,符号是一组一个或更多个位的写入数据或读取数据。附加地或替代地,反转逻辑单元反转每隔一个符号、每隔三个符号、每隔第n个符号(其中n是整数)、预定符号序列等的逻辑电平。
在一些示例中,除了或代替LFSR、和/或PRNG、和/或反转逻辑,交换逻辑单元执行交换操作。在这样的示例中,序列生成器214中的每个交换逻辑单元和存储器控制器最初是同步的。当被触发时,交换逻辑单元交换符号被传输的顺序,或者使符号以与符号的原始序列不同的某个预定序列被传输。
在一些示例中,除了或代替LFSR、和/或PRNG、反转逻辑和/或交换逻辑,移位逻辑单元执行移位操作。在这样的示例中,序列生成器214中的每个移位逻辑单元和存储器控制器最初是同步的。当被触发时,移位逻辑单元将一个或更多个符号中的比特移位一个或更多个比特位置,或者使这些符号以与符号及其中比特的原始序列不同的某一预定顺序相对于彼此移位。
在一些示例中,LFSR、PRNG、反转逻辑单元、交换逻辑单元和/或移位逻辑单元基于触发事件(例如触发事件212)而被触发。这样的触发事件212可以是例如、命令接口上读取命令或写入命令的检测、数据读取或写入期间的错误的检测等。以此方式,存储器设备将存储器设备执行的数据加扰操作与存储器控制器执行的数据加扰操作同步。
应当理解,本文所示的系统是说明性的并且变化和修改是可能的。其中,存储器控制器在执行用于通过存储器接口传输数据信号的数据编码之前加扰写入数据。存储器设备首先通过数据解码器208对写入数据进行解码,然后通过解扰器210对写入数据进行解扰并将写入数据存储在存储器核心216中。类似地,在通过数据编码器220执行数据编码用于通过存储器接口传输数据信号之前,存储器设备通过加扰器218对读取数据进行加扰。存储器控制器首先对读取数据进行解码,然后再对读取数据进行解扰并将读取数据传输至存储器客户端。因为数据加扰是在数据编码之前执行的,所以加扰数据以避免重复的病态数据模式不会负面影响编码以优化通过存储器接口传输的信号质量。
在一些示例中,数据加扰架构200包括对数据进行解码和编码以在存储器控制器和DRAM之间传输的组件。在一些示例中,在存储器控制器和DRAM之间传输的数据没有被编码。在这样的示例中,数据加扰架构200可以不包括数据解码器208、EDC解码器232、数据编码器220和EDC编码器248中的一个或更多个。
图3是根据各种实施例的用于存储器控制器(诸如图1的计算机系统的系统存储器控制器130或PPS存储器控制器132)的数据加扰架构300的框图。如进一步描述的,数据加扰架构300包括支持写入操作期间的数据加扰和读取操作期间的数据解扰的组件。数据加扰架构300的组件的功能类似于图2的数据加扰架构200的类似命名组件,并且附加功能如下所述。
存储器控制器包括存储器控制器处理器316,其将信号发送到系统存储器104和/或PP存储器134中包括的存储器设备以启动存储器设备、向存储器设备发送命令、将数据写入存储器设备、从存储器设备读取数据等。存储器控制器处理器316生成用于传输到存储器设备的命令并将命令传输到命令编码器374。命令编码器374将命令转换成存储器设备可读的形式并将命令传输到命令串行器372。命令串行器372串行化命令并且经由命令(CMD)引脚370将串行化的命令传输到存储器设备。在一些示例中,命令编码器374将从存储器控制器处理器316接收的命令转换成二十位字。命令串行器372将二十位字串行化成四个部分命令,每个部分命令五位。命令串行器372通过CMD引脚370将四个部分命令传输到存储器设备。
在读取操作和写入操作期间,并且如果数据加扰被启用,则存储器控制器处理器316将触发事件312发送到序列生成器314,导致同步操作。触发事件312可以是由存储器控制器处理器316发送并由序列生成器314接收的命令、信号等形式。由触发事件312生成的第一类型的同步操作将序列生成器314初始化为已知状态以生成序列值。由触发事件312引起的第二类同步操作使序列生成器314从生成当前序列值改变为生成下一个序列值。当序列生成器314被初始化时,序列生成器314从配置寄存器376加载PRBS种子值378以生成初始序列值。当序列生成器314前进时,序列生成器314从生成当前序列值前进到下一个序列值。附加地或替代地,序列生成器314可以包括并且可以启用或禁用数据加扰的各种组件,例如线性反馈移位寄存器、伪随机数生成器、反转逻辑、交换逻辑、移位逻辑等。存储器控制器处理器316在存储器设备上初始化和推进序列生成器314连同序列生成器214,以保持序列生成器314和序列生成器214之间的同步。以此方式,数据加扰架构300可以对从数据加扰架构200接收的数据进行解扰(unscramble),并且数据加扰架构200可以对从数据加扰架构300接收的数据进行解扰。
在读取操作期间,数据加扰架构300经由DQ、DQX I/O引脚302接收数据。接收器304将从DQ、DQX I/O引脚302接收的数据传输到数据解码器308。数据解码器308在读取数据上执行解码操作。解码操作可以包括MTA解码操作、DBI解码操作等。数据解码器308将解码的读取数据传输到解扰器310。如果数据加扰被启用,则解扰器310对解码的读取数据进行解扰以恢复存储在存储器设备的存储器核心216中的原始读取数据380。解扰器310将原始读取数据380传输到请求数据的存储器客户端。
此外,接收器304将从DQ、DQX I/O引脚302接收的数据传输到CRC测试器334。CRC测试器334还通过EDC I/O引脚326接收EDC码。接收器328传输从EDC接收的数据I/O引脚326到EDC解码器332。EDC解码器332对EDC码执行解码操作。解码操作可以包括MTA解码操作、DBI解码操作等。EDC解码器332将解码的EDC码传送到CRC测试器334。CRC测试器334将从EDC解码器332接收的EDC码与CRC测试器334从读取数据生成的第二EDC码进行比较。如果CRC测试器334没有检测到EDC错误,则CRC测试器334将通过状态360发送到重放引擎338。如果CRC测试器334检测到EDC错误,则CRC测试器334向重放引擎338发送失败状态360。当接收失败状态360,重放引擎338启动导致失败的读取操作的重放。重放引擎338将发起的重放读取操作传送到存储器控制器处理器316。存储器控制器处理器316调度重放读取操作被重试。这样做时,存储器控制器处理器316经由触发事件312使序列生成器314前进。此外,存储器控制器处理器316经由触发事件212使序列生成器214前进。以这种方式,读取数据在重放读取操作期间被加扰,与原始读取数据不同。附加地或替代地,读取数据在重放读取操作期间被加扰,而原始读取数据不被加扰。
在写入操作期间,加扰器318从正在写入存储器设备的存储器客户端接收写入数据382。如果数据加扰被启用,则加扰器318加扰写入数据并将加扰数据传输到数据编码器320。数据编码器320对加扰写入数据执行编码操作。编码操作可以包括MTA编码操作、DBI编码操作等。数据编码器320将编码的写入数据传输到传送器324。传送器324通过DQ、DQX I/O引脚302将编码的写入数据传输到存储器设备。
此外,数据编码器320将编码数据传送到CRC生成器346。CRC生成器346从编码写入数据生成EDC码并将EDC码传送到EDC编码器348。EDC编码器348对EDC码执行编码操作。编码操作可以包括MTA编码操作、DBI编码操作等。EDC编码器348将编码的EDC码发送到传送器352。传送器352通过EDC I/O引脚326将EDC码发送到存储器设备。
如果存储器基于通过DQ、DQX I/O引脚302接收的写入数据和通过EDC I/O引脚326接收的EDC码检测到EDC错误,则存储器设备传输失败状态(未示出)至重放引擎338。在从存储器设备接收到失败状态时,重放引擎338启动导致失败的写入操作的重放。重放引擎338将发起的重放写入操作传送到存储器控制器处理器316。存储器控制器处理器316调度重放写入操作被重试。这样做时,存储器控制器处理器316经由触发事件312推进序列生成器314。此外,存储器控制器处理器316经由触发事件212使序列生成器214前进。以这种方式,重放写入操作期间的写入数据与原始写入数据不同地加扰。附加地或替代地,重放写入操作期间的写入数据被加扰,而原始写入数据不被加扰。
在一些示例中,LFSR、PRNG、反转逻辑单元、交换逻辑单元和/或移位逻辑单元基于触发事件(例如触发事件312)而被触发。这样的触发事件312可以是例如命令接口上读取命令或写入命令的检测、数据读取或写入期间的错误的检测等。以此方式,存储器设备将存储器设备执行的数据加扰操作与存储器控制器执行的数据加扰操作同步。
图4是示出了根据各种实施例的将连续命令传送到包括在图1的计算机系统的系统存储器104和/或并行处理存储器134中的存储器设备的时序图400。
如图所示,标记为WCK 402的高速时钟信号为命令和数据提供单个时钟信号。命令接口包括任意数量的I/O引脚,用于将命令传输到存储器设备。在一些实施例中,命令接口包括五个I/O引脚,标记为CA[4:0]406。
图4中示出了五个命令起始点404,其中每个命令起始点404与WCK402的上升沿一致,该上升沿与四相(phase)命令的相位0一致。命令的三个连续相(phase)1、2、3与WCK 402的三个连续上升沿重合。在命令的相3之后的WCK 402的时钟上升沿之后是以下命令的相位0的命令起始点404。
传输到和来自存储器设备的数据可以包括主数据位(DQ)、扩展数据位(DQX)和错误检测位(EDC)。错误检测位用于通过任何技术上可行的错误检测和纠正码,例如循环冗余校验(CRC)码,来检测和/或纠正主数据位和/或扩展数据位中的位错误。
存储器设备可以基于不同的数据传输模式采用多种数据信令模式。例如,DQ和EDC数据位可以采用冗余数据选通(RDQS)数据传输模式,如DQ/EDC 408时序图中所示。在这种情况下,DQ和EDC数据位可以通过NRZ数据信令模式进行编码。在RDQS数据传输模式下,在WCK 402的每个上升沿和每个下降沿,数据作为以命令相位速率的两倍捕获的一位符号传输到存储器设备和从存储器设备传输。因此,每个DQ和EDC符号包括一位数据。附加地或替代地,传输到存储器设备和从存储器设备传输的数据可以采用传输包括两位或更多位数据的符号的数据传输模式。在一个示例中,DQ、DQX和EDC数据位可以通过高速多级模式用携带多于一位数据的符号进行编码。一种这样的数据传输模式是采用两位符号的4级脉冲幅度调制(PAM 4)数据传输模式,如DQ/DQX/EDC 410时序图所示。在PAM 4模式下,在WCK 402的每个上升沿和每个下降沿,以命令相位的两倍速率捕获的两位符号形式的数据在存储器设备之间传输。PAM 4数据传输模式允许每个数据I/O引脚承载在WCK 402的每个上升沿和每个下降沿捕获的两位数据。因此,在PAM 4数据传输模式下,数据传输速率是命令传输速率的四倍。无论存储器设备以RDQS模式、PAM 4模式还是任何其他数据传输模式操作,相同的时钟信号WCK 402捕获命令位和数据位。
应当理解,本文所示的系统是说明性的并且变化和修改是可能的。其中,单个命令字可以包括多组四个相。在一些示例中,单个命令字可以包括四个相的倍数,例如八个相、十二个相等。在此类示例中,每个命令都经由CA[4:0]I/O引脚通过多个四相命令传输。对于包括八相的单个命令,该命令作为两个连续的四相命令传输。当存储器控制器向存储器设备传送第一四相命令时,存储器设备识别出该命令是八相命令。存储器设备接收从某个命令开始点404开始的命令的前四个相,并接收从下一个连续命令开始点404开始的命令的后四个相。类似地,对于包括十二个相的单个命令,命令作为三个连续的四相命令传输。当存储器控制器向存储器设备发送第一四相命令时,存储器设备识别出该命令是十二相命令。存储器设备接收从某个命令开始点404开始的命令的前四个相,并接收从后两个连续命令开始点404开始的命令的第二四个相和第三四个相,依此类推。
在另一个示例中,由存储器控制器传送到存储器设备的命令被描述为多达24个命令位,作为五位的四个相传输。然而,在所公开的实施例的范围内,相数可以多于四相或少于四相。此外,在所公开的实施例的范围内,命令位的数量可以多于五位或少于五位。在又一个示例中,本文公开的信号是根据上升沿和/或下降沿、高电平或低电平等来描述的。然而,上升沿和下降沿可以互换,高电平和低电平可以互换,并且可以在所公开的实施例的范围内关于信号沿和电平做出任何其他技术上可行的改变。
图5是根据各种实施例的用于经由图2的数据加扰架构200执行写入操作的方法步骤的流程图。尽管结合图1-4的系统描述了方法步骤,但本领域普通技术人员将理解,被配置为以任何顺序执行方法步骤的任何系统都在本公开的范围内。
如图所示,方法500开始于步骤502,其中存储器设备执行指向包括在存储器设备的数据加扰架构200中的序列生成器214的同步操作。存储器设备响应于从存储器控制器接收的触发事件212执行同步操作,例如与一个或更多个CPU 102相关联的系统存储器控制器130和/或与一个或更多个并行处理子系统112相关联的PPS存储器控制器132。触发事件212可以是由存储器控制器发送并由存储器设备接收的命令、信号等。由触发事件212生成的第一类型的同步操作将序列生成器214初始化为已知状态以便生成序列值。由触发事件212引起的第二类同步操作使序列生成器214从生成当前序列值改变为生成下一个序列值。存储器控制器可以针对存储器设备的每个读取操作和/或写入操作发送用于该第二类型同步操作的触发事件212。在一些示例中,存储器控制器向存储器设备发送命令,该命令使存储器设备生成触发事件212。附加地或替代地,当存储器控制器检测到EDC错误并且启用数据加扰时,存储器设备生成触发事件212。附加地或替代地,存储器控制器可以仅针对由针对存储器设备的失败的读取操作和/或失败的写入操作所导致的重放操作来传送用于该第二类型的同步操作的触发事件212。
更具体地,存储器控制器发送触发事件212以将序列生成器214与包括在存储器控制器中的类似序列生成器同步。触发事件212使序列生成器214启动到已知状态。在启动到已知状态时,序列生成器214生成第一序列值。此后,每次存储器控制器发送后续触发事件212时,序列生成器214从当前序列值前进到下一个序列值。类似地,在启动到已知状态时,包括在存储器控制器中的序列生成器生成相同的第一序列价值。此后,每次存储器控制器向存储器设备发送后续触发事件212时,包括在存储器控制器中的序列生成器从当前序列值前进到下一个序列值。以这种方式,包括在存储器控制器中的序列生成器和序列生成器214保持彼此同步。
在步骤504,存储器设备接收指向存储器设备的写入操作。通常,存储器设备从存储器控制器接收写入操作。存储器设备通过一个或更多个DQ、DQX I/O引脚202接收写入数据。接收器204从DQ、DQX I/O引脚202接收写入数据,对写入数据进行反序列化,并将写入数据传输到包括在存储器设备中的数据解码器208。
在步骤506,数据解码器208对在步骤504接收的写入数据执行解码操作。由存储器控制器传输到DQ、DQX I/O引脚202的写入数据通常被编码以优化通过内存接口。在存储器控制器和存储器设备之间通过物理I/O层传输编码数据的目标是优化信号传输的数据。编码优化数据以最小化接口上的转变、最小化串扰、减少接口上的终端电路消耗的直流(DC)功率的量等。数据可以通过MTA操作进行编码,这减少了低到高和/或高到低信号转换的次数,以提高存储器接口上的信噪比。附加地或替代地,可以经由DBI操作对数据进行编码,以减少存储器接口上的高信号值的数量,从而减少存储器接口上消耗的功率。附加地或替代地,可以通过任何技术上可行的操作对数据进行编码。
在步骤508,包括在存储器设备中的解扰器210对写入数据执行解扰操作。尽管对写入数据进行编码会改变数据以优化写入数据以实现最佳信号传输,但编码操作会为一组输入数据生成相同的输出数据。因此,如果给定写入数据集的编码数据在存储器接口上呈现病态数据模式,则相同编码数据的重放操作在存储器接口上呈现相同病态数据模式。因此,存储器控制器在对写入数据编码用于传输之前,对写入数据进行加扰。存储器设备通过数据解码器208对写入数据进行解码,然后通过解扰器210对解码数据进行解扰来反向执行这些步骤。解扰器210从数据解码器208接收解码后的写入数据。解扰器210基于从包括在存储器设备中的序列生成器214接收的序列值对解码数据进行解扰以生成由存储客户端生成的原始数据。解扰器210将原始数据传送到存储器核心216进行存储。在步骤510,解扰器210将写入数据存储在包括在存储器设备中的存储器核心216中。
在步骤512,纠错和检测(EDC)解码器232解码通过EDC I/O引脚226接收的传入EDC码。在写入操作期间,存储器控制器执行CRC操作。具体而言,存储器控制器生成EDC码,例如CRC值。存储器控制器根据通过存储器接口传输的编码写入数据生成EDC码。存储器控制器可选地对EDC码进行编码、对EDC码进行序列化,并将EDC码传输到存储器设备。存储器设备经由一个或更多个EDC I/O引脚226接收EDC码。接收器228从EDC I/O引脚226接收EDC码,将EDC码反序列化,并将EDC码传送到EDC解码器232。EDC解码器232以结合数据解码器208描述的方式对EDC码执行解码操作。EDC解码器232将解码的EDC码传输到CRC测试器234。
在步骤514,CRC测试器234对写入数据和传入EDC码执行CRC测试。CRC测试器234执行CRC操作。更具体地,CRC测试器234基于来自接收器204的编码写入数据生成第二EDC码,例如CRC值。CRC测试器234将第二EDC码与从EDC解码器232接收的EDC码进行比较并生成状态输出260。如果第二EDC码与从EDC解码器232接收的EDC码匹配,则CRC测试器234发送通过状态输出260。如果第二EDC码与从EDC解码器232接收的EDC码不匹配,则CRC测试器234发送故障状态输出260。
在步骤516,包括在存储器设备中的多路复用器236以状态输出260的形式将CRC测试结果传输到存储器控制器。在写入操作期间,多路复用器236选择状态输出260并且将状态输出260发送到发送器240。发送器240通过RCK输出引脚242将状态输出260发送到存储器控制器,假设在写入操作期间RCK输出引脚242另外未使用。然后方法500终止。
图6是根据各种实施例的用于经由图2的数据加扰架构200执行读取操作的方法步骤的流程图。尽管结合图1-4的系统描述了方法步骤,但本领域普通技术人员将理解,被配置为以任何顺序执行方法步骤的任何系统都在本公开的范围内。
如图所示,方法600开始于步骤602,其中存储器设备,其中存储器设备执行指向包括在存储器设备的数据加扰架构200中的序列生成器214的同步操作。存储器设备响应于从存储器控制器接收的触发事件212执行同步操作,例如与一个或更多个CPU 102相关联的系统存储器控制器130和/或与一个或更多个并行处理子系统112相关联的PPS存储器控制器132。触发事件212可以是由存储器控制器发送并由存储器设备接收的命令、信号等形式。由触发事件212生成的第一类型的同步操作将序列生成器214初始化为已知状态以便生成序列值。由触发事件212引起的第二类同步操作使序列生成器214从生成当前序列值改变为生成下一个序列值。存储器控制器可以针对存储器设备的每个读取操作和/或写入操作发送用于该第二类型同步操作的触发事件212。附加地或替代地,存储器控制器可以仅针对存储器设备的失败的读取操作和/或失败的写入操作所导致的重放操作来传送用于该第二类型的同步操作的触发事件212。
更具体地,存储器控制器发送触发事件212以将序列生成器214与包括在存储器控制器中的类似序列生成器同步。触发事件212使序列生成器214启动到已知状态。在启动到已知状态时,序列生成器214生成第一序列值。此后,每次存储器控制器发送后续触发事件212时,序列生成器214从当前序列值前进到下一个序列值。类似地,在启动到已知状态时,包括在存储器控制器中的序列生成器生成相同的第一序列值。此后,每次存储器控制器向存储器设备发送后续触发事件212时,包括在存储器控制器中的序列生成器从当前序列值前进到下一个序列值。以此方式,包括在存储器控制器中的序列生成器和序列生成器214保持彼此同步。
在步骤604,存储器设备接收指向存储器设备的读取操作。通常,存储器设备从存储器控制器接收读取操作。
在步骤606,存储器设备从存储器设备的存储器核心216加载读取数据。在读取操作期间,存储器核心216检索所请求的读取数据并将读取数据传输到包括在存储器设备中的加扰器218。在步骤608,加扰器218对读取的数据执行加扰操作。加扰器218从存储器核心216接收读取数据。加扰器218基于从序列生成器214接收的序列值对读取数据进行加扰以生成加扰读取数据。尽管对读取数据进行编码会改变数据以优化读取数据以实现最佳信号传输,但编码操作会为一组输入数据生成相同的输出数据。因此,如果给定读取数据集的编码数据在存储器接口上呈现病态数据模式,则相同编码数据的重放操作在存储器接口上呈现相同病态数据模式。因此,加扰器218在编码用于传输的读取数据之前,对读取数据进行加扰。加扰器218将加扰数据发送到包括在存储器设备中的数据编码器220。
在步骤610,数据编码器220对读取的数据执行编码操作。如本文所述,由存储器设备经由DQ、DQX I/O引脚202传输到存储器控制器的读取数据通常被编码以优化存储器接口上的信号传输。数据编码器220将编码数据发送到包括在存储器设备中的发送器224。在步骤612,传送器224将编码的读取数据传输到存储器控制器。发送器224将编码的读取数据串行化,并通过DQ、DQX I/O引脚202将编码的读取数据传输到存储器控制器。存储器控制器对读取数据进行反序列化,可选地对读取数据进行解码,对读取数据进行解扰以生成原始数据读取数据,并将原始读取数据传输给请求数据的内存储器客户端。
在步骤614,包括在存储器设备中的CRC生成器246生成用于读取数据的EDC码,例如CRC值。在读取操作期间,CRC生成器246从数据编码器220接收编码的读取数据。CRC生成器246执行CRC操作。更具体地,CRC生成器246生成EDC码,例如CRC值,并将该EDC码发送到EDC编码器248。在步骤616,包括在存储器设备中的EDC编码器248对EDC码执行编码操作以生成传出EDC码。如本文所述,由存储器设备经由EDC I/O引脚226传输到存储器控制器的EDC码通常被编码以优化通过存储器接口的信号传输。EDC编码器248将编码的EDC码发送到包括在存储器设备中的发送器252。
在步骤618,传送器252将编码的EDC码传输到存储器控制器。发送器252串行化EDC码并通过EDC I/O引脚226将EDC码发送到存储器控制器。存储器控制器对通过EDC I/O引脚226接收的EDC码进行反序列化。存储器控制器生成第二EDC码(例如CRC值),基于经由DQ、DQX I/O引脚202接收的编码读取数据。存储器控制器将第二EDC码与从EDC编码器248接收的EDC码进行比较并生成状态输出。如果第二EDC码与从EDC编码器248接收的EDC码匹配,则存储器控制器生成通过状态输出。如果第二EDC码与从EDC编码器248接收的EDC码不匹配,则存储器控制器生成故障状态输出。
在读取操作期间,多路复用器236选择读取时钟(RCK)生成器238的输出并将RCK生成器238的输出发送到发送器240。发送器240通过RCK输出引脚242将RCK生成器238的输出发送到存储器控制器,从而提供读取时钟信号,存储器控制器通过该信号对经由DQ、DQX I/O引脚202接收的读取数据和经由EDC I/O引脚226接收的EDC码进行采样。方法600然后终止。
总之,各种实施例涉及用于在DRAM存储器设备的接口上进行数据加扰的技术。所公开的技术在存储器接口上提供数据的同步加扰和解扰以确保病态数据模式不在接口上重复。所公开的存储器设备生成可预测的序列值系列。与存储器设备耦合的存储器控制器生成相同的可预测序列值系列。
在写入操作期间,存储器控制器根据第一序列值对写入数据进行加扰。当存储器设备接收到加扰的写入数据时,存储器设备根据相同的第一序列值对写入数据进行解扰。如果写入操作失败,则存储器控制器用相同的写入数据重复写入操作。存储器控制器根据第二序列值对写入数据进行加扰,从而导致存储器接口上的不同模式。当存储器设备接收到加扰的写入数据时,存储器设备根据相同的第二序列值对写入数据进行解扰。
在读取操作期间,存储器设备根据第三序列值对读取数据进行加扰。当存储器控制器接收到加扰的读取数据时,存储器控制器根据相同的第三序列值对读取数据进行解扰。如果读取操作失败,则存储器控制器重复读取操作,并且存储器设备检索相同的写入数据。存储器设备根据第四序列值对读取数据进行加扰,从而导致存储器接口上的不同模式。当存储器控制器接收到加扰的读取数据时,存储器控制器根据相同的第四序列值对读取数据进行解扰。
所公开的技术相对于现有技术的至少一个技术优势在于,通过所公开的技术,DRAM存储器设备与存储器控制器协同,在重放操作期间改变写入数据或读取数据的加扰模式。结果,通过存储器接口传输的加扰数据在原始操作和相关联的重放操作之间改变。类似地,对于相同的原始操作,通过存储器接口传输的加扰数据在第一重放操作和随后的第二重放操作之间改变。因此,相对于现有技术,降低了在随后的重放操作期间由一个操作的数据相关抖动导致的错误将重复的可能性。这些优点代表了相对于现有技术方法的一项或更多项技术改进。
任何权利要求中记载的任何权利要求要素和/或本申请中描述的任何要素的任何和所有组合,以任何方式均落入本公开和保护的预期范围内。
已经出于说明的目的呈现了各种实施例的描述,但并非旨在穷举或限制于所公开的实施例。在不脱离所描述实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说将是显而易见的。
本实施例的方面可以体现为系统、方法或计算机程序产品。因此,本公开的方面可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,其通常都可以在本文称为“模块”或“系统”。此外,本公开的方面可以采用包含在一个或更多个计算机可读介质中实例化的计算机程序产品的形式,其具有包含在其上的计算机可读程序代码。
可以利用一种或更多种计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如,但不限于,电子、磁、光、电磁、红外或半导体系统、装置或设备,或前述的任何合适的组合。计算机可读存储介质的更具体示例(非穷举列表)将包括以下内容:具有一个或更多个电线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、读取-只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或任何前述的适当组合。在本文档的上下文中,计算机可读存储介质可以是可以包含或存储由指令执行系统、装置或设备使用或与其结合使用的程序的任何有形介质。
以上参照根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的方面。应当理解,流程图和/或框图的每个块,以及流程图和/或框图中的块的组合,可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以生产机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令启用流程图和/或框图块或块中指定的功能/动作的实现。这种处理器可以是但不限于通用处理器、专用处理器、应用程序专用处理器或现场可编程门阵列。
图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。就这一点而言,流程图或框图中的每个块可表示模块、段或代码的一部分,其包括用于实现一个或更多个指定逻辑功能的一个或更多个可执行指令。还应当注意的是,在一些替代实施方式中,方框中标注的功能可以不按照图中标注的顺序出现。例如,根据所涉及的功能,连续显示的两个块实际上可以基本同时执行,或者有时可以以相反的顺序执行这些块。还将注意到,框图和/或流程图说明的每个块,以及框图和/或流程图说明中的块的组合,可以由执行指定功能或动作的基于专用硬件的系统,或专用硬件和计算机指令的组合来实现。
虽然前文针对本公开的实施例,但是在不脱离其基本范围的情况下可以设计本公开的其他和进一步的实施例,并且其范围由以下权利要求确定。
Claims (20)
1.一种用于处理存储器设备中的加扰数据的计算机实现的方法,所述方法包括:
将与所述存储器设备相关联的第一组数据加扰操作与与存储器控制器相关联的第二组数据加扰操作同步;
基于由所述第二组数据加扰操作生成的第一值接收第一加扰数据;
基于由所述第一组数据加扰操作生成的第二值解扰所述第一加扰数据以生成未加扰数据;以及
将所述未加扰数据存储在所述存储器设备的存储器核心中。
2.如权利要求1所述的计算机实现的方法,还包括,在解扰所述第一加扰数据之前,通过对所述第一加扰数据执行解码操作来修改所述第一加扰数据。
3.如权利要求2所述的计算机实现的方法,其中所述解码操作包括最大转变避免MTA操作或数据总线倒置DBI操作中的至少一种。
4.如权利要求1所述的计算机实现的方法,还包括:
对所述第一加扰数据执行循环冗余校验CRC操作;以及
传输基于与所述CRC操作相关联的错误结果。
5.如权利要求1所述的计算机实现的方法,还包括:
从所述存储器核心加载所述未加扰数据;
基于由第三组数据加扰操作生成的第三值加扰所述未加扰数据以生成第二加扰数据;以及
传输所述第二加扰数据至所述存储器控制器。
6.如权利要求5所述的计算机实现的方法,还包括,在传输所述第二加扰数据之前,通过对所述第二加扰数据执行编码操作来修改所述第二加扰数据。
7.如权利要求6所述的计算机实现的方法,其中所述编码操作包括最大转变避免MTA操作或数据总线倒置DBI操作中的至少一种。
8.如权利要求5所述的计算机实现的方法,还包括:
对所述第二加扰数据执行循环冗余校验CRC操作以生成CRC值;以及
传输所述CRC值至所述存储器控制器。
9.如权利要求5所述的计算机实现的方法,其中所述第一组数据加扰操作与所述第三组数据加扰操作相同。
10.如权利要求5所述的计算机实现的方法,其中所述第一组数据加扰操作不同于所述第三组数据加扰操作。
11.如权利要求5所述的计算机实现的方法,其中所述第一组数据加扰操作或所述第三组数据加扰操作中的至少一个是基于伪随机位序列、反转操作、移位操作或交换操作。
12.一种系统,包括:
存储器控制器;以及
存储器设备,其耦合到所述存储器控制器,并且:
将与所述存储器设备相关联的第一组数据加扰操作与与所述存储器控制器相关联的第二组数据加扰操作同步;
基于由所述第二组数据加扰操作生成的第一值接收第一加扰数据;
基于由所述第一组数据加扰操作生成的第二值解扰所述第一加扰数据以生成未加扰数据;以及
将所述未加扰数据存储在所述存储器设备的存储器核心中。
13.如权利要求12所述的系统,还包括,在解扰所述第一加扰数据之前,通过对所述第一加扰数据执行解码操作来修改所述第一加扰数据。
14.如权利要求13所述的系统,其中所述解码操作包括最大转变避免MTA操作或数据总线倒置DBI操作中的至少一种。
15.如权利要求12所述的系统,还包括:
对所述第一加扰数据执行循环冗余校验CRC操作;以及
传输基于与所述CRC操作相关联的错误结果。
16.如权利要求12所述的系统,还包括:
从所述存储器核心加载所述未加扰数据;
基于由第三组数据加扰操作生成的第三值加扰所述未加扰数据以生成第二加扰数据;以及
传输所述第二加扰数据至所述存储器控制器。
17.如权利要求16所述的系统,还包括,在传输所述第二加扰数据之前,通过对所述第二加扰数据执行编码操作来修改所述第二加扰数据。
18.如权利要求17所述的系统,其中所述编码操作包括最大转变避免MTA操作或数据总线倒置DBI操作中的至少一种。
19.如权利要求16所述的系统,还包括:
对所述第二加扰数据执行循环冗余校验CRC操作以生成CRC值;以及
传输所述CRC值至所述存储器控制器。
20.如权利要求16所述的系统,其中所述第一组数据加扰操作或所述第三组数据加扰操作中的至少一个是基于伪随机位序列、反转操作、移位操作或交换操作。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163144971P | 2021-02-02 | 2021-02-02 | |
US63/144,971 | 2021-02-02 | ||
US202163152817P | 2021-02-23 | 2021-02-23 | |
US202163152814P | 2021-02-23 | 2021-02-23 | |
US63/152,814 | 2021-02-23 | ||
US63/152,817 | 2021-02-23 | ||
US202163179954P | 2021-04-26 | 2021-04-26 | |
US63/179,954 | 2021-04-26 | ||
US17/523,775 | 2021-11-10 | ||
US17/523,775 US11573854B2 (en) | 2021-02-02 | 2021-11-10 | Techniques for data scrambling on a memory interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114840455A true CN114840455A (zh) | 2022-08-02 |
Family
ID=82402763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210099302.3A Pending CN114840455A (zh) | 2021-02-02 | 2022-01-25 | 存储器接口上的数据加扰技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11573854B2 (zh) |
CN (1) | CN114840455A (zh) |
DE (1) | DE102022102132A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11824563B2 (en) * | 2021-03-10 | 2023-11-21 | Samsung Electronics Co., Ltd. | Encoding and decoding apparatuses and methods for implementing multi-mode coding |
Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666516A (en) * | 1993-12-16 | 1997-09-09 | International Business Machines Corporation | Protected programmable memory cartridge having selective access circuitry |
US6158039A (en) * | 1997-01-15 | 2000-12-05 | Samsung Electronics Co., Limited | System decoder having error correcting memories for high-speed data processing and transmission and method for controlling same |
US20070098160A1 (en) * | 2005-11-03 | 2007-05-03 | Peter Lablans | SCRAMBLING AND SELF-SYNCHRONIZING DESCRAMBLING METHODS FOR BINARY AND NON-BINARY DIGITAL SIGNALS NOT USING LFSRs |
CN1988034A (zh) * | 2005-12-22 | 2007-06-27 | 三星电子株式会社 | 具有在端口间的数据发送模式的多径访问半导体存储器件 |
US20070162825A1 (en) * | 2006-01-11 | 2007-07-12 | Yuanlong Wang | Unidirectional error code transfer for a bidirectional data link |
CN101467136A (zh) * | 2006-06-09 | 2009-06-24 | 微软公司 | 高速非易失性存储器设备 |
TW201135746A (en) * | 2009-12-30 | 2011-10-16 | Sandisk Corp | Method and controller for performing a copy-back operation |
US20130124781A1 (en) * | 2011-11-15 | 2013-05-16 | Sandisk Technologies Inc. | Data scrambling based on transition characteristic of the data |
CN103777904A (zh) * | 2014-02-12 | 2014-05-07 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
CN104205234A (zh) * | 2012-03-30 | 2014-12-10 | 英特尔公司 | 用于存储器电路测试引擎的通用地址加扰器 |
TW201447578A (zh) * | 2013-06-11 | 2014-12-16 | Silicon Motion Inc | 資料儲存裝置及其管理方法 |
CN106155584A (zh) * | 2015-05-07 | 2016-11-23 | 三星电子株式会社 | 对数据进行加扰和解扰的方法和系统 |
CN107924698A (zh) * | 2015-08-28 | 2018-04-17 | 英特尔公司 | 存储器设备校验位读取模式 |
US20180137061A1 (en) * | 2016-11-16 | 2018-05-17 | Stmicroelectronics (Rousset) Sas | Storage in a non-volatile memory |
KR20180082927A (ko) * | 2017-01-11 | 2018-07-19 | 에스케이하이닉스 주식회사 | 메모리장치의 에러정정장치 및 에러정정방법과, 에러정정장치를 포함하는 메모리 컨트롤러 |
US20180219562A1 (en) * | 2017-01-27 | 2018-08-02 | Futurewei Technologies, Inc. | Transaction identification synchronization |
US20180308214A1 (en) * | 2017-04-21 | 2018-10-25 | Intel Corporation | Data scrambling mechanism |
CN109155146A (zh) * | 2016-05-28 | 2019-01-04 | 超威半导体公司 | 一体式封装后修复装置 |
US20190018737A1 (en) * | 2017-07-14 | 2019-01-17 | Samsung Electronics Co., Ltd. | Memory device including detection clock pattern generator for generating detection clock output signal including random data pattern |
CN109582493A (zh) * | 2017-09-29 | 2019-04-05 | 英特尔公司 | 用于减少非易失性存储器系统中的静默数据错误的方法和装置 |
CN110169095A (zh) * | 2019-04-12 | 2019-08-23 | 北京小米移动软件有限公司 | 加扰处理方法、解扰处理方法及装置 |
CN110389851A (zh) * | 2018-04-20 | 2019-10-29 | 三星电子株式会社 | 具有错误校正功能的存储器设备及其操作方法 |
CN111354408A (zh) * | 2018-12-20 | 2020-06-30 | 美光科技公司 | 低成本且低时延的逻辑单元擦除 |
US20200233743A1 (en) * | 2019-01-18 | 2020-07-23 | Winbond Electronics Corp. | Error correction code memory device and codeword accessing method thereof |
US10740264B1 (en) * | 2019-04-29 | 2020-08-11 | Hewlett Packard Enterprise Development Lp | Differential serial memory interconnect |
CN111615801A (zh) * | 2017-11-17 | 2020-09-01 | 天波网络有限责任公司 | 通过通信链路传输的数据的编码和解码方法 |
CN111831404A (zh) * | 2019-04-15 | 2020-10-27 | 辉达公司 | 用于dram控制器的高性能内联ecc架构 |
CN111858134A (zh) * | 2019-04-29 | 2020-10-30 | 三星电子株式会社 | 存储器控制器、存储器系统以及操作存储器控制器的方法 |
CN112241333A (zh) * | 2019-07-19 | 2021-01-19 | 爱思开海力士有限公司 | 用于存储器系统的编码器及其方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11334426B2 (en) * | 2020-04-20 | 2022-05-17 | Micron Technology, Inc. | CRC error alert synchronization |
-
2021
- 2021-11-10 US US17/523,775 patent/US11573854B2/en active Active
-
2022
- 2022-01-25 CN CN202210099302.3A patent/CN114840455A/zh active Pending
- 2022-01-31 DE DE102022102132.7A patent/DE102022102132A1/de active Pending
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666516A (en) * | 1993-12-16 | 1997-09-09 | International Business Machines Corporation | Protected programmable memory cartridge having selective access circuitry |
US6158039A (en) * | 1997-01-15 | 2000-12-05 | Samsung Electronics Co., Limited | System decoder having error correcting memories for high-speed data processing and transmission and method for controlling same |
US20070098160A1 (en) * | 2005-11-03 | 2007-05-03 | Peter Lablans | SCRAMBLING AND SELF-SYNCHRONIZING DESCRAMBLING METHODS FOR BINARY AND NON-BINARY DIGITAL SIGNALS NOT USING LFSRs |
CN1988034A (zh) * | 2005-12-22 | 2007-06-27 | 三星电子株式会社 | 具有在端口间的数据发送模式的多径访问半导体存储器件 |
US20070162825A1 (en) * | 2006-01-11 | 2007-07-12 | Yuanlong Wang | Unidirectional error code transfer for a bidirectional data link |
CN101467136A (zh) * | 2006-06-09 | 2009-06-24 | 微软公司 | 高速非易失性存储器设备 |
TW201135746A (en) * | 2009-12-30 | 2011-10-16 | Sandisk Corp | Method and controller for performing a copy-back operation |
US20130124781A1 (en) * | 2011-11-15 | 2013-05-16 | Sandisk Technologies Inc. | Data scrambling based on transition characteristic of the data |
CN104205234A (zh) * | 2012-03-30 | 2014-12-10 | 英特尔公司 | 用于存储器电路测试引擎的通用地址加扰器 |
TW201447578A (zh) * | 2013-06-11 | 2014-12-16 | Silicon Motion Inc | 資料儲存裝置及其管理方法 |
CN103777904A (zh) * | 2014-02-12 | 2014-05-07 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
CN106155584A (zh) * | 2015-05-07 | 2016-11-23 | 三星电子株式会社 | 对数据进行加扰和解扰的方法和系统 |
CN107924698A (zh) * | 2015-08-28 | 2018-04-17 | 英特尔公司 | 存储器设备校验位读取模式 |
CN109155146A (zh) * | 2016-05-28 | 2019-01-04 | 超威半导体公司 | 一体式封装后修复装置 |
US20180137061A1 (en) * | 2016-11-16 | 2018-05-17 | Stmicroelectronics (Rousset) Sas | Storage in a non-volatile memory |
KR20180082927A (ko) * | 2017-01-11 | 2018-07-19 | 에스케이하이닉스 주식회사 | 메모리장치의 에러정정장치 및 에러정정방법과, 에러정정장치를 포함하는 메모리 컨트롤러 |
US20180219562A1 (en) * | 2017-01-27 | 2018-08-02 | Futurewei Technologies, Inc. | Transaction identification synchronization |
US20180308214A1 (en) * | 2017-04-21 | 2018-10-25 | Intel Corporation | Data scrambling mechanism |
US20190018737A1 (en) * | 2017-07-14 | 2019-01-17 | Samsung Electronics Co., Ltd. | Memory device including detection clock pattern generator for generating detection clock output signal including random data pattern |
CN109582493A (zh) * | 2017-09-29 | 2019-04-05 | 英特尔公司 | 用于减少非易失性存储器系统中的静默数据错误的方法和装置 |
CN111615801A (zh) * | 2017-11-17 | 2020-09-01 | 天波网络有限责任公司 | 通过通信链路传输的数据的编码和解码方法 |
CN110389851A (zh) * | 2018-04-20 | 2019-10-29 | 三星电子株式会社 | 具有错误校正功能的存储器设备及其操作方法 |
CN111354408A (zh) * | 2018-12-20 | 2020-06-30 | 美光科技公司 | 低成本且低时延的逻辑单元擦除 |
US20200233743A1 (en) * | 2019-01-18 | 2020-07-23 | Winbond Electronics Corp. | Error correction code memory device and codeword accessing method thereof |
CN110169095A (zh) * | 2019-04-12 | 2019-08-23 | 北京小米移动软件有限公司 | 加扰处理方法、解扰处理方法及装置 |
CN111831404A (zh) * | 2019-04-15 | 2020-10-27 | 辉达公司 | 用于dram控制器的高性能内联ecc架构 |
US10740264B1 (en) * | 2019-04-29 | 2020-08-11 | Hewlett Packard Enterprise Development Lp | Differential serial memory interconnect |
CN111858134A (zh) * | 2019-04-29 | 2020-10-30 | 三星电子株式会社 | 存储器控制器、存储器系统以及操作存储器控制器的方法 |
CN112241333A (zh) * | 2019-07-19 | 2021-01-19 | 爱思开海力士有限公司 | 用于存储器系统的编码器及其方法 |
Non-Patent Citations (1)
Title |
---|
易茂祥;章浩;郭红卫;王全清: "m-序列数据扰码技术及其在SATA中的应用", 《 微电子学》, vol. 42, no. 4, 20 August 2012 (2012-08-20) * |
Also Published As
Publication number | Publication date |
---|---|
US11573854B2 (en) | 2023-02-07 |
US20220245025A1 (en) | 2022-08-04 |
DE102022102132A1 (de) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7020757B2 (en) | Providing an arrangement of memory devices to enable high-speed data access | |
US11809719B2 (en) | Techniques for performing write training on a dynamic random-access memory | |
US7616133B2 (en) | Data bus inversion apparatus, systems, and methods | |
JP4836794B2 (ja) | シリアルメモリインターコネクトを介して複数のメモリモジュールに接続されたホストを含むシステム | |
US11742007B2 (en) | Techniques for performing write training on a dynamic random-access memory | |
US8552891B2 (en) | Method and apparatus for parallel data interfacing using combined coding and recording medium therefor | |
US8677211B2 (en) | Data bus inversion using spare error correction bits | |
EP2297641B1 (en) | Efficient in-band reliability with separate cyclic redundancy code frames | |
KR20190074006A (ko) | 반도체장치 및 반도체시스템 | |
US8566685B2 (en) | Command control circuit, integrated circuit having the same, and command control method | |
CN109256172B (zh) | 包括检测时钟样式生成器的存储器设备 | |
US20240069812A1 (en) | Techniques for transferring commands to a dynamic random-access memory | |
US11573854B2 (en) | Techniques for data scrambling on a memory interface | |
US9239755B2 (en) | Semiconductor device and semiconductor system including the same | |
US20230195561A1 (en) | Techniques for data scrambling on a memory interface | |
US11742006B2 (en) | Techniques for performing command address in interface training on a dynamic random-access memory | |
WO2023122445A1 (en) | Techniques for data scrambling on a memory interface | |
US20220253536A1 (en) | Memory controller for improving data integrity and providing data security and a method of operating thereof | |
US20230421294A1 (en) | Transmitting device, transmitting and receiving system using the transmitting device, and transmitting and receiving method | |
US20240005204A1 (en) | Semiconductor device | |
CN118057749A (zh) | 用于超高速的发送器和包括该发送器的存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |