CN107851051A - 避免主存储器中的错误单元的虚拟存储器管理装置及其方法 - Google Patents

避免主存储器中的错误单元的虚拟存储器管理装置及其方法 Download PDF

Info

Publication number
CN107851051A
CN107851051A CN201780002586.7A CN201780002586A CN107851051A CN 107851051 A CN107851051 A CN 107851051A CN 201780002586 A CN201780002586 A CN 201780002586A CN 107851051 A CN107851051 A CN 107851051A
Authority
CN
China
Prior art keywords
error unit
mmu
stack frame
callee
stack
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
Application number
CN201780002586.7A
Other languages
English (en)
Inventor
金善郁
白允雅
全渽永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industry Academy Collaboration Foundation of Korea University
Korea University Research and Business Foundation
Original Assignee
Industry Academy Collaboration Foundation of Korea University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industry Academy Collaboration Foundation of Korea University filed Critical Industry Academy Collaboration Foundation of Korea University
Publication of CN107851051A publication Critical patent/CN107851051A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

公开了一种用于避免主存储器中的错误单元的虚拟存储器管理装置及其方法。也就是说,本发明:在栈区中,分配和释放栈帧,使得包括错误单元的块位于栈帧之间;在堆区中,在堆区存储器管理数据结构中将包括错误单元的块处理为已分配状态;在代码区域中,通过配置文件将包括错误单元的页面被分配给不经常被使用的代码;并且在文件映射区域中,当在页面单元中没有对齐尺寸时,将包括未被使用的区域的错误的页面分配在最后一页中,从而防止由于处理器使用主存储器的错误单元而造成可能发生的数据丢失或故障。

Description

避免主存储器中的错误单元的虚拟存储器管理装置及其方法
技术领域
本发明涉及一种用于避免主存储器中的错误单元的虚拟存储器管理装置及其方法,其使用如下的虚拟存储器的特性。在栈(stack)区的情况下,以包括错误单元的块被位于栈帧之间的方式来分配和释放栈帧。在堆(heap)区的情况下,包括错误单元的块在用于堆管理的数据结构中被标记为处于已分配状态。在代码存储器的情况下,包括错误单元的页面经由配置文件被分配给不经常被使用的代码的部分。在文件映射存储器的情况下,将包括错误单元的物理存储器页面分配给最后一页的未使用空间。
背景技术
当存储器中发生错误时,写入程序的值不会按原样存储,并且可能发生数据丢失,并且因为写入的值由于错误而导致被读取为不同的值,所以程序可能会发生故障。
为了解决这个问题,已经使用了在硬件或软件中检测/纠正或避免存储器中的错误的方法。
也就是说,作为硬件方法,通过使用额外的存储器空间来以额外的空间替换具有错误的空间或者将能够检测或纠正错误的代码(例如,错误校正码)存储在额外的存储器空间以检测或纠正错误,从而防止数据丢失和故障,但是在硬件方法中,由于需要额外的存储器空间,所以其成本增加。
此外,作为软件方法,在操作系统的存储器管理系统中,可以通过其中具有错误的存储器空间(可替选地,页面)在程序中未被分配的方法来避免对错误单元的访问,但是由于操作系统的存储器管理是通过页面单元来执行的,所以即使页面中只包括一个错误,也不能使用整个页面。
现有技术文献
专利文献
韩国专利公开公布号10-2007-0098133[发明名称:闪速存储器的错误块管理方法]
技术问题
本发明的一个目的是提供一种用于避免主存储器中的错误单元的虚拟存储器管理装置及其方法,以防止软件访问有错误的存储器区域。
本发明的另一个目的是提供一种用于避免主存储器中的错误单元的虚拟存储器管理装置及其方法,其中:在栈区的情况下,以包括错误单元的块位于栈帧之间的方式来分配和释放栈帧;在堆区的情况下,包括错误单元的块在用于堆管理的数据结构中被标记为处于已分配状态;在代码存储器的情况下,包括错误单元的页面经由配置文件被分配给不经常被使用的代码存储器的部分;并且在文件映射存储器的情况下,包括错误单元的物理存储器页面被分配给最后一页的未使用空间。
技术方案
根据本发明的一个方面,提供了一种用于避免主存储器中的错误单元的栈存储器管理方法,包括:存储器管理单元检查关于所述主存储器中的错误单元的信息;当分配被调用者的栈帧时,所述存储器管理单元检查所述错误单元是否位于要被分配给被调用者的栈帧的空间中;并且作为检查结果,当所述错误单元位于要被分配给所述被调用者的栈帧的空间中时,所述存储器管理单元通过将所述被调用者的栈帧的位置调整为紧接着包括所述错误单元的块而将所述错误单元配置为位于调用者的栈帧和被调用者的栈帧之间。
作为与本发明有关的示例,在将所述错误单元配置为位于所述调用者的栈帧和所述被调用者的栈帧之间中,所述存储器管理单元可以通过将与所述调用者的栈帧的最后一点对应的栈指针减小与包括所述错误单元的空间对应的大小和与所述被调用者的栈帧对应的大小而被标记为分配所述被调用者的栈帧。
作为与本发明有关的示例,栈存储器管理方法可以进一步包括:作为所述检查结果,当所述错误单元不位于要被分配给所述被调用者的栈帧的空间中时,所述存储器管理单元通过将与所述调用者的栈帧的最后一点对应的栈指针减小与所述被调用者的栈帧对应的大小而分配所述被调用者的栈帧。
作为与本发明有关的示例,栈存储器管理方法可以进一步包括:当被分配给所述被调用者的栈帧被释放时,所述存储器管理单元将位于所述被调用者的栈帧的最后一点处的栈指针移动到调用所述被调用者的调用者的栈帧的结束点。
根据本发明的另一方面,提供了一种用于避免主存储器中的错误单元的堆存储器管理方法,包括:存储器管理单元检查关于所述主存储器中的错误单元的信息;所述存储器管理单元确定包括错误单元的区块是否存在于被包括在空闲区块列表中的多个区块中;作为确定结果,当包括所述错误单元的区块存在于被包括在所述空闲区块列表中的多个区块中时,所述存储器管理单元将包括所述空闲区块列表中的错误单元的块配置为已分配状态;在包括所述错误单元的块被标记为所述已分配状态之后,所述存储器管理单元通过删除包括所述空闲区块列表中的错误单元的块而生成新的空闲区块列表;并且由所述存储器管理单元基于所述新的空闲区块列表将空闲区块分配给程序。
作为与本发明相关的示例,所述空闲区块列表可以包括关于可用于堆存储器区域中的动态存储器分配的存储器空间的信息。
作为与本发明有关的示例,堆存储器管理方法可以进一步包括:当区块被空闲时,由存储器管理单元通过将区块在新的空闲区块列表中注册而将已分配的区块切换到空闲状态。
根据本发明的又一方面,提供了一种用于避免主存储器中的错误单元的栈存储器管理装置,包括:主存储器;以及存储器管理单元,其被配置为:检查关于所述主存储器中的错误单元的信息,并且在分配被调用者的栈帧时,当所述错误单元位于要被分配给被调用者的栈帧的空间中时,通过将所述被调用者的栈帧的位置调整为紧接着包括所述错误单元的空间而将所述错误单元配置为位于调用者的栈帧和所述被调用者的栈帧之间。
作为与本发明有关的示例,当释放被分配给所述被调用者的栈帧时,所述存储器管理单元可以将位于所述被调用者的栈帧的最后一点处的栈指针移动到调用所述被调用者的调用者的栈帧的结束点。
根据本发明的又一个方面,提供了一种用于避免主存储器中的错误单元的堆存储器管理装置,包括:主存储器;以及存储器管理单元,其被配置为:检查关于所述主存储器中错误单元的信息,当包括所述错误单元的区块存在于被包括在空闲区块列表中的多个区块中时,将包括所述空闲区块列表中的错误单元的块配置为已分配状态,在包括所述错误单元的块被标记为所述已分配状态之后,通过从所述空闲区块列表中删除包括所述错误单元的块来生成新的空闲区块列表,并且基于所述新的空闲区块列表将空闲区块分配给程序。
作为与本发明有关的示例,当区块被空闲时,存储器管理单元通过将区块在新的空闲区块列表中注册来将已分配的区块切换到空闲状态。
根据本发明的又一方面,提供了一种用于避免主存储器中的错误单元的代码存储器管理方法,包括:存储器管理单元检查关于所述主存储器中的错误单元的信息;所述存储器管理单元基于配置文件结果根据代码中的每个的使用次数来重新布置所述代码;所述存储器管理单元将包括所述错误单元的一个或多个页面分配给不经常被使用的代码中的一个或多个;并且当访问被映射到错误单元的代码时,由所述存储器管理单元将不经常被使用的代码中的一个或多个重新分配给包括错误单元的一个或多个页面,并从存储中重新读取代码。
根据本发明的又一方面,提供了一种用于避免主存储器中的错误单元的文件映射存储器管理方法,包括:存储器管理单元检查关于所述主存储器中的错误单元的信息;所述存储器管理单元检查在以页为单位舍入文件映射存储器的大小期间的未使用空间;并且所述存储器管理单元将包括所述错误单元的物理存储器页面分配给所述未使用空间。
有益效果
根据本发明,可以通过防止软件访问具有错误的存储器区域来防止可能在处理器使用主存储器中的错误单元时发生的数据丢失或故障。
此外,与常规软件解决方法相比而言,可以通过:在栈区的情况下以包括错误单元的块要位于栈帧之间的方式分配和释放栈帧,在堆区的情况下将包括错误单元的块在堆区存储器管理数据结构中处理为已分配状态,在代码存储器的情况下经由配置文件将包括错误单元的页面分配给不经常被使用的程序,并且在文件映射存储器的情况下将包括错误单元的物理存储器页面分配给最后一页的未使用空间,来不使用额外的存储器以降低成本以及最大化可被分配给程序的存储器容量。
附图说明
图1是示出根据本发明实施例的用于避免主存储器中的错误单元的栈和堆存储器管理装置的配置的框图。
图2是示出在未考虑本发明的技术特征的系统中分配栈帧的情况的存储器配置图。
图3是示出根据本发明实施例的分配栈帧的情况的存储器配置图。
图4是示出在未考虑本发明的技术特征的系统中分配和释放栈帧的情况的代码配置图。
图5是示出根据本发明实施例的分配和释放栈帧的情况的代码配置图。
图6是示出根据本发明第一实施例的用于避免主存储器中的错误单元的栈存储器管理方法的流程图。
图7至图9是示出根据本发明第一实施例的用于避免主存储器中的错误单元的栈存储器管理的图。
图10是示出根据本发明的第二实施例的用于避免主存储器中的错误单元的堆存储器管理方法的流程图。
图11至图14是示出根据本发明第二实施例的用于避免主存储器中的错误单元的堆存储器管理的图。
图15是示出根据本发明的用于避免主存储器中的错误单元的代码存储器管理的图。
图16是示出根据本发明的用于避免主存储器中的错误单元的文件映射存储器管理的图。
具体实施方式
本发明中使用的技术术语仅用于描述具体实施例,并不意图限制本发明。此外,除非另外定义,否则本发明中使用的技术术语应该被解释为本领域技术人员通常理解的含义,并且不应该被解释为过度全面的含义或过度地减少的含义。另外,在本发明中使用的技术术语是未正确表达本发明的精神的错误技术术语时,该技术术语应该被理解为可以由本领域技术人员正确理解的技术术语所替代。另外,在本发明中使用的通用术语应当被解释为在字典中或上下文中所定义的,并且不应被解释为过度减少的含义。
此外,在本发明中使用的单数表达包括复数表达,除非它们在上下文中具有明确相反的含义。在本发明中,诸如“包含”或者“包括”的术语不应该被解释为必须包括在本发明中公开的所有各种组件或者各种步骤,并且应当理解为其中的一些组件或一些步骤可能不被包括或者附加的组件或步骤可以被进一步包括。
此外,包括诸如第一和第二等的普通数字的术语被用于描述各种组件,但是组件不受这些术语的限制。以上术语仅用于区分一个组件和其他组件。例如,在不脱离本发明的范围的情况下,第一组件可以被称为第二组件,并且类似地,第二组件可以被称为第一组件。
在下文中,将参考附图详细描述本发明,其中无论附图标记如何,相似的附图标记指代相同或相似的元件,并且将省略对其的重复描述。
在描述本发明时,当确定与本发明相关的公知技术的详细描述可能使本发明的主旨模糊时,将省略其详细描述。此外,应注意的是,附图仅用于容易理解本发明的精神,而不应当将本发明的精神解释为由附图限制。
图1是示出根据本发明实施例的用于避免主存储器中的错误单元的栈和堆存储器管理装置10的配置的框图。
如图1中示出的,栈和堆存储器管理装置10包括主存储器100和存储器管理单元200。图1中示出的栈和堆存储器管理装置10的所有组件不是必需的组件,并且栈和堆存储器管理装置10可以由比图1中示出的组件更多的组件或更少的组件来实现。
主存储器100通过操作系统(可替选地,存储器管理单元200)的控制将要在任意程序中使用的存储器区域分配给栈存储器、堆存储器和文件映射存储器等。
存储器管理单元200(可替选地,中央处理单元(CPU))执行存储器管理装置10的总体控制功能。
此外,存储器管理单元200检查关于主存储器100中的错误单元的信息。
另外,当在程序的任何调用函数(调用者)中调用被调用函数(被调用者)并且主存储器100中的栈帧需要被分配给被调用者时,存储器管理单元200检查(可替选地,确定)错误单元是否位于(可替选地,存在于)主存储器100中的对应的被调用者的栈帧要被分配在的空间中。
也就是说,当需要通过在程序的任何调用者中调用被调用者来为被调用者分配主存储器100中的栈帧时,存储器管理单元200基于被检查到的错误单元的已知信息来检查错误单元是否被包括在被调用者的栈帧要被分配在的空间中。
作为检查结果(可替选地,确定出的结果),当错误单元没有位于(可替选地存在于)对应的被调用者的栈帧要被分配到的空间中时,存储器管理单元200将与调用者的栈帧对应的栈指针(可替选地,与调用者的栈帧的最后一点对应的栈指针)减少与用于分配被调用者的栈帧的空间对应的大小以分配被调用者的对应栈帧。
也就是说,当基于被检查到的错误单元的已知信息,错误单元未被包括在被调用者的栈帧要被分配在的空间中时,存储器管理单元200将与调用者的栈帧对应的栈指针(可替选地,与调用者的栈帧的最后一点对应的栈指针)减少与用于分配被调用者的栈帧的空间对应的大小以分配被调用者的对应栈帧。
此外,作为检查结果(可替选地,确定出的结果),当错误单元位于(可替选地,存在于)对应的被调用者的栈帧要被分配的空间中时,存储器管理单元200将被调用者的栈帧的位置控制为位于紧接着包括对应错误单元的块,使得错误单元(可替选地,包括错误单元的块)位于(可替选地,存在于)调用者的栈帧和被调用者的栈帧之间。
也就是说,当错误单元位于(可替选地,存在于)对应的被调用者的栈帧要被分配在的空间中时,存储器管理单元200将与调用者的栈帧的最后一点对应的栈指针减少与包括错误单元的块的总大小对应的大小以及与被调用者的栈帧对应的大小以分配被调用者的对应栈帧。
如图2中示出的,当在不考虑本发明的技术特征的系统中分配栈帧时,调用者和被调用者的栈帧被连续定位,并且错误单元可以位于被调用者的栈帧中。在这种情况下,被存储在错误单元中的数据可能会丢失,并且导致程序故障。
如图3中示出的,当在考虑了本发明的技术特征的系统中分配栈帧时,错误单元位于调用者和被调用者的栈帧之间。在这种情况下,不能访问错误单元,并且可以避免数据丢失或程序故障。
另外,当被分配给被调用者的栈帧被释放(空闲)时,存储器管理单元200将位于被调用者的栈帧的最后一点处的栈指针移动到调用处于当前状态的被调用者的调用者的栈帧的结束点。
如图4中示出的,在不考虑本发明的技术特征的系统中分配和释放栈帧时的编译器的代码生成的情况下,当为被调用者分配栈帧时,编译器(可替选地,存储器管理单元200)将栈指针移动一个空格(例如,a)来为被调用者分配栈帧。此外,在释放被调用者的栈帧时,编译器(可替选地,存储器管理单元200)在释放栈帧的时刻将栈指针上升(可替选地,移动)与被调用者的栈帧对应的空间(例如,a)。
如图5中示出的,在考虑本发明的技术特征的系统中分配和释放栈帧时的编译器的代码生成的情况下,编译器(可替选地,存储器管理单元200)将栈指针移动与要被分配的栈帧的大小对应的空间(例如,a)和与包括错误单元的块对应的空间(例如,b)的总大小以分配栈帧。此外,编译器(可替选地,存储器管理单元200)在释放栈帧时将栈指针改变为帧指针的位置。
如上面描述的,在本发明的实施例中,包括错误单元的物理存储器区域(可替选地,页面)被分配给操作系统中的栈空间,并且控制栈帧,使得包括错误单元的块位于栈区中的栈帧之间以避免主存储器100的错误单元。
在本发明的实施例中,描述了在存储器管理单元200中减少栈点值以分配要被存储在栈存储器中的空间,但是本发明不限于此,并且栈存储器的管理方法可以取决于处理器(可替选地,存储器管理单元200)而变化。
也就是说,当调用者调用被调用者时,存储器管理单元200也可以增加栈指针值以分配栈帧的空间。
此外,当没有定义帧指针寄存器时,存储器管理单元200可以可替选地使用通用寄存器作为帧指针。
此外,根据本发明的实施例的错误避免方法在不改变步骤的情况下使用在现有堆区中的存储器管理中分配或释放堆存储器的步骤。
这里,堆区表示要被用于动态存储器分配的存储器空间。堆空间由系统库管理,并且程序可以通过由该库提供的函数请求分配(例如,malloc)/释放(例如,free)存储器。该库将已分配的存储器空间作为是内部数据结构的区块单元(chunk unit)的列表来管理。
另外,存储器管理单元200确定(可替选地,检查)包括错误单元的区块是否存在于被包括在空闲区块列表中的多个(可替选地,一个或多个)区块中。这里,空闲区块列表包括关于可用于堆存储器区域中的动态存储器分配的存储器空间的信息。此外,存储器区块列表包括可用于堆存储器区域中的动态存储器分配的存储器空间以及被分配给程序的存储器空间。
也就是说,存储器管理单元200确定包括已知错误单元的区块是否存在于被包括在空闲区块列表中的多个区块中。这里,空闲区块列表是关于要被分配为堆存储器区域中的动态存储器的可用存储器空间的信息。
作为确定结果(可替选地,检查结果),当被包括在空闲区块列表中的多个区块中不存在包括错误单元的区块时,存储器管理单元200基于空闲区块列表将堆存储器分配给程序的任何请求(例如,malloc函数)。
此外,作为确定结果(可替选地,检查结果),当包括错误单元的区块存在于被包括在空闲区块列表中的多个区块中时,存储器管理单元200将包括被包含在空闲区块列表中的错误单元的对应的块(可替选地,对应的区块)配置为已分配状态。
另外,存储器管理单元200根据包括错误单元的块的已分配状态的配置,从空闲区块列表中删除(可替选地,排除)包括错误单元的对应的块(可替选地,区块)以生成新的空闲区块列表(可替选地,通过移除包括错误单元的区块来更新空闲区块列表)。
像这样,堆区中的存储器分配通过将在空闲区块列表中注册的区块返回到程序来执行。此外,由于以已分配状态表示的区块从空闲区块列表中排除,所以该区块将永不会被分配,除非再次在空闲区块列表中注册。
此外,存储器管理单元200基于新的空闲区块列表(可替选地,其中包括错误单元的块被删除的空闲区块列表)将堆存储器分配给程序的任何请求(例如malloc函数)。
此外,在释放被分配给该请求的堆存储器的情况下,存储器管理单元200将与被分配给该请求的堆存储器对应的区块在最新的空闲区块列表(可替选地,新的空闲区块列表)中注册以将被分配给调用者的堆存储器切换到可用状态。
如上面描述的,在本发明的实施例中,在操作系统中,包括错误单元的物理存储器区域(可替选地,页面)被分配给堆空间,并且在堆区中,包括错误单元的块在堆区存储器管理数据结构(区块列表)中以已分配状态表示。因此,不会发生对错误单元的访问,并且因此不会产生数据的丢失和程序的故障,从而避免主存储器100的错误单元。
在本发明的实施例中,描述了栈存储器管理和堆存储器管理分别被执行以避免主存储器的错误单元,但是本发明不限于此。另外,存储器管理单元200检查是否需要栈存储器分配和堆存储器分配中的任何存储器分配,并且还可以针对于目前要被执行或正在被执行的程序,根据检查结果执行栈存储器分配功能和堆存储器分配功能中的任一个功能。
也就是说,存储器管理单元200根据程序的执行来检查(可替选地,区分)栈帧分配和堆帧分配中的任一个,并且可以基于检查结果(可替选地,区分结果)根据上面描述的栈帧分配方法来分配栈帧或者根据上面描述的堆帧分配方法来分配堆帧。
像这样,可以防止软件访问发生错误的存储器区域。
同样,像这样,在堆区的情况下,栈帧被分配和释放,使得包括错误单元的块位于栈帧之间,并且在堆区的情况下,包括错误单元的块被标记为已分配状态。
在下文中,将参照图1至图14详细描述根据本发明的用于避免主存储器中的错误单元的栈和堆存储器管理方法。
图6是示出根据本发明的第一实施例的用于避免主存储器中的错误单元的栈存储器管理方法的流程图。
首先,存储器管理单元200检查关于主存储器100中的错误单元的信息。
作为示例,存储器管理单元200检查包括主存储器100中的错误单元的区域(S610)。
此后,当在程序的任何调用函数(调用者)中调用被调用函数(被调用者)并且需要分配用于被调用者的主存储器100中的栈帧时,存储器管理单元200检查(可替选地,确定)错误单元是否位于(可替选地,存在于)主存储器100中的对应的被调用者的栈帧要被分配在的空间中。
也就是说,当需要通过在程序的任何调用者中调用被调用者来为被调用者分配主存储器100中的栈帧时,存储器管理单元200基于包括错误单元的被检查到的区域来检查错误单元是否被包括在被调用者的栈帧要被分配在的空间中。
作为示例,如图7中示出的,当在主存储器100中分配调用者的栈帧710的同时需要为被调用者分配栈帧时,存储器管理单元200在分配被调用者的栈帧时检查错误单元是否存在于空间720中(S620)。
作为检查结果(可替选地,确定出的结果),当错误单元没有位于(可替选地,存在于)在对应的被调用者的栈帧要被分配在的空间中时,存储器管理单元200将与调用者的栈帧对应的栈指针(可替选地,与调用者的栈帧的最后一点对应的栈指针)减少与要被分配为被调用者的栈帧的空间对应的大小以分配对应的被调用者的栈帧。
也就是说,当基于包括错误单元的被检查到的区域,错误单元未被包括在被调用者的栈帧要被分配在的空间中时,存储器管理单元200将与调用者的栈帧对应的栈指针(可替选地,与调用者的栈帧的最后一点对应的栈指针)减少与要被分配为被调用者的栈帧的空间对应的大小以分配对应的被调用者的栈帧。
作为示例,当错误单元不存在于要被分配为图7中示出的被调用者的栈帧的空间720中时,如图8中示出的,存储器管理单元200将被调用者的栈帧820分配给调用者的栈帧810之后的下一区域。在这种情况下,存储器管理单元200将与调用者的栈帧810的最后一点(可替选地,结束点)对应的栈指针(例如,sp)减小与要被分配为被调用者的栈帧的空间对应的大小(例如,a)(例如,sp-a)以分配被调用者的对应栈帧820并配置与该被调用者的对应栈帧820的最后一点对应的栈指针(例如,sp-a)(S630)。
此外,作为检查结果(可替选地,确定出的结果),当错误单元位于(可替选地,存在于)要被分配为对应的被调用者的栈帧的空间中时,存储器管理单元200将被调用者的栈帧的位置控制为位于紧接着包括对应错误单元的块,使得错误单元(可替选地,包括错误单元的块)位于(可替选地,存在于)调用者的栈帧与被调用者的栈帧之间。
也就是说,当错误单元位于(可替选地,存在于)要被分配为对应的被调用者的栈帧的空间中时,存储器管理单元200将与调用者的栈帧的最后一点对应的栈指针减少与包括错误单元的块对应的大小和与要被分配为被调用者的栈帧的空间对应的大小以分配被调用者的对应栈帧。
例如,如图9中示出的,当错误单元存在于要被分配为图7中示出的被调用者的栈帧的空间720中时,存储器管理单元200将被调用者的栈帧930分配给调用者的栈帧910之后的包括错误单元的块920的下一区域。在这种情况下,存储器管理单元200将与调用者的栈帧910的最后一点对应的栈指针(例如,sp)减少与包括错误单元的块对应的大小(例如,b)以及与被分配为被调用者的栈帧的空间对应的大小(例如,a)(例如,sp-a-b)以分配被调用者的对应栈帧930并配置与该被调用者的对应栈帧930的最后一点对应的栈指针(例如,sp-a-b)(S640)。
此后,当被分配给被调用者的栈帧被释放(空闲)时,存储器管理单元200将位于处于当前状态的被调用者的栈帧的最后一点处的栈指针移动到调用该被调用者的调用者的栈帧的最后一点。
例如,当图8和图9中的调用者的栈帧820和930被释放时,存储器管理单元200将当前位置处的栈指针(例如,图8中的sp-a和图9中的sp-a-b)移动到调用被调用者的调用者的栈帧的结束点(例如,sp)(S650)。
图10是示出根据本发明的第二实施例的用于避免主存储器中的错误单元的栈存储器管理方法的流程图。
首先,存储器管理单元200检查关于主存储器100中的错误单元的信息。
作为示例,存储器管理单元200检查包括主存储器100中的错误单元的区域(S1010)。
此后,存储器管理单元200确定(可替选地,检查)包括错误单元的区块是否存在于被包括在空闲区块列表中的多个(可替选地,一个或多个)区块中。这里,空闲区块列表包括关于可用于堆存储器区域中的动态存储器分配的存储器空间的信息。此外,存储器区块列表包括可用于堆存储器区域中的动态存储器分配的存储器空间以及被分配给程序的存储器空间。
也就是说,存储器管理单元200确定包括错误单元的被检查到的区块是否存在于被包括在空闲区块列表中的多个区块中,其是关于在堆存储器区域中分配动态存储器的可用存储器空间的信息。
作为示例,如图11中示出的,存储器管理单元200确定包括错误单元的区块是否存在于被包括在存储器区块列表中的空闲区块列表中。这里,区块(可替选地,块)的第一列的数量表示前一区块的大小(字节),并且区块的第二列的数量表示对应区块的大小(S1020)。
作为确定结果(可替选地,检查结果),当包括错误单元的区块不存在于被包括在空闲区块列表中的多个区块中时,存储器管理单元200基于空闲区块列表将堆存储器分配给程序的任何调用者(例如,malloc函数)。
作为示例,如图12中示出的,当包括错误单元的区块不存在于被包括在存储器区块列表中的空闲区块列表中时,存储器管理单元200基于空闲区块列表而将堆存储器(例如块A)分配给malloc函数(S1030)。
此外,作为确定结果(可替选地,检查结果),当包括错误单元的区块存在于被包括在空闲区块列表中的多个区块中时,存储器管理单元200将包括空闲区块列表中包含的错误单元的对应的块(可替选地,对应的区块)配置为已分配状态。
另外,存储器管理单元200根据包括错误单元的块的已分配状态的配置,从空闲区块列表中删除(可替选地,排除)包括错误单元的对应的块(可替选地,对应的区块)来生成新的空闲区块列表(可替选地,更新空闲区块列表)。
作为示例,如图13中示出的,当包括错误单元的区块1310存在于被包括在存储器区块列表中的空闲区块列表中时,存储器管理单元200将包括错误单元的块(例如,块B)配置为已分配状态,并通过从空闲区块列表中排除包括错误单元的块来生成新的空闲区块列表(S1040)。
此后,存储器管理单元200基于新的空闲区块列表(可替选地,包括错误单元的块被删除的空闲区块列表)向程序的任何调用者(例如,malloc函数)分配堆存储器。
作为示例,如图14中示出的,存储器管理单元200基于新的空闲区块列表将堆存储器(例如,块C)分配给malloc函数(S1050)。
此后,在释放被分配给调用者的堆存储器的情况下,存储器管理单元200在最新的空闲区块列表(可替选地,新的空闲区块列表)中注册与被分配给调用者的堆存储器对应的区块以将被分配给调用者的堆存储器切换到可用状态。
作为示例,当释放被分配给malloc函数的堆存储器时,存储器管理单元200在新的空闲区块列表中注册与被分配给malloc函数的堆存储器对应的区块(例如,图12中的块A和图14中的块C)(S1060)。
图15是示出用于避免主存储器中的错误单元的代码存储器管理的图。存储器管理单元200经由配置文件检查经常被使用以及不经常被使用的代码。这里,代码是否经常被使用是基于代码的使用次数在预定的时段内超过预定次数和/或代码被使用的最后一天在预定的时段内来确定的。
此外,在代码存储器的情况下,代码存储器可以通过将经常被使用的代码从不经常被使用的代码中分离来配置。
此外,存储器管理单元200可以将经常被使用的代码重新布置为与不经常被使用的代码分离而被连续布置。这种重新布置通过使用配置文件是有能力的。当不经常被使用的代码被分配给包含错误单元的页面时,接近错误单元的可能性非常低。因此,通过将页面分配给不经常被使用的代码,可以使用包括错误单元的页面。
当接近错误单元时,存储器管理单元200可以读取错误代码,然而,根据代码区域的以下特性,它是可恢复的。代码区域是从存储(未示出)复制到主存储器100的值。也就是说,在存储中存在代码区域的副本。因此,当访问错误单元时,存储器管理单元200可以从存储重新读取代码并将其重新分配给不包括错误单元的页面。
图16是示出用于避免主存储器中的错误单元的文件映射存储器管理的图。
存储器管理单元200基于由用户描述的文件的内容来分配文件映射存储器。
此外,存储器管理单元200以页为单位管理物理存储器。因此,存储器管理单元200以页为单位舍入(round off)文件映射存储器的大小。在舍入期间,分配比用户所需的文件映射存储器的大小更大的物理存储器的大小。也就是说,如图16中示出的,在文件映射存储器的最后一个物理存储器页面中出现未被使用的空间。因此,存储器管理单元200可以将包括错误单元的物理存储器页面分配给这个未使用的空间。如上面描述的,根据本发明的实施例,防止软件访问具有错误的存储器区域,由此防止当处理器使用主存储器中的错误单元时可能发生的数据丢失或故障。
此外,通过分配和释放栈帧,与传统的软件解决方法相比,可以最大化可被分配给程序的存储器,并且通过不使用额外的存储器来降低成本,使得包括错误单元的块在栈区的情况下位于栈帧之间,并且在堆区存储器管理的情况下将包括错误单元的块配置为处于已分配状态。
在不脱离本发明的基本特性的情况下,本领域技术人员可以对上述内容进行修正和修改。因此,在本发明中公开的实施例并不是要限制技术精神,而是描述技术精神,并且本发明的技术精神的范围并不限于这些实施例。本发明的保护范围应基于以下权利要求进行解释,在本发明的等同范围内的所有技术概念均应被解释为落入本发明的范围内。
工业可用性
通过来防止数据丢失或故障发生,本发明可广泛用于动态存储器设备领域和存储器领域等中:在栈区的情况下以包括错误单元的块要位于栈帧之间的方式分配和释放栈帧,在堆区的情况下将包括错误单元的块在堆区存储器管理数据结构中处理为已分配状态,在代码存储器的情况下经由配置文件将包括错误单元的页面分配给不经常被使用的程序,并且在文件映射存储器的情况下将包括错误单元的物理存储器页面分配给文件映射存储器的最后一页的未使用空间。

Claims (13)

1.一种用于避免主存储器中的错误单元的栈存储器管理方法,包括:
存储器管理单元检查关于所述主存储器中的错误单元的信息;
当分配被调用者的栈帧时,所述存储器管理单元检查所述错误单元是否位于要被分配给被调用者的栈帧的空间中;并且
作为检查结果,当所述错误单元位于要被分配给所述被调用者的栈帧的空间中时,所述存储器管理单元通过将所述被调用者的栈帧的位置调整为紧接着包括所述错误单元的块而将所述错误单元配置为位于调用者的栈帧和被调用者的栈帧之间。
2.根据权利要求1所述的栈存储器管理方法,其中,在将所述错误单元配置为位于所述调用者的栈帧和所述被调用者的栈帧之间中,所述存储器管理单元通过将与所述调用者的栈帧的最后一点对应的栈指针减小与包括所述错误单元的空间对应的大小和与所述被调用者的栈帧对应的大小而被标记为分配所述被调用者的栈帧。
3.根据权利要求1所述的栈存储器管理方法,还包括:
作为所述检查结果,当所述错误单元不位于要被分配给所述被调用者的栈帧的空间中时,所述存储器管理单元通过将与所述调用者的栈帧的最后一点对应的栈指针减小与所述被调用者的栈帧对应的大小而分配所述被调用者的栈帧。
4.根据权利要求1所述的栈存储器管理方法,还包括:
当被分配给所述被调用者的栈帧被释放时,所述存储器管理单元将位于所述被调用者的栈帧的最后一点处的栈指针移动到调用所述被调用者的调用者的栈帧的结束点。
5.一种用于避免主存储器中的错误单元的堆存储器管理方法,包括:
存储器管理单元检查关于所述主存储器中的错误单元的信息;
所述存储器管理单元确定包括错误单元的区块是否存在于被包括在空闲区块列表中的多个区块中;
作为确定结果,当包括所述错误单元的区块存在于被包括在所述空闲区块列表中的多个区块中时,所述存储器管理单元将包括所述空闲区块列表中的错误单元的块配置为已分配状态;
在包括所述错误单元的块被标记为所述已分配状态之后,所述存储器管理单元通过删除包括所述空闲区块列表中的错误单元的块而生成新的空闲区块列表;并且
所述存储器管理单元基于所述新的空闲区块列表将堆存储器分配给程序的调用者。
6.根据权利要求5所述的堆存储器管理方法,其中所述空闲区块列表包括关于可用于堆存储器区域中的动态存储器分配的存储器空间的信息。
7.根据权利要求5所述的堆存储器管理方法,还包括:
当被分配给所述调用者的堆存储器被释放时,所述存储器管理单元通过将与被分配给所述调用者的堆存储器对应的区块注册到所述新的空闲区块列表中,而将被分配给所述调用者的堆存储器切换到可用状态。
8.一种用于避免主存储器中的错误单元的栈存储器管理装置,包括:
主存储器;以及
存储器管理单元,其被配置为:
检查关于所述主存储器中的错误单元的信息,并且
在分配被调用者的栈帧时,当所述错误单元位于要被分配给被调用者的栈帧的空间中时,通过将所述被调用者的栈帧的位置调整为紧接着包括所述错误单元的空间而将所述错误单元配置为位于调用者的栈帧和所述被调用者的栈帧之间。
9.根据权利要求8所述的栈存储器管理装置,其中,所述存储器管理单元被配置为:当释放被分配给所述被调用者的栈帧时,将位于所述被调用者的栈帧的最后一点处的栈指针移动到调用所述被调用者的调用者的栈帧的结束点。
10.一种用于避免主存储器中的错误单元的堆存储器管理装置,包括:
主存储器;以及
存储器管理单元,其被配置为:
检查关于所述主存储器中错误单元的信息,
当包括所述错误单元的区块存在于被包括在空闲区块列表中的多个区块中时,将包括所述空闲区块列表中的错误单元的块配置为已分配状态,
在包括所述错误单元的块被标记为所述已分配状态之后,通过从所述空闲区块列表中删除包括所述错误单元的块来生成新的空闲区块列表,并且
基于所述新的空闲区块列表将堆存储器分配给程序的调用者。
11.根据权利要求10所述的堆存储器管理装置,其中,所述存储器管理单元被配置为:当被分配给所述调用者的堆存储器被释放时,通过在所述新的空闲块列表中注册与被分配给所述调用者的堆存储器对应的区块来将被分配给所述调用者的堆存储器切换为可用状态。
12.一种用于避免主存储器中的错误单元的代码存储器管理方法,包括:
存储器管理单元检查关于所述主存储器中的错误单元的信息;
所述存储器管理单元基于配置文件结果根据代码中的每个的使用次数来重新布置所述代码;
所述存储器管理单元将包括所述错误单元的一个或多个页面分配给不经常被使用的代码中的一个或多个;并且
在接近所述错误单元时,所述存储器管理单元将包括所述错误单元的一个或多个页面重新分配给不经常被使用的代码中的一个或多个,并从存储中重新读取代码区域。
13.一种用于避免主存储器中的错误单元的文件映射存储器管理方法,包括:
存储器管理单元检查关于所述主存储器中的错误单元的信息;
所述存储器管理单元检查在以页为单位舍入文件映射存储器的大小期间的未使用空间;并且
所述存储器管理单元将包括所述错误单元的物理存储器页面分配给所述未使用空间。
CN201780002586.7A 2016-04-29 2017-04-07 避免主存储器中的错误单元的虚拟存储器管理装置及其方法 Pending CN107851051A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020160053383A KR101716865B1 (ko) 2016-04-29 2016-04-29 주 메모리의 에러 셀 회피를 위한 스택 및 힙 메모리 관리 장치 및 그 방법
KR10-2016-0053383 2016-04-29
PCT/KR2017/003813 WO2017188620A1 (ko) 2016-04-29 2017-04-07 주 메모리의 에러 셀 회피를 위한 가상 메모리 관리 장치 및 그 방법

Publications (1)

Publication Number Publication Date
CN107851051A true CN107851051A (zh) 2018-03-27

Family

ID=58403070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780002586.7A Pending CN107851051A (zh) 2016-04-29 2017-04-07 避免主存储器中的错误单元的虚拟存储器管理装置及其方法

Country Status (4)

Country Link
US (1) US20180217774A1 (zh)
KR (1) KR101716865B1 (zh)
CN (1) CN107851051A (zh)
WO (1) WO2017188620A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733312B (zh) 2017-04-17 2021-05-28 伊姆西Ip控股有限责任公司 存储管理方法和设备
CN117435440B (zh) * 2023-12-20 2024-04-05 麒麟软件有限公司 一种程序堆空间的动态分析方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139272A1 (en) * 2000-09-13 2004-07-15 Gustavo Rodriguez-Rivera Conservative garbage collectors that can be used with general memory allocators
WO2007101214A1 (en) * 2006-02-27 2007-09-07 Qualcomm Incorporated Method and apparatus for repairing a link stack
US7434105B1 (en) * 2005-11-07 2008-10-07 Symantec Operating Corporation Selective self-healing of memory errors using allocation location information
CN104008049A (zh) * 2013-02-22 2014-08-27 罗伯特·博世有限公司 用于监控机动车控制器工作系统中的堆栈存储器的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09106347A (ja) * 1995-10-12 1997-04-22 Fujitsu Ltd 情報処理装置及び情報処理装置のスタック記憶方法
US7379330B2 (en) * 2005-11-08 2008-05-27 Sandisk Corporation Retargetable memory cell redundancy methods
US7444566B2 (en) * 2006-03-06 2008-10-28 Verigy (Singapore) Pte. Ltd. Memory device fail summary data reduction for improved redundancy analysis
KR100764940B1 (ko) 2006-03-31 2007-10-09 모딘코리아 유한회사 차량의 전기히터
KR20110057646A (ko) * 2009-11-24 2011-06-01 삼성전자주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 장치의 제어 방법
US8954816B2 (en) * 2011-11-28 2015-02-10 Sandisk Technologies Inc. Error correction coding (ECC) decode operation scheduling
US9189214B2 (en) * 2013-10-30 2015-11-17 International Business Machines Corporation Code stack management
KR102178833B1 (ko) * 2013-12-12 2020-11-13 삼성전자주식회사 메모리 시스템 및 이를 포함하는 컴퓨팅 시스템
US9990249B2 (en) * 2015-12-24 2018-06-05 Intel Corporation Memory integrity with error detection and correction
US9606855B1 (en) * 2016-01-06 2017-03-28 International Business Machines Corporation Caller protected stack return address in a hardware managed stack architecture
US10241856B2 (en) * 2016-09-09 2019-03-26 Oracle International Corporation Memory quarantine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139272A1 (en) * 2000-09-13 2004-07-15 Gustavo Rodriguez-Rivera Conservative garbage collectors that can be used with general memory allocators
US7434105B1 (en) * 2005-11-07 2008-10-07 Symantec Operating Corporation Selective self-healing of memory errors using allocation location information
WO2007101214A1 (en) * 2006-02-27 2007-09-07 Qualcomm Incorporated Method and apparatus for repairing a link stack
CN104008049A (zh) * 2013-02-22 2014-08-27 罗伯特·博世有限公司 用于监控机动车控制器工作系统中的堆栈存储器的方法

Also Published As

Publication number Publication date
KR101716865B1 (ko) 2017-03-15
US20180217774A1 (en) 2018-08-02
WO2017188620A1 (ko) 2017-11-02

Similar Documents

Publication Publication Date Title
US7827375B2 (en) Defensive heap memory management
US7181585B2 (en) Defensive heap memory management
CN101432702B (zh) 在事务处理码内对存储器分配和解除分配的系统和方法
US9798476B2 (en) Skewing expected wearout times of memory devices
US8929143B2 (en) Flash memory module for realizing high reliability
US7051155B2 (en) Method and system for striping data to accommodate integrity metadata
JP4596715B2 (ja) 別個のメモリ領域におけるデータの組の種々のバージョンを記憶する配列及びメモリ内のデータの組を更新する方法
US10353787B2 (en) Data stripping, allocation and reconstruction
US9639268B2 (en) Distributed data storage system with key-based addressing
US20150067279A1 (en) Data processing system and method for operating a data processing system
KR19990013369A (ko) 저장 관리 시스템의 공간 할당 실패를 감소시키는 방법 및장치
US20080162863A1 (en) Bucket based memory allocation
US20100030994A1 (en) Methods, systems, and computer readable media for memory allocation and deallocation
CN108897642A (zh) 持久性事务内存系统中日志机制的优化方法及装置
US10514982B2 (en) Alternate storage arrangement in a distributed data storage system with key-based addressing
CN107851051A (zh) 避免主存储器中的错误单元的虚拟存储器管理装置及其方法
US11520512B2 (en) Method for storage management, electronic device and computer program product
CN107608885A (zh) 内存泄漏点的定位方法、装置、系统及可读存储介质
CN110413593B (zh) 数据迁移方法、装置、计算机设备及存储介质
US11099740B2 (en) Method, apparatus and computer program product for managing storage device
CN110609660A (zh) Ssd阵列的主机端映射方法、装置、计算机设备及存储介质
US20220269675A1 (en) Hash-based data structure
CN1567249A (zh) 计算机系统的内存管理方法
CN108563507A (zh) 一种内存管理方法、装置、设备及可读存储介质
EP2323135A1 (en) Method and apparatus for emulating byte wise programmable functionality into sector wise erasable memory

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180327