CN115757196B - 内存、访问内存方法及计算设备 - Google Patents
内存、访问内存方法及计算设备 Download PDFInfo
- Publication number
- CN115757196B CN115757196B CN202211398402.2A CN202211398402A CN115757196B CN 115757196 B CN115757196 B CN 115757196B CN 202211398402 A CN202211398402 A CN 202211398402A CN 115757196 B CN115757196 B CN 115757196B
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- storage medium
- storage unit
- buffer
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 392
- 238000000034 method Methods 0.000 title claims abstract description 28
- 239000008187 granular material Substances 0.000 claims abstract description 145
- 239000002245 particle Substances 0.000 claims description 40
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种内存、访问内存方法及计算设备,涉及计算机领域。方法包括:将内存中的存储介质作为冗余的存储空间,用于存储多个内存颗粒中失效存储单元,当处理器访问内存中失效存储单元时,向存储介质中的存储单元存储写入数据,或从存储介质中读取数据。由于将内存颗粒中失效存储单元的地址信息和数据存储至存储介质中,因此可以在内存颗粒中存储单元失效时,从存储介质中读取该存储单元存储的数据,或者,向存储介质的存储单元中写入数据。进而无需受内存颗粒中冗余行的限制,在多个内存颗粒中存在多个失效的存储单元时,可以到存储介质中对应存储单元中进行访问,还可以节省内存颗粒的存储空间,避免内存颗粒中预留的冗余行占用存储空间。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种内存、访问内存方法及计算设备。
背景技术
为了修复内存颗粒上失效的存储单元,内存中每个团(Bank)或每个团组(BankGroup,BG)包含冗余的行,冗余的行用于存储失效的存储单元所存储的数据。但是,目前内存中每个团或每个团组中冗余的行的数量有限,并且多个团或多个团组中冗余的行无法通用。当内存中每个团或每个团组中存在多个失效的存储单元时,冗余的行无法满足存储多个失效的存储单元的需求。因此,如何确保成功访问失效的存储单元是目前亟需解决的问题。
发明内容
本申请提供一种内存、访问内存方法及计算设备,解决了如何确保成功访问失效的存储单元的问题。
第一方面,提供了一种访问内存的方法,方法包括:根据访问请求确定内存颗粒中存储单元的第一地址,当内存颗粒中该第一地址指示的存储单元失效时,从存储介质中读取该第一地址指示的存储单元存储的数据,或者,向存储介质写入存储到该第一地址指示的存储单元存储的数据。
由于将内存颗粒中失效存储单元的地址信息和数据存储至存储介质中,因此可以在内存颗粒中存储单元失效时,从存储介质中读取该存储单元存储的数据,或者,向存储介质的存储单元中写入数据。进而无需受内存颗粒中冗余行的限制,在多个内存颗粒中存在多个失效的存储单元时,可以到存储介质中对应的存储单元中进行访问,还可以节省内存颗粒的存储空间,避免内存颗粒中预留的冗余行占用存储空间。
结合第一方面,在一种可能的实现方式中,当内存颗粒中第一地址指示的存储单元未失效时,从内存颗粒中读取第一地址指示的存储单元存储的数据,或者,向内存颗粒写入存储到第一地址指示的存储单元存储的数据。
由于内存颗粒中第一地址指示的存储单元未失效,因此存储介质中不存在第一地址指示的存储单元,节省了存储介质中的存储空间,在内存颗粒中第一地址指示的存储单元未失效时,可以对内存颗粒中的存储单元进行读操作或写操作。
结合第一方面,在另一种可能的实现方式中,存储介质包括第一地址指示的存储单元的物理地址和数据。
将第一地址指示的存储单元的物理地址和数据存储在存储介质中,便于在内存颗粒中该存储单元失效时,直接根据该存储单元的物理地址在存储介质中进行读写操作。
结合第一方面,在另一种可能的实现方式中,根据获取的访问请求确定第一地址之前,当内存颗粒中存储单元失效时,将内存颗粒中存储单元的地址信息和数据写入存储介质。
在检测到计算机设备的内存颗粒中存在失效的存储单元时,将失效的存储单元的地址信息和数据存储至存储介质,可以实现成功对存储介质中对应的存储单元进行访问。
结合第一方面,在另一种可能的实现方式中,当存储介质中第一地址指示的存储单元失效时,将存储介质中第一地址指示的存储单元的数据存储至存储介质中的第二地址。
存储介质中的存储单元也会存在失效的情况,当存储介质中存储单元失效时,将该存储单元的地址信息和数据写入该存储介质的第二地址指示的存储单元,当内存颗粒中第一地址指示的存储单元失效时,对存储介质中第二地址指示的存储单元进行访问。进而提高内存的容错性,避免在存储单元失效时,更换内存带来的问题。
第二方面,提供一种内存,内存包括多个内存颗粒和至少一个存储介质。多个内存颗粒连接至少一个存储介质,至少一个存储介质用于存储多个内存颗粒中失效的存储单元内的数据,存储介质包括缓冲器。缓冲器用于当第一地址指示的内存颗粒中存储单元失效时,从存储介质中读取第一地址指示的存储单元存储的数据,或者,向存储介质写入存储到第一地址指示的存储单元存储的数据。
由于将内存颗粒中失效存储单元的地址信息和数据存储至存储介质中,因此可以在内存颗粒中存储单元失效时,从存储介质中读取该存储单元存储的数据,或者,向存储介质的存储单元中写入数据。进而无需受内存颗粒中冗余行的限制,在多个内存颗粒中存在多个失效的存储单元时,可以到存储介质中对应的存储单元中进行访问,还可以节省内存颗粒的存储空间,避免内存颗粒中预留的冗余行占用存储空间。
结合第二方面,在一种可能的实现方式中,缓冲器还用于:当第一地址指示的内存颗粒中存储单元未失效时,从内存颗粒中读取第一地址指示的存储单元存储的数据,或者,向内存颗粒写入存储到第一地址指示的存储单元存储的数据。
由于内存颗粒中第一地址指示的存储单元未失效,因此存储介质中不存在第一地址指示的存储单元,节省了存储介质中的存储空间,在内存颗粒中第一地址指示的存储单元未失效时,可以对内存颗粒中的存储单元进行读操作或写操作。
结合第二方面,在另一种可能的实现方式中,至少一个存储介质还包括译码器,译码器与缓冲器连接,译码器用于根据获取的访问请求确定第一地址,访问请求用于指示对内存中内存颗粒的操作。
存储介质中的译码器可以解析处理器发送的访问请求得到第一地址,以供缓冲器根据第一地址判断内存颗粒中第一地址指示的存储单元是否失效。
结合第二方面,在另一种可能的实现方式中,至少一个存储介质还包括读选择器,缓冲器和读选择器连接,读选择器用于:当第一地址指示的内存颗粒中存储单元失效时,读选择器用于根据缓冲器的指示将缓冲器和读选择器的链路导通,并断开多个内存颗粒和读选择器的链路,基于导通的链路读取缓冲器中第一地址指示的存储单元存储的数据;当第一地址指示的内存颗粒中存储单元未失效时,根据缓冲器的指示将多个内存颗粒和读选择器的链路导通,并断开缓冲器和读选择器的链路,基于导通的链路读取多个内存颗粒中第一地址指示的存储单元存储的数据。
由于内存颗粒中第一地址指示的存储单元失效时,断开多个内存颗粒和读选择器的链路,内存颗粒中失效存储单元存储的数据无法通过存储介质发送至处理器;将缓冲器和读选择器的链路导通,可以将缓冲器中第一地址指示的存储单元存储的数据发送至处理器。因此可以成功从存储介质中读取失效的存储单元的数据。
结合第二方面,在另一种可能的实现方式中,至少一个存储介质还包括写选择器,缓冲器和写选择器连接,写选择器用于:当第一地址指示的内存颗粒中存储单元失效时,写选择器用于根据缓冲器的指示将缓冲器和写选择器的链路导通,并断开多个内存颗粒和写选择器的链路,基于导通的链路向缓冲器中第一地址指示的存储单元写入数据;当第一地址指示的内存颗粒中存储单元未失效时,根据缓冲器的指示将多个内存颗粒和写选择器的链路导通,并断开缓冲器和写选择器的链路,基于导通的链路向多个内存颗粒中第一地址指示的存储单元写入数据。
由于内存颗粒中第一地址指示的存储单元失效时,断开多个内存颗粒和写选择器的链路,无法将处理器发送的数据写入内存颗粒中失效存储单元中;将缓冲器和读选择器的链路导通,可以将处理器发送的数据写入缓冲器中。因此可以成功向存储介质中该存储单元写入数据,避免向内存颗粒中失效的存储单元写入数据,进而避免写入失败或写入的数据无法再次读取。
结合第二方面,在另一种可能的实现方式中,内存还包括时钟芯片,时钟芯片与多个内存颗粒连接,时钟芯片还与至少一个存储介质连接,时钟芯片用于:接收访问请求,并将访问请求发送至多个内存颗粒和至少一个存储介质。
服务器使用的内存一般有两种,即带寄存器的双线内存模块(Registered DualInline Memory Modules,RDIMM)和低负载双列直插式存储模块(Load Reduced DualInline Memory Modules,LRDIMM)。RDIMM和LRDIMM均需要时钟芯片来接收处理器发送的访问请求,并将该访问请求发送给内存颗粒和存储介质,时钟芯片可以使得内存颗粒和存储介质同时接收到该访问请求,进而达到时钟同步的目的。
结合第二方面,在另一种可能的实现方式中,内存包括:一个存储介质,多个内存颗粒连接一个存储介质。
内存中包括的一个存储介质可以连接多个内存颗粒,并存储多个内存颗粒中失效存储单元的地址信息和数据。当多个内存颗粒中任意一个内存颗粒的存储单元失效时,均可以从该存储介质中读取数据,或向该存储介质中写入数据,可以有效的节省内存中的存储空间。
第三方面,提供一种计算设备。所述计算设备包括处理器、内存控制器、内存,所述处理器通过所述内存控制器连接所述内存;所述内存包括时钟芯片、至少一个存储介质、多个内存颗粒,所述时钟芯片与所述多个内存颗粒、所述至少一个存储介质连接,所述多个内存颗粒连接所述至少一个存储介质,所述至少一个存储介质用于存储所述多个内存颗粒中失效的存储单元内的数据;所述存储介质包括缓冲器所述缓冲器用于:
接收第一地址,所述第一地址指示所述多个内存颗粒中存储单元;
在所述第一地址指示的存储单元失效时,从所述存储介质中读取所述第一地址指示的存储单元存储的数据,或者,向所述存储介质中所述第一地址指示的存储单元写入数据。
第四方面,提供一种计算机设备,所述计算机设备包括处理器、通信接口和内存,内存用于存储一组计算机指令、第一地址以及第一地址指示的存储单元中的数据;通信接口用于接收访问请求;处理器用于在根据获取的访问请求确定第一地址之前,当内存颗粒中存储单元失效时,将内存颗粒中存储单元的地址信息和数据写入存储介质,执行如第一方面或第一方面可能的实现方式中任一项所述的方法。
第五方面,提供一种计算机可读存储介质,包括计算机软件指令;当计算机软件指令在计算机中运行时,使得计算机执行如第一方面或第一方面可能的实现方式中任一项所述的方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种实现方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种内存物理结构的示意图;
图2为本申请提供的一种***架构的示意图;
图3为本申请提供的一种内存中存储介质的结构示意图;
图4为本申请提供的一种访问内存方法的流程示意图;
图5为本申请提供的另一种***架构的示意图;
图6为本申请提供的一种计算机设备的结构示意图。
具体实施方式
为方便理解本申请的方案,首先给出相关概念的简要介绍如下。
内存(memory)也称内存储器和主存储器(main memory)。内存是计算机***的重要部件,即外部存储器(或称为辅助存储器)与中央处理器(central processing unit,CPU)进行沟通的桥梁。内存用于暂时存放CPU中的运算数据以及CPU与硬盘等外部存储器交换的数据。例如,计算机开始运行,将需要运算的数据从内存加载到CPU中进行运算,运算完成后,CPU将运算结果存入内存。
依据从大到小的层次结构,内存的物理结构分为通道(channel)、低负载双列直插式存储模块(Load Reduced Dual Inline Memory Modules,LRDIMM)、秩级(rank)、内存颗粒(chip)、团组(bank group)、团(bank)、亚阵列(subarray)、矩阵(mat)、行(row)、列(column)和存储单元(cell)。
计算机***中,一个内存条可以指一个通道。CPU通过内存控制器连接至少一个内存条。例如,CPU连接两个内存条。内存控制器用于控制内存并且负责内存与CPU之间数据交换。另外,一个内存条可以包含一个或两个秩级。
示例地,图1为本申请提供的一种内存物理结构的示意图。CPU130可以通过内存控制器140连接内存110和内存120。内存110可以是指通道0。内存120可以是指通道1。内存110包括秩级111。秩级111可以包括内存110上安装的所有内存颗粒112。例如,秩级111包括8个内存颗粒112,每个内存颗粒112的位宽是8比特(bit)。
每个内存颗粒112包括团组113。团组113可以包括多个团114,每个团就是数据存储的实体。每个团114包括多个亚阵列115。每个亚阵列115包括多个矩阵116。矩阵116包括阵列排布的存储单元119,用于存储数据和读写数据。每个存储单元119由行117和列118决定。
存储单元失效是指内存中内存颗粒的存储单元无法进行正常的读操作、写操作和擦操作中的一种或多种。在内存出厂时可能会存在部分存储单元失效的情况,在存储单元读写功能不正确或者一个存储单元的数据受到其它存储单元的数据或读写操作的影响而发生变化时也会出现存储单元失效的情况。因此,在内存中增加存储介质或替换现有的存储介质,该存储介质用于存储内存颗粒中失效的存储单元的数据。
为了解决如何确保成功访问失效的存储单元问题,本申请实施例提供了一种访问内存方法,即将内存中的存储介质作为冗余的存储空间,用于存储多个内存颗粒中失效的存储单元,当处理器访问内存中失效的存储单元时,向存储介质中的存储单元存储写入数据,或者从存储介质中读取数据。由于存储介质中可以包括静态随机存取存储器,静态随机存取存储器不同的存储空间可以存储不同内存颗粒中失效存储单元的地址信息和数据,可选的,静态随机存取存储器的存储空间可以支持存储一个内存颗粒中失效存储单元的地址信息和数据,也可以存储多个内存颗粒中失效存储单元的地址信息和数据,因此无需受内存颗粒中冗余行的限制,在多个内存颗粒中存在多个失效的存储单元时,可以到存储介质中对应的存储单元中进行访问,还可以节省内存颗粒的存储空间,避免内存颗粒中预留的冗余行占用存储空间。
在一种实施例中,内存中可以增加1个存储介质作为冗余的存储空间,用于存储内存中多个内存颗粒失效的存储单元。内存中也可以增加多个存储介质,多个存储介质分别存储对应的内存颗粒中失效的存储单元。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图2为本申请实施例提供的一种***架构的示意图。该示意图是计算机设备的举例说明。参考图2,计算机设备200可以包括处理器210和内存220。
内存220可以包括时钟芯片221、多个存储介质(例如,第一存储介质2221、第二存储介质2222、第三存储介质2223)和多个内存颗粒(例如,第一内存颗粒2231、第二内存颗粒2232和第三内存颗粒2233)。
时钟芯片221分别与第一存储介质2221、第二存储介质2222、第三存储介质2223、第一内存颗粒2231、第二内存颗粒2232和第三内存颗粒2233连接,用于接收处理器210发送的访问请求,并将访问请求分别发送至多个存储介质和多个内存颗粒。
多个存储介质分别和对应的多个内存颗粒连接。例如第一存储介质2221和第一内存颗粒2231连接,第一内存颗粒2231根据时钟芯片221发送的访问请求指示的存储单元读取数据,将读取的数据发送至第一存储介质2221。
第一存储介质2221用于根据时钟芯片221发送的访问请求指示的存储单元的地址确定第一内存颗粒2231中的存储单元是否失效,当第一内存颗粒2231中访问请求指示的存储单元失效时,断开与第一内存颗粒2231的连接,并从第一存储介质2221中读取访问请求指示的存储单元中的数据,或者,向第一存储介质2221中访问请求指示的存储单元写入数据。当第一内存颗粒2231中访问请求指示的存储单元未失效时,从第一内存颗粒2231中读取访问请求指示的存储单元中的数据,或者,向第一内存颗粒2231访问请求指示的存储单元写入数据。
处理器用于对内存220进行读操作或写操作。处理器210可以运行处理器固件211。处理器固件可以存储在处理器中,也可以存储在单独的非易失性存储器中,处理器210通过处理器固件211将多个内存颗粒中失效的存储单元的物理地址和数据存储至内存颗粒对应的存储介质中。例如,在第一内存颗粒2231的存储单元失效时,将该存储单元的物理地址和数据存储至第一存储介质2221中。
处理器固件211有三种方式将多个内存颗粒中失效的存储单元的物理地址和数据存储至对应的存储介质中。
方式一,在计算机设备上电后,处理器固件211检查基本输入输出***(basicinput output system,BIOS)日志中是否包括存储单元的行地址或列地址,若BIOS日志中存在存储单元的行地址或列地址,表示内存颗粒中该存储单元在计算机设备上一次下电前已失效,将该失效的存储单元的地址信息存储至存储介质的缓冲器中。
方式二,在计算机设备启动过程中执行内存自检程序,以确保计算机设备中的内存可用。内存自检程序可以检测出失效的存储单元,将失效的存储单元的地址信息存储至存储介质的缓冲器中,并将该失效存储单元的地址信息记录至BIOS日志中,以供计算机设备下次启动时使用。
方式三,在计算机设备运行过程中,检测到内存颗粒中失效的存储单元时,将失效的存储单元的地址信息和数据存储至存储介质的缓冲器中,并将该失效存储单元的地址信息记录至BIOS日志中。
在另一种实施例中,存储介质中的存储单元也会存在失效的情况,当存储介质中存储单元失效时,将该存储单元的地址信息和数据写入该存储介质的第二地址指示的存储单元,直至处理器可以从存储介质中对该失效存储单元进行访问。
处理器固件211(也称为处理器固件程序)可以为BIOS、管理引擎(managementengine,ME)、微码或智能管理单元(intelligent management unit,IMU)等固件。需要说明的,本申请实施例对处理器固件的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以处理器固件为BIOS为例进行说明。
图3为本申请实施例提供的一种内存中存储介质的结构示意图。存储介质300可以包括译码器310、缓冲器320、读选择器330、写选择器340和时钟芯片350。
译码器310与缓冲器320连接,译码器310用于根据处理器发送的访问请求确定第一地址,访问请求用于指示对内存颗粒的操作。
缓冲器320还分别与读选择器330和写选择器340连接。缓冲器320可以是静态随机存取存储器(Static Random-Access Memory,SRAM),也可以是动态随机存取内存(DynamicRandom Access Memory,DRAM),在此不做具体限定。
缓冲器320用于接收译码器310解析访问请求得到的第一地址,根据第一地址判断内存颗粒中第一地址指示的存储单元是否失效。
当缓冲器320中包括第一地址指示的存储单元时,表示内存颗粒中第一地址指示的存储单元失效,缓冲器320控制读选择器330导通缓冲器320和读选择器330之间的链路,并断开内存颗粒和读选择器330的链路,进而基于导通的链路从缓冲器320中读取第一地址指示的存储单元存储的数据,或者,缓冲器320控制写选择器340导通缓冲器320和写选择器340之间的链路,并断开内存颗粒和写选择器340的链路,进而基于导通的链路向缓冲器320中第一地址指示的存储单元写入数据。
当缓冲器320中不包括第一地址指示的存储单元时,表示内存颗粒中第一地址指示的存储单元未失效,缓冲器320控制读选择器330断开缓冲器320和读选择器330之间的链路,并导通内存颗粒和读选择器330的链路,进而基于导通的链路将内存颗粒第一地址指示的存储单元存储的数据发送至处理器,或者,缓冲器320控制写选择器340断开缓冲器320和写选择器340之间的链路,并导通内存颗粒和写选择器340的链路,进而基于导通的链路向内存颗粒中第一地址指示的存储单元写入数据。
时钟芯片350与译码器310连接。时钟芯片350用于接收访问请求,并将访问请求发送至多个内存颗粒和译码器310。
本申请实施例描述的***架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
接下来,结合附图对访问内存方法进行详细说明。图4为本申请提供的一种访问内存方法的流程示意图。在这里以图4中所示的译码器310、缓冲器320、读选择器330、写选择器340和时钟芯片350为例进行说明。
步骤410、译码器根据获取的访问请求确定第一地址。
内存中的时钟芯片将接收到的访问请求初步解析后分别发送给存储介质和内存颗粒,存储介质中的译码器对初步解析后的访问请求进一步解析得到第一地址。
在一种实施例中,如图5所示,内存中包括一个存储介质,该存储介质中的缓冲器根据译码器发送的第一地址判断多个内存颗粒中该第一地址指示的存储单元是否失效。
当缓冲器中存储有第一地址时,表示内存颗粒中第一地址指示的存储单元失效。当缓冲器中不存在译码器发送的第一地址时,表示内存颗粒中第一地址指示的存储单元未失效。
由于内存颗粒中的存储单元失效时,将失效的存储单元的地址信息和数据存储至存储介质中,内存颗粒中的存储单元未失效时,未失效的存储单元的地址信息和数据不会存储至存储介质中。因此可以通过存储介质中的缓冲器判断内存颗粒中该第一地址指示的存储单元是否失效,进而确定读取第一地址指示的存储单元存储的数据的存储空间,或者,写入存储到第一地址指示的存储单元存储的数据的存储空间。
在另一种实施例中,内存中包括多个存储介质,且多个存储介质与多个内存颗粒存在对应关系,存储介质中的缓冲器判断其对应的内存颗粒中第一地址指示的存储单元是否失效,多个存储介质根据各自的判断结果响应处理器的访问请求。
步骤420、当内存颗粒中第一地址指示的存储单元失效时,从存储介质中读取第一地址指示的存储单元存储的数据,或者,向存储介质写入存储到第一地址指示的存储单元存储的数据。
当第一地址指示的内存颗粒中存储单元失效时,读选择器用于根据缓冲器的指示将缓冲器和读选择器的链路导通,并断开多个内存颗粒和读选择器的链路;写选择器用于根据缓冲器的指示将缓冲器和写选择器的链路导通,并断开多个内存颗粒和写选择器的链路。
示例的,当处理器发送的访问请求为读操作,且缓冲器中存在第一地址时,表示内存颗粒中第一地址指示的存储单元失效,缓冲器控制读选择器导通缓冲器和读选择器之间的链路,并断开内存颗粒和读选择器的链路,进而基于导通的链路从存储介质的缓冲器中读取第一地址指示的存储单元存储的数据,并将读取的数据发送至处理器。
时钟芯片会将访问请求发送至内存中的存储介质和内存颗粒,存储介质和内存颗粒均会读取第一地址指示的存储单元存储的数据,从内存颗粒中失效的存储单元读取数据可能会导致读取的数据错误或读取失败,由于内存颗粒中第一地址指示的存储单元失效时,断开多个内存颗粒和读选择器的链路,将缓冲器和读选择器的链路导通,可以将缓冲器中第一地址指示的存储单元存储的数据发送至处理器。因此可以成功从存储介质的缓冲器中读取数据,进而避免从内存颗粒中读取到错误的数据或数据读取失败。
在一种实施例中,当处理器发送的访问请求为写操作,且缓冲器中存在第一地址时,表示内存颗粒中第一地址指示的存储单元失效,向存储介质的缓冲器中第一地址指示的存储单元写入数据,并根据缓冲器的指示将缓冲器和写选择器的链路导通,并断开多个内存颗粒和写选择器的链路。
向内存颗粒中失效的存储单元写入数据可能导致写入失败或写入的数据无法再次读取。由于内存颗粒中第一地址指示的存储单元失效时,断开多个内存颗粒和写选择器的链路,避免写入失败;将缓冲器和读选择器的链路导通,可以将处理器发送的数据写入缓冲器中。因此可以避免向内存颗粒中失效的存储单元写入数据,进而避免写入失败或写入的数据无法再次读取。
步骤430、当内存颗粒中第一地址指示的存储单元未失效时,从内存颗粒中读取第一地址指示的存储单元存储的数据,或者,向内存颗粒写入存储到第一地址指示的存储单元存储的数据。
当第一地址指示的内存颗粒中存储单元未失效时,根据缓冲器的指示将多个内存颗粒和读选择器的链路导通,并断开缓冲器和读选择器的链路;根据缓冲器的指示将多个内存颗粒和写选择器的链路导通,并断开缓冲器和写选择器的链路。
示例的,当处理器发送的访问请求为读操作,且缓冲器中不存在第一地址时,表示内存颗粒中第一地址指示的存储单元未失效,缓冲器控制读选择器导通内存颗粒和读选择器之间的链路,并断开存储介质和读选择器的链路,进而基于导通的链路从内存颗粒中读取第一地址指示的存储单元存储的数据,并将读取的数据发送至处理器。
时钟芯片会将访问请求同时发送至内存中的存储介质和内存颗粒,存储介质和内存颗粒均会读取第一地址指示的存储单元存储的数据。由于内存颗粒中第一地址指示的存储单元未失效时,缓冲器中未存储有该存储单元的地址信息和数据,因此断开缓冲器和读选择器的链路,将内存颗粒和读选择器的链路导通,可以将内存颗粒中第一地址指示的存储单元存储的数据发送至处理器。
在一种实施例中,当处理器发送的访问请求为写操作,且缓冲器中不存在第一地址时,表示内存颗粒中第一地址指示的存储单元未失效,向内存颗粒中第一地址指示的存储单元写入数据,并将内存颗粒和写选择器的链路导通,并断开缓冲器和写选择器的链路。
由于内存颗粒中第一地址指示的存储单元未失效时,缓冲器中不存在第一地址指示的存储单元,因此需要断开缓冲器和写选择器的链路,否则无法将处理器发送的数据写入;将内存颗粒和读选择器的链路导通,可以成功将处理器发送的数据写入内存颗粒的存储单元中。
可以理解的是,为了实现上述实施例中功能,计算机包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图6提供了一种计算机设备。图6所示的计算机设备600具体可以用于实现上述图2所示实施例中计算机设备200的功能。
计算机设备600包括总线601、处理器602、通信接口603、存储器604和内存605。处理器602、存储器604、内存605和通信接口603之间通过总线601通信。总线601可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口603用于与外部通信。
其中,处理器602可以为中央处理器(central processing unit,CPU)。处理器602用于发送访问请求,并将内存颗粒中失效的存储单元存储至存储介质中。
存储器604可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器604中存储有可执行代码,处理器602执行该可执行代码以执行前述访问内存的方法。
内存605用于存储暂时存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据。
本申请还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述访问内存的方法。
本申请还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (10)
1.一种内存,其特征在于,所述内存包括:多个内存颗粒,所述多个内存颗粒连接至少一个存储介质,所述多个内存颗粒和所述至少一个存储介质用于接收访问请求,所述访问请求包括第一地址,所述至少一个存储介质用于存储所述多个内存颗粒中失效的存储单元内的数据;所述存储介质包括缓冲器;
所述缓冲器用于接收所述第一地址,所述第一地址指示所述多个内存颗粒中存储单元;
所述缓冲器用于在所述第一地址指示的存储单元失效时,从所述存储介质中读取所述第一地址指示的存储单元存储的数据,或者,向所述存储介质中所述第一地址指示的存储单元写入数据;
所述内存还包括读/写选择器,所述缓冲器和所述读/写选择器连接,所述读/写选择器用于:当所述第一地址指示的存储单元失效时,所述读/写选择器用于根据缓冲器的指示将所述缓冲器和所述读/写选择器的链路导通,并断开所述多个内存颗粒和所述读/写选择器的链路,基于导通的链路读取所述缓冲器中所述第一地址指示的存储单元存储的数据/基于导通的链路向所述缓冲器中所述第一地址指示的存储单元写入数据。
2.根据权利要求1所述的内存,其特征在于,所述至少一个存储介质还包括译码器,所述译码器与所述缓冲器连接,所述译码器用于根据获取的访问请求确定第一地址,所述访问请求用于指示对所述内存中内存颗粒的操作。
3.根据权利要求1-2中任一项所述的内存,其特征在于,所述读选择器用于:
当所述内存颗粒中所述第一地址指示的存储单元未失效时,根据缓冲器的指示将所述多个内存颗粒和所述读选择器的链路导通,并断开所述缓冲器和所述读选择器的链路,基于导通的链路读取所述多个内存颗粒中所述第一地址指示的存储单元存储的数据。
4.根据权利要求1-2中任一项所述的内存,其特征在于,所述写选择器用于:
当所述内存颗粒中所述第一地址指示的存储单元未失效时,根据缓冲器的指示将所述多个内存颗粒和所述写选择器的链路导通,并断开所述缓冲器和所述写选择器的链路。
5.根据权利要求1或2所述的内存,其特征在于,所述内存还包括时钟芯片,所述时钟芯片与所述多个内存颗粒连接,所述时钟芯片还与所述至少一个存储介质连接,所述时钟芯片用于:接收所述访问请求,并将所述访问请求发送至所述多个内存颗粒和所述至少一个存储介质。
6.根据权利要求1所述的内存,其特征在于,所述内存包括:一个存储介质,所述多个内存颗粒连接所述一个存储介质。
7.一种访问内存方法,其特征在于,所述内存包括多个内存颗粒和至少一个存储介质,所述至少一个存储介质连接所述多个内存颗粒,所述多个内存颗粒和所述至少一个存储介质用于接收访问请求,所述访问请求包括第一地址,所述至少一个存储介质用于存储所述多个内存颗粒中失效的存储单元内的数据,包括:
根据获取的访问请求确定所述第一地址,所述访问请求用于指示对所述内存中内存颗粒的操作,所述第一地址为所述内存颗粒中存储单元的物理地址;
当所述内存颗粒中所述第一地址指示的存储单元失效时,从所述存储介质中读取所述第一地址指示的存储单元存储的数据,或者,向所述存储介质写入存储到所述第一地址指示的存储单元存储的数据;
所述存储介质包括缓冲器,所述内存还包括读/写选择器,所述缓冲器和所述读/写选择器连接,所述读/写选择器用于:当所述第一地址指示的存储单元失效时,所述读/写选择器用于根据缓冲器的指示将所述缓冲器和所述读/写选择器的链路导通,并断开所述多个内存颗粒和所述读/写选择器的链路,基于导通的链路读取所述缓冲器中所述第一地址指示的存储单元存储的数据/基于导通的链路向所述缓冲器中所述第一地址指示的存储单元写入数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述内存颗粒中所述第一地址指示的存储单元未失效时,从所述内存颗粒中读取所述第一地址指示的存储单元存储的数据,或者,向所述内存颗粒写入存储到所述第一地址指示的存储单元存储的数据。
9.根据权利要求7-8中任一项所述的方法,其特征在于,所述方法还包括:
当所述存储介质中所述第一地址指示的存储单元失效时,将所述存储介质中所述第一地址指示的存储单元的数据存储至所述存储介质中的第二地址,所述第二地址指示所述存储介质中所述第一地址指示的存储单元。
10.一种计算设备,其特征在于,所述计算设备包括处理器、内存控制器、内存,所述处理器通过所述内存控制器连接所述内存;所述内存包括时钟芯片、至少一个存储介质、多个内存颗粒,所述时钟芯片与所述多个内存颗粒、所述至少一个存储介质连接,所述多个内存颗粒和所述至少一个存储介质用于接收访问请求,所述访问请求包括第一地址,所述多个内存颗粒连接所述至少一个存储介质,所述至少一个存储介质用于存储所述多个内存颗粒中失效的存储单元内的数据;所述存储介质包括缓冲器,所述缓冲器用于:
接收所述第一地址,所述第一地址指示所述多个内存颗粒中存储单元;
在所述第一地址指示的存储单元失效时,从所述存储介质中读取所述第一地址指示的存储单元存储的数据,或者,向所述存储介质中所述第一地址指示的存储单元写入数据;
所述内存还包括读/写选择器,所述缓冲器和所述读/写选择器连接,所述读/写选择器用于:当所述第一地址指示的存储单元失效时,所述读/写选择器用于根据缓冲器的指示将所述缓冲器和所述读/写选择器的链路导通,并断开所述多个内存颗粒和所述读/写选择器的链路,基于导通的链路读取所述缓冲器中所述第一地址指示的存储单元存储的数据/基于导通的链路向所述缓冲器中所述第一地址指示的存储单元写入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211398402.2A CN115757196B (zh) | 2022-11-09 | 2022-11-09 | 内存、访问内存方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211398402.2A CN115757196B (zh) | 2022-11-09 | 2022-11-09 | 内存、访问内存方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115757196A CN115757196A (zh) | 2023-03-07 |
CN115757196B true CN115757196B (zh) | 2023-09-01 |
Family
ID=85368515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211398402.2A Active CN115757196B (zh) | 2022-11-09 | 2022-11-09 | 内存、访问内存方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757196B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115932532B (zh) * | 2023-03-09 | 2023-07-25 | 长鑫存储技术有限公司 | 故障存储单元的物理地址的存储方法、装置、设备及介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1282026A (zh) * | 1999-07-26 | 2001-01-31 | 神基科技股份有限公司 | 动态随机存取存储器自动切换控制装置 |
CN101095113A (zh) * | 2004-12-29 | 2007-12-26 | 英特尔公司 | 多处理器环境中基于事务的共享数据操作 |
CN102290088A (zh) * | 2011-07-04 | 2011-12-21 | 上海宏力半导体制造有限公司 | 存储器及其冗余替代方法 |
CN102968353A (zh) * | 2012-10-26 | 2013-03-13 | 华为技术有限公司 | 一种失效地址处理方法及装置 |
CN106155577A (zh) * | 2015-04-23 | 2016-11-23 | 华为技术有限公司 | 扩展内存的访问方法、设备以及*** |
CN106909515A (zh) * | 2017-02-11 | 2017-06-30 | 郑州云海信息技术有限公司 | 面向混合主存的多核共享末级缓存管理方法及装置 |
CN108170366A (zh) * | 2016-12-06 | 2018-06-15 | 华为技术有限公司 | 存储设备中的存储介质管理方法、装置和存储设备 |
CN111966608A (zh) * | 2020-08-14 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种外存储器的直接内存储器访问方法和装置 |
CN112667445A (zh) * | 2021-01-12 | 2021-04-16 | 长鑫存储技术有限公司 | 封装后的内存修复方法及装置、存储介质、电子设备 |
CN113254290A (zh) * | 2021-06-23 | 2021-08-13 | 皇虎测试科技(深圳)有限公司 | 一种内存颗粒多维测试方法、装置、***和可读存储介质 |
WO2021253983A1 (zh) * | 2020-06-18 | 2021-12-23 | 深圳大普微电子科技有限公司 | 一种数据恢复方法、装置及固态硬盘 |
CN114830241A (zh) * | 2019-12-31 | 2022-07-29 | 华为技术有限公司 | 一种存储器的失效修复方法及装置 |
CN115048319A (zh) * | 2022-07-07 | 2022-09-13 | 长鑫存储技术有限公司 | 地址映射关系的确定方法、控制器和地址关系映射*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI421869B (zh) * | 2009-10-14 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
-
2022
- 2022-11-09 CN CN202211398402.2A patent/CN115757196B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1282026A (zh) * | 1999-07-26 | 2001-01-31 | 神基科技股份有限公司 | 动态随机存取存储器自动切换控制装置 |
CN101095113A (zh) * | 2004-12-29 | 2007-12-26 | 英特尔公司 | 多处理器环境中基于事务的共享数据操作 |
CN102290088A (zh) * | 2011-07-04 | 2011-12-21 | 上海宏力半导体制造有限公司 | 存储器及其冗余替代方法 |
CN102968353A (zh) * | 2012-10-26 | 2013-03-13 | 华为技术有限公司 | 一种失效地址处理方法及装置 |
CN106155577A (zh) * | 2015-04-23 | 2016-11-23 | 华为技术有限公司 | 扩展内存的访问方法、设备以及*** |
CN108170366A (zh) * | 2016-12-06 | 2018-06-15 | 华为技术有限公司 | 存储设备中的存储介质管理方法、装置和存储设备 |
CN106909515A (zh) * | 2017-02-11 | 2017-06-30 | 郑州云海信息技术有限公司 | 面向混合主存的多核共享末级缓存管理方法及装置 |
CN114830241A (zh) * | 2019-12-31 | 2022-07-29 | 华为技术有限公司 | 一种存储器的失效修复方法及装置 |
WO2021253983A1 (zh) * | 2020-06-18 | 2021-12-23 | 深圳大普微电子科技有限公司 | 一种数据恢复方法、装置及固态硬盘 |
CN111966608A (zh) * | 2020-08-14 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种外存储器的直接内存储器访问方法和装置 |
CN112667445A (zh) * | 2021-01-12 | 2021-04-16 | 长鑫存储技术有限公司 | 封装后的内存修复方法及装置、存储介质、电子设备 |
CN113254290A (zh) * | 2021-06-23 | 2021-08-13 | 皇虎测试科技(深圳)有限公司 | 一种内存颗粒多维测试方法、装置、***和可读存储介质 |
CN115048319A (zh) * | 2022-07-07 | 2022-09-13 | 长鑫存储技术有限公司 | 地址映射关系的确定方法、控制器和地址关系映射*** |
Non-Patent Citations (1)
Title |
---|
DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings;Aayush Gupta等;《ACM》;229–240 * |
Also Published As
Publication number | Publication date |
---|---|
CN115757196A (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101369240B (zh) | 用于在信息处理***中管理存储错误的***和方法 | |
KR101504781B1 (ko) | 듀얼 인라인 메모리 모듈의 상변화 메모리 | |
US10824499B2 (en) | Memory system architectures using a separate system control path or channel for processing error information | |
US8892942B2 (en) | Rank sparing system and method | |
US5155731A (en) | Error logging data storing system | |
US7107493B2 (en) | System and method for testing for memory errors in a computer system | |
US20100083040A1 (en) | Expander Circuit For A Solid State Persistent Storage Device That Provides A Plurality Of Interfaces To Corresponding Storage Controllers | |
US6236602B1 (en) | Dynamic configuration of storage arrays | |
CN112667445B (zh) | 封装后的内存修复方法及装置、存储介质、电子设备 | |
CN101477480B (zh) | 内存控制方法、装置及内存读写*** | |
CN104335187A (zh) | 独立于存储器控制器的存储备份 | |
US9262284B2 (en) | Single channel memory mirror | |
CN115757196B (zh) | 内存、访问内存方法及计算设备 | |
CN104425040A (zh) | 用于测试存储器的方法和*** | |
CN110765032A (zh) | 基于***管理总线接口对i2c存储器进行读写的方法 | |
CN113835923A (zh) | 一种复位***、数据处理***以及相关设备 | |
CN115729706A (zh) | Cpu性能优化***及方法 | |
CN118295838A (zh) | 一种确定内存故障的修复资源粒度的方法及装置 | |
US8176388B1 (en) | System and method for soft error scrubbing | |
CN112835516B (zh) | 一种raid卡监控管理方法、***及装置 | |
US20240013851A1 (en) | Data line (dq) sparing with adaptive error correction coding (ecc) mode switching | |
CN111984184B (zh) | 固态硬盘的数据管理方法、装置、存储介质及电子设备 | |
US20220350715A1 (en) | Runtime sparing for uncorrectable errors based on fault-aware analysis | |
US7299331B2 (en) | Method and apparatus for adding main memory in computer systems operating with mirrored main memory | |
CN110830563A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231117 Address after: 450046, 10th Floor, North Chuangzhi Tiandi Building, Shigeng Street, Longzihu Wisdom Island Middle Road East, Zhengdong New District, Zhengzhou City, Henan Province Patentee after: Henan Kunlun Technology Co.,Ltd. Address before: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee before: xFusion Digital Technologies Co., Ltd. |
|
TR01 | Transfer of patent right |