CN107423230A - 存储器模块、具有其的计算系统及测试其标签错误的方法 - Google Patents
存储器模块、具有其的计算系统及测试其标签错误的方法 Download PDFInfo
- Publication number
- CN107423230A CN107423230A CN201710357927.4A CN201710357927A CN107423230A CN 107423230 A CN107423230 A CN 107423230A CN 201710357927 A CN201710357927 A CN 201710357927A CN 107423230 A CN107423230 A CN 107423230A
- Authority
- CN
- China
- Prior art keywords
- cache
- label
- memory module
- bit
- memory
- 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.)
- Granted
Links
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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/1044—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 with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了存储模块、具有该存储模块的计算系统以及测试计算系统的标签错误方法。该计算系统的方法包括:在处理器处将命令和地址输出到存储器模块;从存储器模块接收指示将对应于地址的标签与存储在存储器模块中的标签进行比较的结果的匹配/不匹配比特;在处理器处通过使用多数表决根据匹配/未匹配比特中确定高速缓存命中/未命中;以及在处理器处将所确定的高速缓存命中/未命中的信息输出到存储器模块。
Description
技术领域
本文公开的发明构思的实施例涉及一种存储器模块、具有该存储器模块的计算系统以及用于测试其标签错误的方法。
背景技术
正在开发与现有计算系统的各种接口兼容的非易失性存储器。也就是说,试图通过将闪速存储器安装在与主存储器或工作存储器相同的插槽(slot)或通道中,来将闪速存储器用作数据存储设备或工作存储器。在这种情况下,应考虑与常规使用的易失性随机存取存储器(RAM)(例如,动态RAM(DRAM))的兼容性。需要一种能够在保持与易失性RAM的兼容性的同时提供数据的最佳完整性和低功率特性的技术。
发明内容
发明构思的实施例提供了一种存储器模块、具有该存储器模块的计算系统以及用于测试其标签错误的方法。
根据实施例的方面,一种计算系统的方法,该计算系统包括至少一个非易失性存储器、执行非易失性存储器的高速缓存功能的存储器模块以及控制非易失性存储器和存储器模块的处理器,该方法包括在处理器处将命令和地址输出到存储器模块;从存储器模块接收指示将对应于地址的标签与存储在存储器模块中的标签进行比较的结果的匹配/不匹配(match/unmatch)比特;在处理器处通过使用多数表决(majority voting)根据匹配/未匹配比特确定高速缓存命中/未命中;以及在处理器处将所确定的高速缓存命中/未命中(hit/miss)的信息输出到存储器模块。
根据实施例的另一方面,一种计算系统的标签错误测试方法,该计算系统包括至少一个非易失性存储器、执行非易失性存储器的高速缓存功能的存储器模块以及控制非易失性存储器和存储器模块的处理器模块,该方法包括:在存储器模块的多个高速缓存DRAM中的每个处,作为将对应于地址的标签与存储在相对应的高速缓存DRAM中的标签进行比较的结果,生成匹配/不匹配比特;确定匹配比特计数是否大于“0”并且不匹配比特计数是否大于“0”;以及当匹配比特计数大于“0”并且不匹配比特计数大于“0”时,通过多数表决根据匹配/未匹配比特确定高速缓存命中/未命中。
根据实施例的另一方面,一种存储器模块,包括;存储标签和对应于标签的数据的多个高速缓存DRAM,以及接收命令和地址并控制高速缓存DRAM的注册的连接设备。高速缓存DRAM中的每个包括:标签比较器,其将存储的标签与对应于该地址的标签进行比较,并且输出对应于比较结果的匹配/不匹配比特;以及缓冲器电路,其响应于高速缓存命中/未命中信息,输出对应于命令的数据。高速缓存命中/未命中信息是根据对从高速缓存DRAM输出的匹配/不匹配比特的多数表决确定的值。
根据实施例的另一方面,一种计算系统,包括:通过使用多数表决根据匹配/未匹配比特生成高速缓存命中/未命中信息的处理器,以及通过第一存储器通道连接到处理器的存储器模块。存储器模块包括:存储标签和数据的多个高速缓存DRAM,以及接收命令和地址并且控制高速缓存DRAM的注册的连接设备。高速缓存DRAM中的每个包括:标签比较器,其将存储的标签与对应于该地址的标签进行比较,并且输出对应于比较结果的匹配/不匹配比特;以及缓冲器电路,其响应于高速缓存命中/未命中信息输出对应于命令的数据。
附图说明
通过参考以下附图的以下描述,上述和其它目的和特征将变得明显,其中除非另有说明,否则相同的附图标记贯穿各个附图表示相同的部件,并且附图中:
图1是示出根据本发明构思的实施例的计算系统的框图;
图2是示出根据本发明构思的实施例的存储器模块的框图;
图3是示出根据本发明构思的实施例的高速缓存DRAM的图;
图4是用于描述根据本发明构思的实施例的当发生高速缓存命中时的计算系统的读取操作的示例的梯形图;
图5是用于描述根据本发明构思的实施例的当发生高速缓存未命中时的计算系统的读取操作的示例的梯形图;
图6是用于描述根据本发明构思的实施例的确定存储器模块的标签错误的方法的图;
图7是示出根据本发明构思的实施例的计算系统中的标签错误测试操作的流程图;
图8是示出根据本发明构思的实施例的计算系统的处理器中的写入操作的流程图;
图9是示出根据本发明构思的实施例的计算系统的存储器模块中的写入操作的示例的流程图;
图10是示出根据本发明构思的另一实施例的计算系统的框图;
图11是示出图10所示的存储器控制器的实施例的图;
图12是示出图10所示的存储器模块的实施例的图;
图13是示出根据本发明构思的另一实施例的计算系统的框图;以及
图14A、图14B、图14C和图14D是示出具有与存储器通道的各种连接的计算系统的图;
图15是示出根据本发明构思的一些实施例的计算系统的图;以及
图16是示出根据本发明构思的一些实施例的数据服务器系统的框图。
具体实施方式
本发明公开了使用高速缓存存储器设备(例如,DRAM)的存储器模块的配置以及标签错误检测和恢复方法。这里,可能能够通过使用标签或绝对地址来访问高速缓存存储器设备。在实施例中,构成存储器模块的所有存储器设备可以分别用高速缓存存储器设备实现,或者存储器设备中的一些可以分别用高速缓存存储器设备实现。在实施例中,高速缓存存储器设备可以用作诸如Intel 3D-Xpoint或NVDIMM-P的高容量非易失性存储器(NVM)的高速缓存,并且可以在安装在DDRx存储器通道中的同时进行操作。
在实施例中,当存储器模块采用多个高速缓存存储器设备实现时,可以通过使用从存储器控制器MC发送的标签比较信息(匹配/不匹配比特)执行多数表决,检测其中发生标签错误的高速缓存存储器设备。如果构成存储器模块的高速缓存存储器设备中的每个的高速缓存命中计数超过阈值,则其中发生高速缓存未命中的高速缓存存储器设备被确定为发生标签错误。存储器控制器MC可以通过使用绝对地址再次对其中发生标签错误的高速缓存存储器设备执行读取或写入操作来恢复标签错误。
图1是示出根据本发明构思的实施例的计算系统10的框图。参考图1,计算系统10可以包括处理器(例如,CPU)100、存储器模块(DIMM)200和非易失性存储器模块(NVDIMM)300。
在实施例中,处理器100可以包括用于管理存储器模块200和非易失性存储器模块300的存储器控制器120。
在实施例中,存储器控制器120可以包括命中/未命中确定器122,其接收指示标签命中的至少一个匹配比特或指示标签不匹配的至少一个不匹配比特,并且通过多数表决确定高速缓存命中或高速缓存未命中。这里,匹配/不匹配比特可以从存储器模块200发送。
在实施例中,当对应于匹配/不匹配比特的匹配比特计数大于对应于不匹配比特的不匹配比特计数时,命中/未命中确定器122可确定高速缓存命中。相反,当匹配比特计数不大于不匹配比特计数时,命中/未命中确定器122可以确定高速缓存未命中。
在另一实施例中,在匹配比特计数不小于特定值的情况下,命中/未命中确定器122可以确定发生高速缓存命中;在不匹配比特计数小于特定值的情况下,命中/未命中确定器122可以确定发生高速缓存未命中。
在实施例中,命中/未命中确定器122可基于匹配/不匹配比特来确定是否存在标签错误。例如,当匹配/不匹配比特是相同的比特(例如,“1”或“0”)时,可以确定存在标签错误。
在实施例中,当存在标签错误时,命中/未命中确定器122可以知道存储器模块200的生成标签错误的物理位置的信息(例如,高速缓存块ID),并且可以将该信息包括在输出到存储器模块200的标签错误结果中。
存储器模块200可以通过DDR接口连接到处理器100。在实施例中,存储器模块200可以包括至少一个DRAM。在实施例中,存储器模块200可以作为非易失性存储器模块300的高速缓存存储器进行操作。
在实施例中,存储器模块200可以包括存储数据和对应于数据的标签的多个高速缓存块201。在实施例中,高速缓存块201中的每个可以用DRAM实现。
在实施例中,存储器模块200可以包括至少一个标签比较器202,其确定是否存在与输入地址ADDR相对应的标签。例如,标签比较器202可以将从高速缓存块201输出的标签与对应于地址ADDR的值进行比较,并且可以输出匹配/不匹配比特作为比较结果。在实施例中,当存储在高速缓存块201中的每个的标签中不存在错误时,从高速缓存块201输出的标签可以彼此相同。相反,当存储在高速缓存块201中的每个的标签中存在错误时,从高速缓存块201输出的标签可以彼此不同。
在实施例中,存储器模块200可以基于来自处理器100的高速缓存命中/未命中信息来确定是否将存储在数据缓冲器(未示出)中的数据输出到处理器100。例如,当发生高速缓存命中时,存储器模块200可以输出存储在数据缓冲器中的数据。相反,当发生高速缓存未命中时,存储器模块200可以不输出存储在数据缓冲器中的数据。
在实施例中,存储器模块200可以基于与高速缓存命中/未命中信息一起发送的标签错误结果来校正相对应的高速缓存块的标签错误。这里,标签错误结果可以包括高速缓存块的生成标签错误的位置的信息。
在实施例中,当标签错误不可校正时,存储器模块200可以向处理器100的存储器控制器120发送相关信息。
在实施例中,存储器模块200可以基于正常高速缓存块(不存在标签错误的高速缓存块)的位置信息来访问其中生成标签错误的高速缓存块。
非易失性存储器模块300可以通过DDR接口连接到处理器100。同时,图1中所示的非易失性存储器模块300基于DDR接口连接到处理器100,但是本发明构思的实施例可以不限于此。根据本发明构思的实施例,非易失性存储器模块300可以通过除DDR接口之外的各种通信接口连接到处理器100。
非易失性存储器模块300可以用作处理器100的工作存储器。非易失性存储器模块300可以包括至少一个非易失性存储器。
根据本发明构思的实施例,计算系统10可以通过包括处理器100来·改进当生成标签错误时存储器模块200的高速缓存操作的性能,所述处理器100在存储器模块200中执行标签比较,并且基于多数表决对作为标签比较结果获得的匹配/不匹配比特确定高速缓存命中/高速缓存未命中。
此外,根据本发明构思的实施例,计算系统10可以通过在生成标签错误时使用标签错误结果,通过选择适当的操作来防止标签错误传播到整个系统。因此,可能能够改进系统的性能。
图2是示出根据本发明构思的实施例的存储器模块200的框图。参考图2,存储器模块200可以包括多个高速缓存DRAM 211、212、213和214。高速缓存DRAM 211、212、213和214可以作为非易失性存储器模块300的高速缓存(参考图1)进行操作。同时,在图2中示出了四个高速缓存DRAM 211、212、213和214。然而,应当理解,包括在存储器模块200中的高速缓存DRAM的数量不限于此。
在实施例中,高速缓存DRAM 211、212、213和214可以被实现为基于命令CMD/地址ADDR执行输入/输出操作(例如,写入/读取操作)。
在实施例中,高速缓存DRAM 211、212、213和214中的每个可以利用双端口DRAM来实现。例如,一个端口可以连接到处理器100的数据路径,并且另一个端口可以连接到非易失性存储器模块300的数据路径。
在实施例中,高速缓存DRAM 211、212、213和214中的每个可以被实现为存储数据和与数据相对应的标签。在实施例中,高速缓存DRAM 211、212、213和214可以存储相同的标签,并且对应于标签的不同数据可以分别存储在高速缓存DRAM 211、212、213和214中。也就是说,对应于相同标签的不同的数据可以分别存储在高速缓存DRAM 211、212、213和214中。
在实施例中,高速缓存DRAM 211、212、213和214中的每个可以包括标签比较器TAGCMP。在实施例中,在高速缓存DRAM 211、212、213和214中的每个中,标签比较器TAG CMP可以将存储在相对应的高速缓存DRAM中的标签与对应于从处理器100接收的地址的标签进行比较,并且可以输出匹配/不匹配比特作为比较结果。
在实施例中,存储器模块200还可以包括数据缓冲器DB或注册的连接设备RCD。在实施例中,存储器模块200可以用DDR系列来实现。例如,存储器模块200可以被实现为满足DDR4E规范。
在实施例中,数据缓冲器DB可以分别连接到高速缓存DRAM 211、212、213和214,并且可以被实现为将从处理器100接收的数据发送到高速缓存DRAM 211、212、213和214,或者将从高速缓存DRAM 211、212、213和214输出的数据发送到处理器100。
在实施例中,数据缓冲器DB中的每个可以被实现为适合于DDR接口标准。例如,数据缓冲器DB中的每个可以被实现为输入和输出八个数据信号和两个数据选通信号。尽管在图2中未示出,但是数据缓冲器DB中的每个可以响应于缓冲器命令将从处理器100输入的数据输出到相对应的高速缓存DRAM。在实施例中,数据缓冲器DB中的每个可以用先进先出(FIFO)存储器或双端口SRAM来实现。
在实施例中,注册的连接设备RCD可以被实现为响应于从处理器100接收的命令CMD和地址ADDR来控制存储器模块200的输入/输出操作。
在实施例中,注册的连接设备RCD可以从处理器100接收标签错误结果,并且可以基于特定策略来管理/控制生成标签错误的高速缓存DRAM。例如,注册的连接设备RCD可以接收标签错误结果,并且可以控制生成标签错误的相对应的高速缓存DRAM,使得标签错误被校正。
在实施例中,注册的连接设备RCD可以指示生成标签错误的高速缓存DRAM内部地校正标签错误。为此,高速缓存DRAM可以在其中包括纠错电路。在另一实施例中,注册的连接设备RCD可以将未生成标签错误的高速缓存DRAM的标签值更新到生成标签错误的高速缓存DRAM。
同时,根据本发明构思的实施例,存储器模块200的注册的连接设备RCD可以基于标签错误结果单独管理高速缓存DRAM。然而,本发明构思的实施例可以不限于此。根据本发明构思的实施例,存储器模块200还可以被实现为从每个高速缓存DRAM直接接收标签错误结果,并且基于所生成的标签错误来管理高速缓存DRAM。
图3是示出根据本发明构思的实施例的高速缓存DRAM的图。参考图3,高速缓存DRAM 211可以包括第一存储单元阵列211-1、第二存储单元阵列211-2、行解码器211-3、列解码器和读出放大器211-4、标签比较器211-5以及缓冲器电路211-6。
在实施例中,第一存储单元阵列211-1可以包括存储高速缓存标签的多个第一DRAM单元。第一DRAM单元中的每个可以对应于任何一个字线WL和任何一个列选择线CSL_Tag。在实施例中,在多路方案中,第一存储单元阵列211-1可以存储多个高速缓存的标签。
在实施例中,第二存储单元阵列211-2可以包括存储与标签相对应的数据的多个第二DRAM单元。第二DRAM单元中的每个可以对应于任何一个字线WL和任何一个列选择线CSL_data。
同时,第一存储单元阵列211-1的第一DRAM单元和第二存储单元阵列211-2的第二DRAM单元连接到任一个字线WL。然而,高速缓存DRAM 211的配置不总是需要限于此。根据本发明构思的实施例,高速缓存DRAM 211可以包括与第一存储单元阵列211-1的第一DRAM单元连接的第一字线,以及与第二存储单元阵列211-2的第二DRAM单元连接的第二字线。这里,第二字线可以不同于第一字线。
行解码器211-3可以响应于输入地址选择(激活)多个字线中的任何一个。
列解码器和读出放大器211-4可以被实现为从对应于字线WL和列选择线的DRAM单元读取数据,或者在DRAM单元中写入数据。列解码器和读出放大器211-4可以被实现为响应于列地址,激活对应于第一存储单元阵列211-1的第一列选择线CSL_Tag和对应于第二存储单元阵列211-2的第二列选择线CSL_Data。例如,列解码器和读出放大器211-4可以响应于列地址,激活连接到第一DRAM单元的第一列选择线CSL_Tag和连接到第二DRAM单元的第二列选择线CSL_Data,并且可以从第一DRAM单元读取数据或从第二DRAM单元读取对应于标签的高速缓存数据。
标签比较器211-5可以被实现为将接收的标签信息(与输入地址相关联的信息,例如索引和偏移)与存储的标签进行比较。在实施例中,标签比较器211-5可以根据模式寄存器组(mode register set,MRS)的设置被激活。为了便于描述,在图3中实施例被示出为响应于对应于MRS设置的高速缓存模式信息来激活标签比较器211-5。在另一实施例中,可以在制造存储器模块200时根据物理方式(例如,熔丝切割(fuse cutting)或电熔丝选择(e-fuse selection))来激活标签比较器211-5。
在实施例中,标签比较器211-5的输出值——即,匹配/不匹配比特——可以通过至少一个引脚输出到外部。
在实施例中,缓冲器电路211-6可以在输入/输出操作中缓冲数据。例如,缓冲器电路211-6可以缓冲数据,直到在写入操作中完成标签错误的检测为止。在实施例中,缓冲器电路211-6可以在恢复标签错误之后对缓冲的数据提交写入操作。在这种情况下,可以防止标签错误传播到存储器模块200或非易失性存储器模块300(参考图1)。
在实施例中,缓冲器电路211-6可以被实现为基于在读取操作中从处理器100发送的高速缓存命中/未命中信息来输出数据。
同时,根据本发明构思的实施例,高速缓存DRAM 211还可以包括纠错(ECC)逻辑211-7。在实施例中,纠错逻辑211-7可以内部地检测和校正标签或数据的错误。在实施例中,对于纠错操作,第一存储单元阵列211-1可以存储与标签或数据相对应的奇偶校验。
图4是用于描述根据本发明构思的实施例的当发生缓存命中时计算系统10的读取操作的示例的梯形图。下面,将参照图4描述读取操作。处理器100可以向存储器模块(DIMM)200发送读取命令Read CMD和地址。存储器模块200的高速缓存DRAM 211、212、213和214(参考图2)的标签比较器TAG CMP可以通过将对应于地址的标签信息与存储在其中的标签进行比较来输出匹配/不匹配比特,并且匹配/不匹配比特可以发送到处理器100。
处理器100的命中/未命中确定器120(参考图1)可以基于匹配/不匹配比特,确定是否发生高速缓存命中/未命中。同时,可以执行用于确定标签中是否存在错误的标签错误测试操作。可以生成关于其中存在错误的高速缓存DRAM的信息作为标签错误测试结果。如果发生高速缓存命中并且基于匹配/不匹配比特确定不存在标签错误,则可以完成对接收到的数据的读取操作。相反,如果确定发生高速缓存命中并且存在标签错误,则处理器100可以将关于高速缓存命中和标签错误结果的信息发送到存储器模块200。
存储器模块200可以接收高速缓存命中信息和标签错误结果,并且可以将数据输出到处理器100。在实施例中,如果不存在标签错误,则可以将对应于标签的数据输出到处理器100。在实施例中,如果存在标签错误,则可以输出与其中存在标签错误的高速缓存DRAM的标签相对应的数据以及与其中存在标签错误的高速缓存DRAM的标签相对应的数据。之后,在存在标签错误的高速缓存DRAM的情况下,可以校正标签错误。在校正标签错误之后,可以完成读取操作。
图5是用于描述根据本发明构思的实施例的当发生高速缓存未命中时计算系统10的读取操作的示例的梯形图。参考图5,读取操作与图4的读取操作相同,直到处理器100被提供有匹配/不匹配比特为止。
处理器100的命中/未命中确定器120(参考图1)可以基于匹配/不匹配比特的多数表决来确定是否发生高速缓存命中/未命中。存储器模块200可以接收高速缓存未命中信息,并且可以向非易失性存储器模块(NVDIMM)300发送非易失性存储器读取命令Read_NVMCMD。非易失性存储器模块300可以读取与非易失性存储器读取命令Read_NVM CMD和地址相对应的数据,并且可以将读取的数据发送到存储器模块200。存储器模块200可以将从非易失性存储器模块300传送的数据发送到处理器100。在这种情况下,存储器模块200可以存储对应于地址的标签和数据。之后,可以完成读取操作。
图6是用于描述根据本发明构思的实施例的确定存储器模块200的标签错误的方法的图。在实施例中,高速缓存DRAM 211、212、213和214在高速缓存时存储与地址相对应的相同标签。然而,随着操作环境的变化,任何一个高速缓存DRAM(例如,213)的标签可能变得不同于其它高速缓存DRAM(例如,211、212和214)的标签。也就是说,高速缓存DRAM 213的标签可能被破坏。在这种情况下,作为当请求读取/写入操作时的标签比较结果,高速缓存DRAM 213可以输出不匹配比特,并且剩余的高速缓存DRAM 211、212和214可以输出匹配比特。这里,匹配比特和不匹配比特可以彼此互补。例如,匹配比特可以是“1”,而不匹配比特可以是“0”。替代地,匹配比特可以是“0”,而不匹配比特可以是“1”。在实施例中,根据多数表决,存储器模块200的标签比较结果可以指示高速缓存命中。因此,能够知道在输出不匹配比特的高速缓存DRAM 213的标签中存在错误。
图7是示出根据本发明构思的实施例的计算系统中的标签错误测试操作的流程图。将参考图1至图7描述测试标签错误的处理。图1中所示的命中/未命中确定器120可以确定匹配比特计数是否大于“0”,并且不匹配比特计数是否大于“0”(S110)。
如果匹配比特计数大于“0”并且不匹配比特计数大于“0”,则可以确定匹配比特计数是否大于或等于预定值PDV(S120)。这里,匹配比特计数大于“0”并且不匹配比特计数大于“0”的情况可以对应于存在标签错误的情况。在实施例中,预定值PDV可以是不小于与包括在存储器模块200中的高速缓存块的数量的一半相对应的值的整数。
如果匹配比特计数大于或等于预定值PDV,则可以确定发生了具有标签错误的高速缓存命中(S131)。如果匹配比特计数小于预定值PDV,则可以确定发生了具有标签错误的高速缓存未命中(S132)。
此外,如果匹配比特计数为“0”或不匹配比特计数为“0”,则可以确定不存在标签错误(S133)。因此,可以根据所有匹配/不匹配比特来确定高速缓存命中,并且可以根据所有不匹配比特来确定高速缓存未命中。
图8是示出根据本发明构思的实施例的计算系统的处理器中的写入操作的流程图。参考图1至图8,存储器控制器120的写入操作可以在计算系统10的处理器100中如下进行。
存储器控制器120可以向存储器模块(DIMM)200发送用于写入操作的命令CMD、地址和数据(S210)。之后,存储器控制器120可以从存储器模块200的对应于地址的高速缓存块201接收匹配/不匹配比特(S220)。之后,可以确定标签错误测试结果是否指示存在标签错误(S230)。
如果存在标签错误,则可以手动执行写入操作。例如,存储器控制器120可以通过使用其中不存在标签错误的高速缓存块的信息——即绝对地址——来访问其中存在标签错误的高速缓存块。由此,可以在其中存在标签错误的高速缓存块中写入相对应的数据(S240)。在实施例中,当手动执行写入操作时,可以停用(deactivate)其中生成标签错误的高速缓存块的标签比较器。相反,如果不存在标签错误,则可以提交(或执行)写入操作(S245)。
图9是示出根据本发明构思的实施例的计算系统的存储器模块中的写入操作的示例的流程图。参考图1至图9,存储器模块200的写入操作可以在计算系统10中如下进行。
存储器模块200可以从存储器控制器120接收写入命令、地址和数据(S310)。写入数据可以由数据缓冲器211-6(参考图3)缓冲(S320)。作为将对应于地址的标签与存储的标签进行比较的结果,匹配/不匹配比特可以发送到存储器控制器120(S330)。之后,可以从存储器控制器120接收指示是否存在标签错误的标签错误结果(S340)。
如果存在标签错误,则可以手动执行写入操作(S360)。例如,可以基于接收的绝对地址或其中发生高速缓存命中而没有标签错误的高速缓存DRAM的信息,对生成标签错误的高速缓存DRAM执行写入操作。在这种情况下,可以在恢复标签错误之后对缓冲的写入数据执行写入操作。相反,如果不存在标签错误,则可以提交(或执行)写入操作(S365)。
同时,根据本发明构思的实施例,计算系统10的存储器控制器120还可以包括校正数据的错误的纠错逻辑。
图10是示出根据本发明构思的另一实施例的计算系统20的框图。参考图10,计算系统20可以包括处理器100a、存储器模块(DIMM)200a和非易失性存储器模块(NVDIMM)300。
与图1的处理器100相比,图10的处理器100a还可以包括纠错(ECC)逻辑124。除了纠错逻辑124之外,处理器100a的剩余元件与图1的处理器100的剩余元件相同。纠错逻辑124可以被实现为基于数据和对应于数据的奇偶校验来校正数据的错误。
此外,与图1的存储器模块200相比,图10所示的存储器模块200a还可以包括奇偶校验区域203,其存储纠错所需的奇偶校验。除了奇偶校验区域203之外,存储器模块200a的剩余元件与图1的存储器模块200的剩余元件相同。
图11是示出图10所示的存储器控制器120a的实施例的图。参考图11,存储器控制器(MC)120a可以包括接口电路(PHY)121、命中/未命中确定器122、纠错逻辑124、调度器126和请求队列128。
接口电路121可以被实现为通过信道与存储器模块200a通信。在实施例中,接口电路121可以将对应于读取/写入操作的命令CMD和地址ADDR输出到存储器模块200a。
在实施例中,接口电路121可以从存储器模块200a接收匹配/不匹配比特、元数据、块标识符信息等。这里,匹配/不匹配比特可以是高速缓存块中的标签比较器的结果值。这里,元数据可以是指示高速缓存数据是否有效的数据。在实施例中,接口电路121可以从存储器模块200a接收数据和奇偶校验以及将数据和奇偶校验输出到存储器模块200a。
命中/未命中确定器122可通过使用所接收的匹配/未匹配比特来确定存储器模块200a的高速缓存命中或高速缓存未命中。同时,命中/未命中确定器122可以确定是否存在标签错误。纠错逻辑124可以通过使用接收的数据和奇偶校验来校正数据的错误。调度器126可以被实现为基于预定策略处理多个请求。例如,调度器126可以决定请求的优先级。请求队列128可以被实现为存储从处理器100a请求的读取队列或写入队列。
图12是示出图10所示的存储器模块200a的实施例的图。参考图12,与图2的存储器模块200相比,存储器模块200a还可以包括用于奇偶校验的高速缓存DRAM 215。除了高速缓存DRAM 215之外,存储器模块200a的剩余元件与图2的存储器模块200的剩余元件相同。
在实施例中,存储器模块200a的数据比特的数量可以是“64”,而存储器模块200a的奇偶校验比特数量可以是“8”。然而,应当理解,数据比特的数量和奇偶校验比特的数量不限于此。
同时,在图1至图12中,存储器控制器MC执行基于匹配/不匹配比特的多数表决来确定高速缓存命中/未命中的操作。然而,本发明构思的实施例可以不限于此。例如,可以在存储器模块内执行确定高速缓存命中/未命中的操作。
图13是示出根据本发明构思的另一实施例的计算系统30的框图。参考图13,计算系统30与计算系统20的不同之处可以在于命中/未命中确定器204被包括在存储器模块200b中。在实施例中,命中/未命中确定器204可以基于匹配/不匹配比特的多数表决来确定是否发生高速缓存命中/未命中。在实施例中,命中/未命中确定器204可以在图2所示的注册的连接设备RCD中实现。
同时,根据本发明构思的实施例,计算系统可以被实现为就存储器通道而言具有各种结构。
图14A、图14B、图14C和图14D是示出具有与存储器通道的各种连接的计算系统的图。
参考图14A,处理器可以通过一个存储器通道CH1连接到DIMM(高速缓存DRAM)和非易失性存储器模块NVDIMM。也就是说,存储器模块DIMM和非易失性存储器模块NVDIMM可以共享存储器通道。在实施例中,即使存储器模块DIMM和非易失性存储器模块NVDIMM连接到一个存储器通道CH1,存储器模块DIMM和非易失性存储器模块NVDIMM也可以分别插入不同的插槽中。
参考图14B,存储器模块DIMM可以通过第一存储器通道CH1连接到处理器,并且非易失性存储器模块NVDIMM可以通过不同于第一存储器通道CH1的第二存储器通道CH2连接到处理器。
参考图14C,存储器模块DIMM可以通过存储器通道CH1连接到处理器。在实施例中,非易失性存储器模块NVDIMM可以直接连接到存储器模块DIMM,而不使用存储器通道CH1。例如,存储器模块DIMM可以被实现为具有双端口。一个端口可以连接到存储器通道CH1,并且另一个端口可以连接到非易失性存储器模块NVDIMM。
在实施例中,非易失性存储器模块NVDIMM可以可选地通过存储器通道CH1连接到处理器。
参考图14D,处理器可以通过存储器通道CH1连接到非易失性存储器模块NVDIMM。这里,非易失性存储器模块NVDIMM还可以包括执行上述DIMM的高速缓存功能的高速缓存DRAM。在实施例中,非易失性存储器可以布置在非易失性存储器模块NVDIMM的前部,并且高速缓存DRAM可以布置在其后部。在实施例中,非易失性存储器模块NVDIMM可以用NVDIMM-P来实现。
根据本发明构思的一些实施例的计算系统还可以包括根据DDR-T(事务)接口的非易失性存储器。
图15是示出根据本发明构思的一些实施例的计算系统40的图。参考图15,计算系统40可以包括处理器41、存储器模块(DIMM)42、非易失性存储器模块NVDIMM 43(高速缓存DRAM)和非易失性存储器(NVM)43,例如PRAM。
图1到图14所示的处理器41和存储器模块42可以根据关于匹配/不匹配比特的多数表决来确定高速缓存命中/未命中,检测或恢复标签错误以及根据标签错误的结果不同地执行读/写入操作。
非易失性存储器43可以根据DDR-T接口输入/输出数据。这里,存储器模块42可以被配置为执行非易失性存储器43的高速缓存功能。在一些实施例中,非易失性存储器43可以是3D-Xpoint存储器。
在包括DRAM和3D-Xpoint(PRAM)/NAND的分层(tier)延迟结构的存储器系统中,如果标签和元数据被存储在快速存储器分层(例如DRAM)中作为存储器系统中的高速缓存,则能够在没有定时开销的情况下配置集合相关(set-associative)高速缓存。结果,可以改进计算系统的性能。
图16是示出根据本发明构思的一些实施例的数据服务器系统50的框图。参考图16,数据服务器系统50可以包括相关数据库管理系统(RDBMS)51、高速缓存服务器52以及应用服务器53和浏览器。
高速缓存服务器52可以与来自相关数据库管理系统51的禁用通知一致地维护和删除彼此不同的一对键和值。
RDBMS 51、高速缓存服务器52和应用服务器53中的至少一个可以被配置为包括参考图1至图15的存储器模块DIMM或存储器控制器MC。
然而,本发明构思的实施例可以不限于此。同时,本发明构思的实施例可以应用于使用DRAM作为非易失性存储器的高速缓存的所有种类的计算系统。
同时,将主要关于高速缓存标签恢复描述上述计算系统。根据本发明构思的实施例,高速缓存存储器设备可以作为集合相关高速缓存进行操作。在这种情况下,高速缓存存储器设备可以比较多个标签,并且可以向存储器控制器MC发送其中发生高速缓存命中的高速缓存块的位置(例如,块ID)。需要知道其中发生高速缓存命中的高速缓存块的位置,以恢复标签错误。为此,当发生高速缓存命中时,高速缓存存储器设备可以将其中发生高速缓存命中的高速缓存块的位置(例如,在4路集合相关高速缓存中的0到3中的任何一个)发送到存储器控制器MC。存储器控制器可以通过使用多数表决结果和块位置,对其中生成命中错误的高速缓存块再次执行读取或写入操作。
根据实施例,高速缓存存储器设备可以包括存储器内纠错/检测逻辑(例如,存储器内ECC逻辑),并且可以存储可靠性数据(例如,奇偶校验、CRC或校验和)。在实施例中,存储在高速缓存存储器设备中的标签、元数据(例如,有效比特和脏比特(dirty bit))和数据可以由可靠性数据和存储器内ECC逻辑保护。
一般来说,数据可以与奇偶校验信息一起由存储器控制器MC的ECC逻辑保护。然而,由于标签和元数据不与数据一起发送到存储器控制器MC,因此常规的存储器设备不能保护标签和元数据。相比之下,根据本发明构思的实施例,高速缓存存储器设备可以通过存储器内纠错/检测来恢复存储在高速缓存存储器设备中的标签和元数据。
根据实施例,存储器模块可以存储标签和元数据,并且可以执行存储器内标签比较。存储器模块可以用标签高速缓存存储器设备和仅存储数据的数据高速缓存存储器设备的组合来实现。
在实施例中,存储器模块的注册的连接设备RCD可以从存储器控制器MC接收标签和命令/地址CA。
在实施例中,标签高速缓存存储器设备可以通过使用从注册的连接设备RCD接收的CA和标签来执行存储器内标签比较,并且可以向所有数据高速缓存存储器设备发送高速缓存命中/未命中信息、以及当发生高速缓存命中时指示是否在构成一个集合的两个高速缓存块的任何块中发生高速缓存命中的信息。在实施例中,数据高速缓存存储器设备可以通过使用标签高速缓存存储器设备的信息来执行数据读取和写入操作。
在常规计算系统中,可靠性数据存储在存储器模块中,但是通过存储器控制器MC执行生成可靠性数据以及通过使用可靠性数据检查和恢复数据的错误的操作。然而,由于在读取操作期间存储在高速缓存存储器设备中的标签和元数据不发送到存储器控制器MC,所以传统的计算系统不能恢复在标签和元数据中生成的错误。
相反,根据本发明构思的实施例,用于保护元数据的存储器内ECC逻辑可以在计算系统的高速缓存存储器设备中实现,并且计算系统可以通过该配置存储可靠性数据。在实施例中,标签高速缓存存储器设备可以在生成可校正错误时执行恢复,并且在生成不可校正错误时向存储器控制器MC发送错误发生信息。
根据另一实施例,存储器模块可以利用存储标签和元数据并执行存储器内标签比较的标签高速缓存存储器设备来实现。在实施例中,高速缓存存储器设备可以存储标签、元数据和数据。在实施例中,高速缓存存储器设备可以通过使用命令/地址CA和从注册的连接设备RCD接收的标签自动执行存储器内标签比较来写入或读取数据。
在实施例中,可以通过对每个高速缓存设备的信息高速缓存命中/未命中信息执行多数表决来检测在标签中生成的错误。这里,可以设置用于多数表决的阈值。例如,在由17个(16个数据+1个奇偶校验)高速缓存存储器设备组成的存储器模块中,当存储器控制器MC从八个或更多个高速缓存存储器设备接收到高速缓存命中信号时,多数表决结果可以指示高速缓存命中。在这种情况下,当存在发送高速缓存未命中信号的高速缓存存储器设备时,存储器控制器MC可以通过使用绝对地址再次访问发送高速缓存未命中信号的高速缓存存储器设备来恢复标签错误。
在实施例中,多数表决还可以用于检查和恢复诸如有效比特和脏比特的元数据的错误。
在另一实施例中,多数表决可以在注册的连接设备RCD中执行,并且只有指示是否生成错误的信息可以发送到存储器控制器MC。
根据本发明构思的实施例,高速缓存存储器设备可以提供存储器内ECC功能。在这种情况下,可以对元数据以及标签执行错误检测和恢复。如果在高速缓存存储器设备中不存在多数表决功能,则可以恢复可校正的错误;当生成不可校正的错误时,错误发生信息可以发送到存储器控制器MC。
根据本发明构思的另一实施例,高速缓存存储器设备可以提供存储器内ECC功能和多数表决功能。在这种情况下,可以通过对经由存储器内ECC不可校正的错误执行多数表决来进一步改进系统的可靠性。
同时,当由于标签错误而将写入未命中确定为写入命中时,数据可能存储在异常位置,从而导致系统错误。根据本发明构思的实施例,存储器模块的高速缓存存储器设备可以缓冲写入数据,并且可以在从存储器控制器MC接收到指示不存在错误的信号时提交写入操作。
虽然已经参照示例性实施例描述了本发明构思,但是对于本领域技术人员将明显的是,在不脱离本发明构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述实施例不是限制性的,而是示例性的。
Claims (20)
1.一种计算系统的方法,所述计算系统包括至少一个非易失性存储器、执行所述非易失性存储器的高速缓存功能的存储器模块以及控制所述非易失性存储器和所述存储器模块的处理器,所述方法包括:
在所述处理器处将命令和地址输出到所述存储器模块;
从所述存储器模块接收匹配/不匹配比特,所述匹配/不匹配比特指示将对应于所述地址的标签与存储在所述存储器模块中的标签进行比较的结果;
在所述处理器处通过使用多数表决来根据所述匹配/不匹配比特确定高速缓存命中/未命中;以及
在所述处理器处将所确定的高速缓存命中/未命中的信息输出到所述存储器模块。
2.根据权利要求1所述的方法,其中,所述命令是读取命令,并且
所述方法还包括:
当所述高速缓存命中/未命中信息指示高速缓存命中时,在所述处理器处从所述存储器模块接收数据。
3.根据权利要求1所述的方法,其中,所述命令是读取命令,并且
所述方法还包括:
当所述高速缓存命中/未命中信息指示高速缓存未命中时,响应于所述地址从所述非易失性存储器读取数据;以及
在所述处理器处通过所述存储器模块接收所读取的数据。
4.根据权利要求1所述的方法,其中,所述存储器模块包括存储所述标签和对应于所述标签的数据的多个高速缓存动态随机存取存储器(DRAM),并且
其中,所述高速缓存DRAM中的每个包括标签比较器,所述标签比较器将对应于所述地址的标签与存储的标签进行比较以输出匹配/不匹配比特。
5.根据权利要求1所述的方法,还包括:
确定与所述匹配/未匹配比特相关联的匹配比特计数是否大于“0”并且与其相关联的不匹配比特计数是否大于“0”;
如果匹配比特计数为“0”或不匹配比特计数为“0”,则确定不存在标签错误;以及
当所述匹配比特计数大于“0”并且所述不匹配比特计数大于“0”时,确定存在标签错误。
6.根据权利要求5所述的方法,还包括:
通过使用其中不存在标签错误的高速缓存DRAM的位置信息,在写入操作或读操作中访问其中存在标签错误的高速缓存DRAM。
7.根据权利要求5所述的方法,还包括:
通过使用其中不存在标签错误的高速缓存DRAM的位置信息和奇偶校验来校正其中存在标签错误的高速缓存DRAM的标签错误。
8.根据权利要求7所述的方法,还包括:
在存储器模块处缓冲写入操作中的数据,直到检测到并且校正标签错误为止;以及
在校正标签错误之后写入缓冲的数据。
9.根据权利要求1所述的方法,其中,所述存储器模块存储对应于所述数据或元数据的奇偶校验,并且
其中,所述元数据包括对应于所述标签的高速缓存的有效比特或脏比特,
所述方法还包括:
在所述处理器处通过使用所述奇偶校验来存储所述数据或所述元数据的错误。
10.根据权利要求1所述的方法,其中,所述非易失性存储器通过双倍数据速率事务(DDR-T)接口连接到所述处理器。
11.一种计算系统的标签错误测试方法,所述计算系统包括至少一个非易失性存储器、执行所述非易失性存储器的高速缓存功能的存储器模块以及控制所述非易失性存储器和所述存储器模块的处理器,所述方法包括:
在存储器模块的多个高速缓存DRAM中的每个处,作为将对应于地址的标签与存储在相对应的高速缓存DRAM中的标签进行比较的结果,生成匹配/不匹配比特;
确定匹配比特计数是否大于“0”并且不匹配比特计数是否大于“0”;以及
当所述匹配比特计数大于“0”并且所述不匹配比特计数大于“0”时,通过多数表决根据匹配/不匹配比特确定高速缓存命中/未命中。
12.根据权利要求11所述的方法,还包括:
在所述处理器的存储器控制器处,确定所述匹配比特计数是否大于“0并且所述不匹配比特计数是否大于“0”。
13.根据权利要求11所述的方法,其中,在所述存储器模块处确定所述匹配比特计数是否大于“0”并且所述不匹配比特计数是否大于“0”。
14.根据权利要求11所述的方法,还包括:
当所述匹配比特计数为“0”或所述不匹配比特计数为“0”时,确定不存在标签错误。
15.根据权利要求11所述的方法,还包括:
当所述匹配比特计数大于“0”并且所述不匹配比特计数大于“0”时,确定存在标签错误;以及
当存在标签错误时,通过使用其中不存在标签错误的高速缓存DRAM的位置信息来校正存储在其中存在标签错误的高速缓存DRAM中的标签的错误。
16.一种存储器模块,包括:
多个高速缓存DRAM,被配置为存储标签和对应于所述标签的数据;以及
注册的连接设备,被配置为接收命令和地址并且控制所述高速缓存DRAM,
其中,所述高速缓存DRAM中的每个包括:
标签比较器,被配置为将所存储的标签与对应于所述地址的标签进行比较,并且输出与对应于所述比较结果的匹配/不匹配比特;以及
缓冲器电路,被配置为响应于高速缓存命中/未命中信息而输出对应于所述命令的数据,
其中,所述高速缓存命中/未命中信息是根据对从所述高速缓存DRAM输出的匹配/不匹配比特的多数表决确定的值。
17.根据权利要求16所述的存储器模块,其中,高速缓存DRAM中的每个存储对应于所述标签、数据或元数据的奇偶校验,并且还包括纠错逻辑,所述纠错逻辑被配置为使用奇偶校验来校正所述标签、数据或元数据。
18.根据权利要求17所述的存储器模块,其中,基于多数表决根据所述匹配/未匹配比特检测标签错误,并且
其中,在其中检测到标签错误的高速缓存DRAM的纠错逻辑在标签错误可校正时校正标签错误。
19.根据权利要求17所述的存储器模块,其中,基于多数表决根据所述匹配/未匹配比特检测标签错误,并且
其中,在其中检测到标签错误的高速缓存DRAM的纠错逻辑在标签错误不可校正时向外部输出标签错误信息。
20.根据权利要求16所述的存储器模块,其中,所述高速缓存命中/未命中信息从外部接收或内部地生成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160062280A KR20170131797A (ko) | 2016-05-20 | 2016-05-20 | 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 태그 에러 테스트 방법 |
KR10-2016-0062280 | 2016-05-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423230A true CN107423230A (zh) | 2017-12-01 |
CN107423230B CN107423230B (zh) | 2021-07-13 |
Family
ID=60425614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710357927.4A Active CN107423230B (zh) | 2016-05-20 | 2017-05-19 | 存储器模块、具有其的计算系统及测试其标签错误的方法 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20170131797A (zh) |
CN (1) | CN107423230B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019109299A1 (zh) * | 2017-12-07 | 2019-06-13 | 华为技术有限公司 | 内存访问技术及计算机系统 |
CN110362507A (zh) * | 2018-04-11 | 2019-10-22 | 忆锐公司 | 存储器控制设备和包括该设备的存储器系统 |
CN112289353A (zh) * | 2019-07-25 | 2021-01-29 | 上海磁宇信息科技有限公司 | 一种优化的具有ecc功能的mram系统及其操作方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11635894B2 (en) | 2018-03-16 | 2023-04-25 | Micron Technology, Inc. | Clustered parity for NAND data placement schema |
CN118444854A (zh) | 2018-03-16 | 2024-08-06 | 美光科技公司 | Nand数据放置模式 |
CN109634785B (zh) * | 2018-12-29 | 2024-08-06 | 西安紫光国芯半导体股份有限公司 | 一种兼容nvdimm-p的nvdimm-n装置和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033484A1 (en) * | 2000-02-22 | 2003-02-13 | Mccormick James E. | Method for reducing false hits in a non-tagged, n-way cache |
US20050027932A1 (en) * | 2003-07-31 | 2005-02-03 | Thayer Larry J. | Content addressable memory with redundant stored data |
US20130283126A1 (en) * | 2012-04-20 | 2013-10-24 | Freescale Semiconductor, Inc. | Error detection within a memory |
US20140143635A1 (en) * | 2012-11-21 | 2014-05-22 | Nvidia Corporation | Techniques for storing ecc checkbits in a level two cache |
CN103959236A (zh) * | 2011-11-30 | 2014-07-30 | 英特尔公司 | 用于提供向量横向多数表决功能的指令和逻辑 |
-
2016
- 2016-05-20 KR KR1020160062280A patent/KR20170131797A/ko active IP Right Grant
-
2017
- 2017-05-19 CN CN201710357927.4A patent/CN107423230B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033484A1 (en) * | 2000-02-22 | 2003-02-13 | Mccormick James E. | Method for reducing false hits in a non-tagged, n-way cache |
US20050027932A1 (en) * | 2003-07-31 | 2005-02-03 | Thayer Larry J. | Content addressable memory with redundant stored data |
CN103959236A (zh) * | 2011-11-30 | 2014-07-30 | 英特尔公司 | 用于提供向量横向多数表决功能的指令和逻辑 |
US20130283126A1 (en) * | 2012-04-20 | 2013-10-24 | Freescale Semiconductor, Inc. | Error detection within a memory |
US20140143635A1 (en) * | 2012-11-21 | 2014-05-22 | Nvidia Corporation | Techniques for storing ecc checkbits in a level two cache |
Non-Patent Citations (1)
Title |
---|
HONG J 等: "Exploiting Same Tag Bits to Improve the", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION SYSTEMS, 2015》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019109299A1 (zh) * | 2017-12-07 | 2019-06-13 | 华为技术有限公司 | 内存访问技术及计算机系统 |
US11784756B2 (en) | 2017-12-07 | 2023-10-10 | Huawei Technologies Co., Ltd. | Memory access technology and computer system |
CN110362507A (zh) * | 2018-04-11 | 2019-10-22 | 忆锐公司 | 存储器控制设备和包括该设备的存储器系统 |
CN112289353A (zh) * | 2019-07-25 | 2021-01-29 | 上海磁宇信息科技有限公司 | 一种优化的具有ecc功能的mram系统及其操作方法 |
CN112289353B (zh) * | 2019-07-25 | 2024-03-12 | 上海磁宇信息科技有限公司 | 一种优化的具有ecc功能的mram系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20170131797A (ko) | 2017-11-30 |
CN107423230B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423230A (zh) | 存储器模块、具有其的计算系统及测试其标签错误的方法 | |
US10019367B2 (en) | Memory module, computing system having the same, and method for testing tag error thereof | |
US8560899B2 (en) | Safe memory storage by internal operation verification | |
US8381072B2 (en) | Cache memory, computer system and memory access method | |
US7747933B2 (en) | Method and apparatus for detecting communication errors on a bus | |
CN107924705A (zh) | 存储器装置错误校验和清除模式以及错误透明度 | |
US10360100B2 (en) | Cache memory system and processor system | |
US8910018B2 (en) | Memory with dynamic error detection and correction | |
US7290185B2 (en) | Methods and apparatus for reducing memory errors | |
CN107567645A (zh) | 采用错误计数器和内部地址生成的管芯上ecc | |
US11257563B2 (en) | Apparatus and method for testing a defect of a memory module and a memory system | |
CN106683707A (zh) | 半导体器件 | |
US20130246868A1 (en) | Arithmetic processing apparatus and method of controlling arithmetic processing apparatus | |
US20230205428A1 (en) | Memory module and memory system including row hammer counter chip and operating method thereof | |
US20190056874A1 (en) | System and method for preserving data in volatile memory | |
CN109582494A (zh) | 使用内部存储器设备代码的存储器控制器错误校验过程 | |
NL2029789B1 (en) | Adaptive error correction to improve for system memory reliability, availability, and serviceability (ras) | |
US20200382137A1 (en) | Memory systems and methods of correctng errors in the memory systems | |
US20030107942A1 (en) | Method for operating a semiconductor memory, and semiconductor memory | |
US10140025B2 (en) | Memory system including memory controller and operation method thereof | |
US20230386598A1 (en) | Methods for real-time repairing of memory failures caused during operations, memory systems performing repairing methods, and data processing systems including repairing memory systems | |
US12045468B2 (en) | Storage devices configured to obtain data of external devices for debugging | |
US20140215174A1 (en) | Accessing Memory with Security Functionality | |
US20200210274A1 (en) | Data processing device | |
CN103514058B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |