CN116897340A - 用于存储器保护数据的方法及设备 - Google Patents
用于存储器保护数据的方法及设备 Download PDFInfo
- Publication number
- CN116897340A CN116897340A CN202180093577.XA CN202180093577A CN116897340A CN 116897340 A CN116897340 A CN 116897340A CN 202180093577 A CN202180093577 A CN 202180093577A CN 116897340 A CN116897340 A CN 116897340A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- protection
- application data
- computing 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
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000012937 correction Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 abstract description 3
- 230000004048 modification Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 208000011580 syndromic disease Diseases 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000010420 art technique Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- 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/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Memory System (AREA)
Abstract
本公开描述了涉及在计算设备(102)内使用存储器保护数据(124、126)的技术和装置。技术包括分配存储器(122)的区域(208、210、302、304)用于存储应用数据(124)和保护数据(126)。技术还包括创建具有与所分配的区域(208、210、302、304)内的存储器块相对应的位值的位图(130)。一个或多个位值可以指示应用数据(124)和/或保护数据(126)是否存在于存储器块中。技术和装置可以使得能够有效地使用存储器保护,诸如存储器安全性(例如,加密)和存储器安全(例如,纠错码(ECC)使用),同时允许不连续的存储器分配并且无需实质性操作系统修改。
Description
背景技术
安全性和功能安全是计算设备的重要设计考虑因素。计算设备的设计可以使用例如执行数据加密、散列或防回滚计数器(ARC)算法的硬件来提高安全性。类似地,计算设备的设计可以使用执行纠错码(ECC)算法的硬件来提高功能安全。一般而言,存储器保护技术可以使用保护数据来确保存储在存储器中并且可由计算设备的硬件访问的应用数据的完整性。
现有的存储器保护技术可能会影响计算设备的存储器的存储器容量和/或事务带宽方面的开销。例如,对于散列算法负责验证的每64字节的应用数据,可能会消耗用于存储存储器内容的散列摘要的两个字节。类似地,对于ECC算法负责检查和/或纠正的每64字节的应用数据,可以消耗用于存储存储器内容的ECC校验子的两个字节。一般而言,应用数据与保护数据的大小比可以取决于期望的保护强度。
在一些情况下,计算设备的设计可能需要将存储器的总容量的分配增加多达20%以采用诸如散列摘要和/或ECC校验子数据的保护数据。因此,将保护数据合并到计算设备中而不明显影响存储器性能会具有挑战性。
提供该背景技术是概括地呈现本公开的场境。除非本文另有说明,否则本节中描述的材料既不明确也不暗示地承认为本公开或所附权利要求的现有技术。
发明内容
本公开描述了用于在计算设备内使用存储器保护数据的技术和装置。所描述的技术包括分配存储器区域用于存储应用数据和保护数据。此类技术还包括创建位图,该位图指示所分配的区域内的存储器块是否包括应用数据和/或保护数据。技术和装置可以通过在计算设备内减少存储器消耗和/或简化存储器事务来减少存储器开销。
在一些方面,描述了一种由计算设备执行的方法。方法包括:分配存储器的区域用于存储应用数据和保护数据;以及,创建位图,该位图包括指示存储器块包括应用数据或保护数据中的至少一个的位值。方法还包括:利用保护数据来保护应用数据,其中,保护包括使用位值来指示存储器块包括应用数据或保护数据中的至少一个。
在其他方面,描述了一种计算设备。计算设备包括存储器、中央处理单元(CPU)、保护引擎和计算机可读存储介质(CRM)。CRM包括可执行代码的一个或多个模块,其在由CPU执行时指导计算设备执行多个操作。操作包括:计算用于存储应用数据和保护数据的存储器的量;以及,分配存储器的一个或多个区域以提供所计算的量。操作还包括:创建存储器的至少一部分的位图,该位图包括位值,该位值指示所分配区域的一个或多个存储器块包括应用数据或保护数据中的至少一个。操作还包括将位图供应给保护引擎。
在附图和以下描述中阐述一种或多种实施方式的细节。其他特征和优点将从描述、附图和权利要求中变得显而易见。因此,提供本发明内容以便介绍在具体实施方式中进一步描述的主题。因此,读者不应考虑该发明内容来描述基本特征,也不应限制所要求保护的主题的范围。
附图说明
参考以下附图来描述使用存储器保护数据(包括应用数据和用于保护应用数据的保护数据)的装置和技术。整个附图中使用相同的数字来引用相似的特征和部件:
图1图示了根据一个或多个方面的包括使用存储器保护数据的计算设备的示例操作环境。
图2图示了根据一个或多个方面的表示存储器的物理地址空间的示例细节。
图3图示了根据一个或多个其他方面的表示存储器的物理地址空间的其他示例细节。
图4图示了根据一个或多个方面的可以使用存储器保护数据的示例系统架构。
图5图示了根据一个或多个方面的可以使用存储器保护数据在计算设备内传送的计算和消息的示例细节。
图6图示了根据一个或多个方面的使用存储器保护数据技术的示例方法。
具体实施方式
概述
本公开描述了针对在计算设备内使用存储器保护数据的技术和装置。所描述的技术包括:分配存储器区域用于存储应用数据和保护数据;以及,创建位图。位图指示所分配的区域内的哪些存储器块包括应用数据和/或保护数据。技术和装置可以通过在计算设备内减少存储器消耗和/或简化存储器事务来减少存储器开销。
计算设备的安全性和功能安全通常依赖于支持由计算设备的CPU执行的应用的数据的完整性。可能具有安全性和/或功能安全需求的应用包括例如银行应用、电子邮件应用、汽车控制应用(例如,控制制动系统)等等。支持应用的数据通常存储在计算设备的存储器中,而计算设备的存储器又可能通过包括恶意黑客、软错误和由于磨损而导致的故障的机制而受到损害。
存在现有的存储器保护策略,其可以增加数据的完整性并且有效地提高由计算设备执行的应用的安全性和/或功能安全。例如,计算设备的硬件可以执行数据加密、散列或ARC算法以提高数据安全。类似地,计算设备的硬件可以执行ECC算法以提高数据的功能安全。这些算法通常使用保护数据来确保应用数据的完整性。
还存在用于将保护数据与存储器系统一起使用的现有技术。然而,这些现有技术中的每一种都具有对计算设备性能产生不利影响的一个或多个缺点。用于使用保护数据的现有技术的第一缺点涉及引入在计算设备的存储器的容量方面的额外的开销。例如,一种技术可能需要为要保护的应用数据和为保护数据划分出大量连续的存储器区域。由于计算设备的操作系统无法在许多应用之间充分地共享存储器,因此大的连续存储器区域导致存储器的使用效率低下。在为可包括散列摘要数据、ECC校验子数据和应用数据的保护数据分配连续存储器的情况下,现有的连续技术可将高达总存储器容量的20%单独分配给保护数据。
用于使用保护数据的现有技术的第二缺点涉及允许分段存储器分配以避免大的连续划分分配的那些技术。然而,这些技术保留存储器的效率低下,并且需要对操作系统存储器管理过程进行大量修改。例如,虽然在这种情况下应用数据的划分可能是分段化的,但是用于覆盖整个存储器系统的保护数据的划分是过大的(从而简化了可以映射应用数据和/或保护数据的算法)。
出现大尺寸是因为这些技术保留了足够的存储器来存储最终可能存在于整个存储器空间中的所有应用数据的保护数据,即使当应用数据的实际量在操作期间可能显著较少时也是如此。这些技术使用对保护数据的完全保留来定位任何给定应用数据的保护数据。此外,此类技术依赖于修改操作系统存储器管理过程。这些修改包括重用可以在页表条目中保留的位以反映对于给定页是否保护应用数据、在操作期间适当地更新页属性、以及在计算设备内传播包含存储器属性的信号。因此,这些技术也可能需要非标准操作系统并使存储器管理过程复杂化。
使用保护数据的现有技术的第三缺点涉及与计算设备内的存储器事务的数量有关的开销。作为示例,当执行存储器保护算法时,计算设备的保护引擎可以首先访问存储器以检索ECC校验子数据,然后在第二不同操作中访问存储器以检索要检查和纠正的应用数据。这些多次存储器访问可能会导致降低计算性能的功耗和存储器延迟上的增加。
下面参考相关附图讨论各个细节级别上的示例实施方式。示例实施方式包括:(i)一种创建位图以指示存储应用数据或保护数据的已分配存储器区域的一个或多个存储器块的方法,其包括具有共同定位的应用数据和保护数据的存储器块;以及(ii)具有利用这样的位图的保护引擎的计算设备。分配的存储器区域和存储器块可以具有不同的大小。例如,分配的存储器区域可以包括与位图的示例粒度相对应的多个存储器块。或者,分配的存储器区域和存储器块可以具有共同的大小,诸如存储器页的大小(例如,在一些系统中为4千字节(4KB))。
一般而言,与可以将大块连续存储器预先分配给应用或保护数据的现有技术相比,位图的使用允许灵活的、可选择的可分段存储器的分配,以减少在实现存储器保护时使用的存储器容量。使用位图还可以避免对操作系统的存储器管理器的改变,因为硬件可以参考位图来识别和管理哪些存储器块包括受保护的应用数据或对应的保护数据。该位图还允许在使用保护数据时为保护数据进行存储器分配,而不是使用可能未得到充分利用的过大的预分配。此外,与可能需要跨大块连续存储器进行多次存储器访问的现有技术相比,使用位图来访问共同位于分段存储器的给定存储器块内的存储器保护数据可以提高操作速度并降低功耗。结合起来,存储器容量利用率的降低、独立分配存储器部分用于保护的能力、速度的提高、功耗的降低和/或操作系统的存储器管理过程的简化分别和联合地转换为存储器开销的总体减少。
下面的讨论首先描述示例操作环境,随后描述用于使用保护数据的示例硬件和特征细节,随后描述示例方法,并以相关示例方面结束。该讨论通常可以应用于具有存储器块的存储器的区域以及与虚拟和/或物理存储器寻址相关联的技术。然而,为了清楚、一致和简洁,讨论是在使用物理地址空间(在适当地从虚拟地址空间转换之后)访问的存储器页的场境中进行的。
操作环境示例
图1图示了包括使用存储器数据保护技术的计算设备102的示例操作环境100。尽管被示为膝上型计算机,但是计算设备102可以是台式计算机、服务器、可穿戴设备、物联网(IoT)设备、娱乐设备、自动驾驶系统(ADS)设备、家庭自动化设备、其他电子设备等。
计算设备102包括计算机可读存储介质(CRM)104和硬件106。在该讨论的场境中,计算设备102的CRM 104是基于硬件的存储介质,其不包括暂时性信号或载波。作为示例,CRM 104可以包括只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、盘驱动器、磁介质等中的一个或多个。一般来说,CRM 104可以存储可由硬件106执行的软件和/或驱动器的集合,如下所述。
CRM 104可以存储包括可执行代码或指令的一个或多个模块。例如,CRM 104可以存储应用108、操作系统(O/S)内核110、虚拟机监视器(VMM)112和保护驱动器114。硬件106可以包括CPU 116、保护引擎118、存储器控制器120和存储器122。在一些情况下,CRM 104的一个或多个部分以及硬件106的一个或多个元件可以组合到单个集成电路(IC)设备(诸如片上系统(SoC)IC设备)上。在一些实施方式中,CRM 104可以存储驱动器、OS模块或在硬件106上执行的其他软件的集合。因此,该软件可以包括例如应用108、O/S内核110、VMM 112和/或保护驱动器114。
存储在CRM 104内的应用108可以是需要安全性和/或功能安全的应用。应用108的示例包括银行应用、支付应用、电子邮件应用、汽车控制应用(例如,制动系统应用)等。
O/S内核110可以包括可执行代码,其使得计算设备102内的硬件106的元件(例如,CPU 116、保护引擎118或存储器控制器120)能够与存储器122进行数据事务(例如,从存储器读取数据或向存储器写入数据)。在执行时,并且作为分配存储器122内的页用于计算操作的一部分,O/S内核110可以识别存储器122的一个或多个部分(例如,其内的页)的物理地址。或者,O/S内核110可以识别虚拟存储器地址并允许另一模块或物理组件(例如,虚拟存储器管理器(未明确图示)、存储器控制器120或保护引擎118)计算对应的物理地址。
VMM 112有时被称为管理程序,可以与计算设备102内的一个或多个操作系统交互。在一些实例中,VMM 112可以包括可执行代码以计算以一个或更多使用存储器保护数据的技术为目标的存储器122的量。
保护驱动器114还可以包括可执行代码。保护驱动器114可以使得能够向保护引擎118提供数据、向保护引擎118提供位图、或与保护引擎118进行其他通信。这样的数据可以包括例如:存储器122内的包含存储器保护数据的页的物理地址;或对应于存储器122内包含存储器保护数据的页的位图。
CPU 116可以包括用于执行CRM 104的模块的指令或代码的逻辑。CPU 116可以包括由多种材料(诸如硅、多晶硅、高K介质、铜等)构成的单核处理器或多核处理器。通过执行模块(例如,应用108、O/S内核110、VMM 112、保护驱动器114)中的一个或多个,CPU 116可以指导计算设备102使用存储器保护数据执行操作。
可以通信地耦合到存储器控制器120的保护引擎118可以包括用于通过事务处理(例如,读、写)存储器122的存储器保护数据来执行一种或多种保护算法(例如,数据加密、散列、ARC、ECC)的逻辑。
在一些情况下,保护引擎118可以包括片上高速缓存。作为将在下面更详细地描述的存储器保护数据技术的一部分,片上高速缓存可用于存储页的物理地址的副本或位图的副本或位图的一部分的副本。在一些情况下,存储操作可以取决于片上高速缓存的大小和/或高速缓存线大小。
可以由IC设备形成的存储器122可以包括诸如动态随机存取存储器(DRAM)存储器、双数据速率DRAM(DDR DRAM)存储器、闪存存储器(例如NOR、NAND)、静态随机存取存储器(SRAM)等的存储器类型。在一些情况下,存储器122可以是存储器模块的一部分,诸如双列直插存储器模块(DIMM)。在其他情况下,存储器122可以是分立IC设备或嵌入在另一IC设备(例如,SoC IC设备)上。在一些实施方式中,存储器122可以包括CRM 104的至少一部分。附加地或替代地,存储在CRM 104内的代码或数据的至少一部分可以被复制到存储器122中以供硬件106执行或操纵。
由可以至少最初存储在CRM 104和硬件106中的代码或数据执行的存储器保护数据技术可以包括为存储器保护数据(例如,可以与应用108相关联的应用数据124和保护数据126,保护数据126可以包括对应应用数据124的散列摘要数据、ECC校验子数据等)分配存储器122的相应页。这样做时,CRM 104和硬件106可以依赖于映射到存储器122内的页的物理地址的物理地址空间128。在一些情况下,并且为了支持存储器保护数据技术,CRM 104和硬件106的一个或多个元件(例如,CPU 116、保护引擎118或存储器控制器120中的一个或多个)可以操纵存储器保护数据(例如,应用数据124或保护数据126,包括两者)的物理地址,以将存储器保护数据合并到同一页中。操纵可以包括映射/重新映射地址、将物理地址翻译成存储器122的通道、行、存储体或列等以调整数据的物理位置。在这种情况下,操纵可以避免存储器页冲突。
这些技术还可以包括为位图130分配存储器122的相应页以及更新位图130的一个或多个对应位。位图130可以指示存储器122内被分配用于存储存储器保护数据(例如,应用数据124或保护数据126)的页。例如,VMM 112的算法可以通过将位值“1”与被分配用于存储存储器保护数据的存储器122的页的物理地址相关联来创建位图130。以互补的方式,VMM112的算法可以将位值“0”关联到存储器122的未被分配用于存储存储器保护数据的其他页的物理地址。因此,位图130的至少一位可以对应于存储器122的存储器块。在一些情况下,存储器块可以具有与存储器的页相同的大小。
存储器保护引擎118可以接收针对应用数据124的存储器事务命令,其包括存储器122的页的物理地址的系统视图。然后,保护引擎118可以将物理地址转换为经操纵的物理地址,经操纵的物理地址将应用数据124的物理地址偏移保护数据126所需的量。使用位图130,保护引擎118可以确定该页存储存储器保护数据(例如,应用数据124中和/或保护数据126的一个或多个)并基于该确定来执行与该页的存储器事务命令。然而,位图130可以替代地映射页的物理地址的系统视图以指示该页是否存储存储器保护数据(例如,应用数据124和/或保护数据126)。
如下面更详细地描述的,使用应用数据124、保护数据126和位图130的存储器保护数据技术可以减少当计算设备102执行确保应用数据124的安全性和/或功能安全的功能时实现的存储器开销。存储器开销的这种减少可以例如在更有效地使用存储器122以及提高整体计算速度方面提高计算设备102的整体效率。
示例硬件和功能详细信息
图2图示了根据一个或多个方面的表示存储器的物理地址空间的示例细节200。物理地址空间可以对应于映射图1的存储器122内的页的物理位置的物理地址空间128。图2还图示了应用数据124和保护数据126可以位于在存储器122内分段的一个或多个页内同一位置(例如,使用“混合映射”)。根据图2的示例细节200,存储器保护数据技术可以使用更少的存储器122并且需要更少的事务,从而实现减少存储器开销,并避免对操作系统的存储器管理过程进行必要的更改。
一般而言,存储器122的架构可包括一个或多个通道202。此外,可使用物理地址空间128的物理地址204来识别存储器122内的页。图1的计算设备102的元件(例如,CRM 104和硬件106的元件)可以分配存储器122的区域(例如,诸如页的数据范围)来使用物理地址空间128的物理地址204来存储存储器保护数据(例如,应用数据124和/或保护数据126)。
存储器保护数据技术可以使用存储器122内分段的(例如,不连续的)页。例如,如图2所示,页206和页208可以各自容纳应用数据124和保护数据126的不同的排列。然而,如图所示,页206和页208被页210分开,并且因此被分段。
存储器保护数据技术还可以将应用数据124和保护数据126的部分共同定位在存储器122的一页或多页内。此外,与共同定位应用数据124和保护数据126相关联的事务可以包括跨存储器122的多个存储器块(例如,页)和/或一个或多个通道202的交错(interleave)。应用数据124和保护数据126可以进一步交错,使得应用数据124和对应的保护数据126可以共同位于存储器122的同一存储体、同一行等内,从而减少在访问保护数据126时可能出现的页冲突。
在一些实例中,为位图130分配的存储器122的页可以是连续的。例如,如图2所示,页212和页214可以被分配用于位图130的存储。如图所示,页212和页214彼此相邻,并且因此是连续的。
被分配用于存储应用数据124、保护数据126和位图130的存储器122的量可以取决于存储器122的大小和所选择的分段粒度。作为示例,如果存储器122对应于4吉字节(GB)存储器并且为分配粒度选择4千字节(KB)页大小,则如果一位对应于每个可用的分段页(例如,可用4GB存储器内的每个4KB页一位),则可以为位图130分配分段页(例如,可以从可用4GB中分配1MB连续存储器的量来存储位图130)。在剩余的可用4GB存储器中,并且当接收到请求时,可以分配分段存储器中的任何量来存储作为保护目标的应用的应用数据124或保护数据126。还可以为不作为保护目标的其他应用的应用数据分配分段存储器中的量。不需要保留特别大的连续区域。
根据图2的图示和描述,分配用于存储应用数据124和保护数据126的页的分段可以通过减少计算设备102在执行存储器保护数据操作时消耗的存储器122的量来减少存储器开销。使用如上所述的示例分段技术,启用存储器数据保护(例如,ECC保护)可以为位图130分配存储器122的1MB,并且为保护数据126分配存储器122的0.03MB(例如,稍微多于存储器122的1MB)。相反,基于存储器122的大小来为存储器保护数据按比例分配存储器的其他技术可以为保护数据分配128MB的存储器122。
图2描述的技术通常通过减少计算设备在执行存储器保护数据操作时消耗的保护数据126的量来减少存储器开销。此外,一般来说,将应用数据124和保护数据126共同定位在相应的页中(例如,在相应的通道、存储体或行中)可以减少计算设备102内的存储器事务,从而导致存储器开销的进一步减少。
图3图示了根据一个或多个其他方面的物理地址空间的其他示例细节300。物理地址空间可以对应于表示图1的存储器122的物理地址空间128。图3还图示了应用数据124和保护数据126可以跨在存储器122内分段的一个或多个页被分离(例如,使用“分离映射”)的实例。根据图3的示例细节300,存储器保护数据技术可以使用更少的存储器122,实现存储器开销的减少,并避免对操作系统的存储器管理过程进行必要的更改。
一般而言,如之前在图2中所描述的,存储器122的架构可以包括一个或多个通道202。此外,可以使用地址空间128的物理地址204来识别存储器122内的页。图1的计算设备102的元件(例如,CRM 104和硬件106的元件)可以根据物理地址空间128分配存储器122的页来存储存储器保护数据(例如,应用数据124和/或保护数据126)。如下所述,存储器保护数据技术可以通过减少计算设备102内的存储器消耗来减少开销。
如图3所示,存储器保护数据技术可以使用存储器122内分段的(例如,不连续的)页。例如,如图3所示,页302和页304是分离的并且不连续的。因此,操作系统可以有效地管理来自各种应用的多个存储器分配。
然而,与先前图2中描述的存储器保护数据技术相比,页302和304并不将应用数据和保护数据共同定位在页内。例如,页302容纳应用数据124但不容纳保护数据126。相反,页304容纳保护数据126但不容纳应用数据124。一般来说,虽然容纳存储器保护数据的页被分段,但是在这些实现方式中,没有将应用数据124和保护数据126共同定位在页内。
图3的存储器保护数据技术还可以使用存储器内连续的页。例如,容纳位图130的页306和308是连续的。
与先前描述的图2类似,为位图130分配的图3中的存储器122的量可以取决于存储器122的大小和所选择的分段粒度。作为示例,如果存储器122对应于4吉字节(GB)存储器并且分段基于选定的4千字节(KB)粒度(例如,分段页大小),则可以为位图130分配每个可用分段页的一位(例如,可用4GB存储器内每4KB页一位)(例如,可以为位图130分配可用4GB中的1MB的量)。在剩余的可用存储器中,可以在收到应用请求时分配分段存储器的任意量来存储需要保护的各种应用的应用数据124或保护数据126(以及存储不期望存储器数据保护的其他应用的应用数据124)。不需要保留特别大的连续区域。
根据图3的图示和描述,分配用于存储应用数据124和保护数据126的页的分段可以通过减少计算设备102在执行存储器保护数据操作时消耗的存储器122的量来减少存储器开销。尽管图2或图3中没有如此描绘,但是一些计算设备实施方式可以包括两者的特征。因此,计算设备可以包括将应用数据124和保护数据126共同定位的一些存储器分配以及将应用数据124和保护数据126分成不同页、通道、存储体或行的其他存储器分配。
图4图示了可以使用存储器保护数据来执行技术的示例系统架构400。系统架构400可以是使用图1的CRM 104和硬件106的元件的架构。
图4的系统架构400可以包括SoC IC设备402。SoC IC设备402可以由执行硬件106的一项或多项功能(例如,可以执行CPU 116、保护引擎118和/或存储器控制器120的逻辑)和/或用CRM 104存储数据(例如,存储应用108、O/S内核110、VMM 112和/或保护驱动器114)的逻辑集成电路和存储器集成电路形成。如图所示,一个或多个内部总线404可以通信地耦合SoC IC设备的操作元件。
系统架构400还可包括存储器模块406。存储器模块406可包括存储器集成电路以执行硬件106的一项或多项功能(例如,将存储器保护数据存储在存储器122中)。例如,存储器模块406可以包括填充有包括存储器122的一个或多个组件的双列直插式存储器模块(DIMM),或者存储器可以使用叠层封装(PoP)低功率双倍数据速率(DDR)(LP-DDR)存储器来实现。作为系统架构400的一部分,外部存储器总线408(例如,边缘连接器、插座、导电迹线)可以将存储器模块406的存储器122通信地耦合到SoC IC设备402的存储器控制器120。
一般而言,系统架构400可以支持针对使用存储器保护数据的各种操作。例如,系统架构400可支持包括以下部分的操作:计算目标用于存储应用数据和保护数据(例如,图1至3的应用数据124和保护数据126)的存储器122的量,分配存储器122的页以提供所计算的量(例如,图2的页206和208中的一个或多个或者图3的页302和304中的一个或多个),创建存储器122的位图(例如,图1至3的位图130),并将该位图提供给保护引擎118。
尽管系统架构400包括SoC IC设备402和存储器模块406,但是CRM 104和硬件106的元件的许多不同布置是可能的。例如,与包括SoC IC设备402和存储器模块406的布置相反,CRM 104和硬件106的元件可以使用分立IC管芯和/或组件、系统级封装(SIP)等的各种组合,其可以分布在至少一个印刷电路板(PCB)上,设置在服务器机架的不同部分中等等。
图5图示了根据一个或多个方面的使用存储器保护数据技术的计算设备执行的操作和在该计算设备内传送的消息的示例细节500。计算设备的CPU(例如,图1的计算设备102的CPU 116)可以通过执行存储在图1的CRM 104中的模块(包括应用108、O/S内核110、VMM112和/或保护驱动器114)的代码来实现操作(例如,计算)和事务。为了简洁,应当理解,在图5的以下描述中,对执行操作或传送消息的模块的引用对应于作为CPU执行存储在模块内的指令的结果的计算设备执行操作或传送消息。
在消息502处,应用108将应用存储器目标传送到VMM 112。消息502(应用存储器目标消息)可以包括指示目标针对应用数据的存储器的量(例如,计算设备存储图1的应用数据124作为目标的存储器122的第一量)的参数。
在操作504,VMM 112基于所请求的应用数据来确定目标在于存储保护数据的存储器的量(例如,计算保护数据量)。例如,消息502中包括的参数可以向VMM 112指示应用数据将受到保护。当确定应用数据要受到保护时,VMM 112可以计算以保护数据为目标的附加存储器(例如,计算设备存储图1的保护数据126作为目标的存储器122的第二量)。然后,VMM112可以对这些量进行求和(例如,组合目标在于应用数据124的第一量和目标在于保护数据126的第二量)以确定目标在于计算设备存储存储器保护数据(例如,存储应用数据124和保护数据126)的存储器的总量(例如,计算的存储器保护数据量)。
在消息506处,VMM 112与O/S内核110通信。消息506(保护请求消息)包括对O/S内核110分配存储器保护数据量的请求。
在操作508,O/S内核110为存储器保护数据分配存储器的第一组页。该分配有效地向计算设备提供目标用于计算设备存储存储器保护数据的存储器的量或在计算设备内保留目标用于计算设备存储存储器保护数据的存储器的量。作为分配存储器的第一组页的一部分,O/S内核110可以创建对应于存储器内的分段页的物理地址列表(例如,来自物理地址空间128的物理地址204的列表)(例如,图2的页206和208中的一页或多页或者图3的页302和304中的一页或多页)。
在消息510处,O/S内核110与VMM 112通信。消息510(保护地址消息)可以包括为计算设备分配的用于存储存储器保护数据的第一组页的物理地址的列表。
在操作512,VMM 112计算要为位图保留的存储器的量(例如,目标在于图1至3的位图130的存储器122的第三量)。目标在于位图的存储器的量可以取决于存储器122的大小和存储器内的分段粒度(例如,存储器块的数量,诸如可用页的数量)。位图的存储器的量还可以基于每个存储器块的位的量。例如,如果要在位图中保留存储器块的多于两个状态(例如,多于受保护状态和不受保护状态)或者如果要在位图中保留存储器块的附加信息(例如,保护的类型或种类),则每个存储器可以对应于位图的2位、5位等等。每一位或每至少一位可以分别对应于存储器的一个存储器块。
在消息514处,VMM 112向O/S内核110通信。消息514(位图请求消息)包括对O/S内核110分配目标在于计算设备存储位图的存储器的量的请求。在一些实例中,位图请求消息可以包括指示分配是来自存储器的连续区域而不是存储器的分段区域的参数。物理上连续的存储器分配可以简化存储器控制器120在访问位图130时的操作。
在操作516,O/S内核110为位图分配存储器的第二组页。该分配有效地向计算设备提供目标在于计算设备存储位图的存储器的量或在计算设备内保留目标在于计算设备存储位图的存储器的量。作为分配存储器页的一部分,O/S内核110可以基于包含在位图请求消息中的参数来分配存储器的连续区域(例如,图2的页212和214中的一个或多个或者图3的页306和308中的一个或多个)。
在消息518处,O/S内核110向VMM 112通信。消息518(位图地址消息)可以包括为计算设备分配以存储位图的第二组页的物理地址。
在操作520,VMM 112可以创建位图(例如,位图130)。在创建位图时,VMM 112可以将一个或多个位值与通过消息510接收到的物理地址相关联,以指示能够存储存储器保护数据的页。与可使用虚拟寻址技术的应用108不同,VMM 112可使用物理地址来创建位图以使得能够由可对物理存储器地址进行操作的存储器控制器(例如,图1的存储器控制器120)使用。
在消息522处,VMM 112与保护驱动器114通信。消息522(位图消息)包括位图或提供对位图的引用。将位图传送到保护驱动器114可以使得保护驱动器114能够将位图和/或为存储器保护数据分配的页的物理地址提供给保护引擎(例如,图1的保护引擎118)。在一些情况下,这可以包括将位图和/或物理地址写入保护引擎的片上高速缓存。保护引擎随后可以执行存储器保护技术,其包括对于存储器保护数据执行事务以及执行一种或多种存储器保护算法。
尽管图5的示例细节500图示了执行一系列操作(例如,计算)和消息交换以支持存储器保护数据技术的计算设备的CRM内的模块的组合,但是模块的组合和该系列操作可以使用模块和/或计算资源的其他组合来部分或全部执行。在一些情况下,模块的其他组合可以不是计算设备的一部分(例如,可以包括在作为通信地耦合到计算设备102的服务器的一部分的另一个CRM中)。
示例方法
图6图示了根据一个或多个方面的使用存储器保护数据技术的示例方法600。在一些情况下,方法600可以由计算设备使用图1-5的方面来执行。所描述的操作可以与其他操作一起、以替代顺序、以完全或部分重叠的方式等来执行。
在操作602,计算设备(例如,如图5的操作508中所示的执行O/S内核110的代码的CPU 116)分配存储器(例如,存储器122)的区域以用于存储应用数据和保护数据(例如,应用数据124和保护数据126)。在一些情况下,分配存储器的区域可以包括分配在存储器内分段的页(例如,存储器122的页206、208、302或304)。在其他实例中,分配存储器的区域可以包括从连续的存储器区域分配页(例如,存储器122的页306和308)。
在操作604,计算设备(例如,执行图5的操作520中所示的VMM 112的代码的CPU116)创建位图(例如,位图130)。创建的位图包括指示存储器块包括应用数据或保护数据中的至少一个的位值。存储器块被包括在所分配区域的至少之一中(例如,存储器块对应于页206、208、302或304,或者被包括在页206、208、302或304中)。位图可以包括多个位,每个位具有至少一个位值。所分配的存储器区域的给定存储器块分别对应于位图的多个位中的至少一位值。
在操作606,计算设备(例如,执行保护算法的保护引擎118)使用保护数据来保护应用数据。保护应用数据包括使用位图的位值来指示存储器块(例如,至少一个分配区域的存储器块)包括应用数据或保护数据中的至少一个的操作。在一些情况下,类似如果应用数据和保护数据位于同一位置那样,则存储器块可以包括应用数据和保护数据两者。
在一些情况下,方法600还可以包括通过将应用数据和保护数据定位在所分配区域的单独区域内(例如,将应用数据124定位在页302中并且将保护数据126定位在页304中,如图3所示)来存储应用数据和保护数据。单独的区域可以是存储器的分段区域(例如,页302和页304是被分配给至少一个其他应用的一个或多个页分隔的分段页)。
在应用数据和保护数据位于分开的区域内的情况下,包括保护数据的第一区域的物理地址(例如,包括保护数据126的页304的物理地址204)可以能够使用距包括应用数据的第二区域的物理地址(例如,包括应用数据124的页302的物理地址204)的一个或多个偏移来确定。这样的偏移可以是固定的,可基于所分配的区域的大小、保护数据126与应用数据124的大小比(例如,每64字节的应用数据124的2字节的保护数据126)等来确定的。
在其他实例中,方法600还可以包括通过将应用数据和保护数据共同定位在可以是存储器的分段区域内的至少一个分配区域内(如图2所示,将应用数据124和保护数据126共同定位在页206内)来存储应用数据和保护数据。一个分配的区域可以是存储器的分段区域(例如,像作为分段页的页206这样的存储器块)。
在应用数据和保护数据共同定位的情况下,共同定位应用数据和保护数据可以包括跨存储器的多个存储器块和/或通道(例如,通道202)(包括跨其各自的存储体或存储器行)交错应用数据和保护数据。
一般而言,并且对于方法600的上述示例变型,保护应用数据可以包括执行(例如,保护引擎118执行)使用保护数据和应用数据的一个或多个算法。这种算法的示例包括纠错码(ECC)算法、防回滚计数器(ARC)算法、数据加密算法或散列算法。
前面的讨论描述了与使用存储器保护数据来减少计算设备的存储器开销有关的方法。这些方法的各方面可以硬件(例如,固定逻辑电路)、固件、软件或其任何组合来实现。作为示例,方法600中描述的一个或多个操作可以由具有一个或多个处理器和CRM的计算设备执行。在这种情况下,与CRM结合的处理器可以包括执行一个或多个操作的固定或硬编码电路、有限状态机、编程逻辑等等。
此外,这些技术可以使用图1-5中所示的、还可以进一步分割、组合等的实体或组件中的一个或多个来实现。因此,这些图图示了能够采用所描述的技术的许多可能的系统或装置中的一些。这些附图的实体和组件通常表示软件、固件、硬件、设备或网络的全部或部分、或其组合。
其他示例
示例1:一种由计算设备执行的方法,方法包括:分配存储器的区域,至少一个分配的区域用于存储应用数据和保护数据;创建位图,该位图包括位值,该位值指示存储器块包括该应用数据或该保护数据中的至少一个,该至少一个分配的区域包括该存储器块;以及,用保护数据保护应用数据,包括使用位图的位值来指示该存储器块包括应用数据或保护数据中的至少一个。
示例2:根据示例1所述的方法,还包括通过将应用数据和保护数据定位在所分配区域的单独区域内来存储应用数据和保护数据,单独区域包括该存储器的分段区域。
示例3:根据示例2所述的方法,其中,基于包括应用数据的第二单独区域的物理地址使用一个或多个偏移而能够确定包括保护数据的第一单独区域的物理地址。
示例4:根据示例1所述的方法,还包括通过将应用数据和保护数据共同定位在所分配的区域内来存储应用数据和保护数据。
示例5:根据示例4所述的方法,其中,将应用数据和保护数据共同定位在所分配的区域内包括跨多个存储器块交错应用数据和保护数据。
示例6:根据示例4所述的方法,其中,将应用数据和保护数据共同定位在所分配的区域内包括跨存储器的多个通道交错应用数据和保护数据。
示例7:根据示例1-6中的任一项所述的方法,其中,存储器块对应于存储器的页。
示例8:根据示例1-7中的任一项所述的方法,其中,保护应用数据包括使用保护数据和应用数据的执行以下中的至少一个:纠错码ECC算法、防回滚计数器ARC算法、数据加密算法或者散列算法。
示例9:一种计算机可读存储介质,包括计算机可执行指令,该计算机可执行指令当由计算设备执行时,将使得计算设备执行根据前述权利要求中的任一项所述的方法。
示例10:一种计算设备,包括:一个或多个中央处理单元;以及,根据示例9所述的计算机可读存储介质。
示例11:一种计算设备,包括:存储器;中央处理单元;保护引擎;以及,计算机可读存储介质,该计算机可读存储介质存储可执行代码的一个或多个模块,该可执行代码的一个或多个模块在由中央处理单元执行时,指导计算设备执行操作,该操作:计算用于存储应用数据和保护数据的存储器的量;分配存储器的一个或多个区域以提供所计算的量;创建存储器的至少一部分的位图,位图包括指示所分配的区域的一个或多个存储器块包括应用数据或保护数据的至少一个的位值;以及,将位图提供给保护引擎。
示例12:根据示例11所述的计算设备,其中,保护引擎包括逻辑,该逻辑被配置为:接收包括物理地址的存储器事务命令,物理地址对应于存储器的所分配区域内的存储器块;使用位图确定存储器块存储应用数据或保护数据中的至少一个;以及,基于确定,利用存储器块来执行存储器事务命令。
示例13:根据示例11或12所述的计算设备,其中,保护引擎被配置为通过存储器控制器访问存储在存储器中的应用数据和/或保护数据。
示例14:根据示例11-13中的任一项所述的计算设备,其中,计算设备的硬件的一个或多个元件被配置为操纵地址以将应用数据和保护数据组合到同一区域中。
示例15:根据示例11-14中的任一项所述的计算设备,其中,该存储器包括双倍数据速率随机存取存储器DDR RAM。
示例16:根据示例11-15中的任一项所述的计算设备,其中,中央处理单元、保护引擎以及存储可执行代码的一个或多个模块的计算机可读存储介质被包括在系统上芯片SoC集成电路设备上。
示例17:根据示例11-16中的任一项所述的计算设备,其中,保护引擎包括被配置为存储位图的至少一个副本的片上高速缓存
尽管描述了使得能够以减少计算设备的存储器开销的方式使用存储器保护数据的装置和方法的实施方式,但是所附权利要求的主题不一定限于所描述的特定特征或方法。相反,特定特征和方法被公开作为用于以减少计算设备的存储器开销的方式使用存储器保护数据的示例实施方式。
Claims (17)
1.一种由计算设备(102)执行的方法(600),所述方法(600)包括:
分配(602)存储器(122)的区域(208、210、302、304),至少一个分配的区域(208、210、302、304)用于存储应用数据(124)和保护数据(126);
创建(604)位图(130),所述位图(130)包括位值,所述位值指示存储器块包括所述应用数据(124)或所述保护数据(126)中的至少一个,所述至少一个分配的区域(208、210、302、304)包括所述存储器块;以及
利用所述保护数据(126)保护(606)所述应用数据(124),包括使用所述位图(130)的所述位值来指示所述存储器块包括所述应用数据(124)或所述保护数据(126)中的至少一个。
2.根据权利要求1所述的方法,还包括通过将所述应用数据和所述保护数据定位在分配的区域的单独区域内来存储所述应用数据和所述保护数据,所述单独区域包括所述存储器的分段区域。
3.根据权利要求2所述的方法,其中,基于包括所述应用数据的第二单独区域的物理地址使用一个或多个偏移而能够确定包括所述保护数据的第一单独区域的物理地址。
4.根据权利要求1所述的方法,还包括通过将所述应用数据和所述保护数据共同定位在分配的区域内来存储所述应用数据和所述保护数据。
5.根据权利要求4所述的方法,其中,将所述应用数据和所述保护数据共同定位在分配的区域内包括跨多个存储器块交错所述应用数据和所述保护数据。
6.根据权利要求4所述的方法,其中,将所述应用数据和所述保护数据共同定位在分配的区域内包括跨所述存储器的多个通道交错所述应用数据和所述保护数据。
7.根据权利要求1-6中的任一项所述的方法,其中,所述存储器块对应于所述存储器的页。
8.根据权利要求1-7中的任一项所述的方法,其中,保护所述应用数据包括使用所述保护数据和所述应用数据执行以下中的至少一个:纠错码ECC算法、防回滚计数器ARC算法、数据加密算法或者散列算法。
9.一种计算机可读存储介质(104),包括计算机可执行指令(108、110、112、114),所述计算机可执行指令(108、110、112、114)当由计算设备(102)执行时,将使得所述计算设备(102)执行根据前述权利要求中的任一项所述的方法。
10.一种计算设备(102),包括:
一个或多个中央处理单元(116);以及
根据权利要求9所述的计算机可读存储介质(104)。
11.一种计算设备(102),包括:
存储器(122);
中央处理单元(116);
保护引擎(118);以及
计算机可读存储介质(104),所述计算机可读存储介质(104)存储可执行代码(108、110、112、114)的一个或多个模块,所述可执行代码(108、110、112、114)的一个或多个模块在由所述中央处理单元(116)执行时,指导所述计算设备(102)执行操作,所述操作:
计算(504)用于存储应用数据(124)和保护数据(126)的所述存储器(122)的量;
分配(508)所述存储器(122)的一个或多个区域(208、210、302、304)以提供所计算的量;
创建(520)所述存储器(122)的至少一部分的位图(130),所述位图包括位值,所述位值指示分配的区域(208、210、302、304)的一个或多个存储器块包括所述应用数据(124)或所述保护数据(126)中的至少一个;以及
将所述位图(130)提供给所述保护引擎(118)。
12.根据权利要求11所述的计算设备,其中,所述保护引擎包括逻辑,所述逻辑被配置为:
接收包括物理地址的存储器事务命令,所述物理地址对应于所述存储器的分配的区域内的存储器块;
使用所述位图确定所述存储器块存储所述应用数据或所述保护数据中的至少一个;以及
基于所述确定,利用所述存储器块来执行所述存储器事务命令。
13.根据权利要求11或12所述的计算设备,其中,所述保护引擎被配置为通过存储器控制器访问存储在所述存储器中的所述应用数据和/或所述保护数据。
14.根据权利要求11-13中的任一项所述的计算设备,其中,所述计算设备的硬件的一个或多个元件被配置为操纵地址以将所述应用数据和所述保护数据组合到同一区域中。
15.根据权利要求11-14中的任一项所述的计算设备,其中,所述存储器包括双倍数据速率随机存取存储器DDR RAM。
16.根据权利要求11-15中的任一项所述的计算设备,其中,所述中央处理单元、所述保护引擎以及存储可执行代码的所述一个或多个模块的所述计算机可读存储介质被包括在系统上芯片SoC集成电路设备上。
17.根据权利要求11-16中的任一项所述的计算设备,其中,所述保护引擎包括被配置为存储所述位图的至少一个副本的片上高速缓存。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/018231 WO2022177549A1 (en) | 2021-02-16 | 2021-02-16 | Method and device for memory protection data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116897340A true CN116897340A (zh) | 2023-10-17 |
Family
ID=74871806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180093577.XA Pending CN116897340A (zh) | 2021-02-16 | 2021-02-16 | 用于存储器保护数据的方法及设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240232438A9 (zh) |
EP (1) | EP4150455A1 (zh) |
JP (1) | JP2024507141A (zh) |
KR (1) | KR20230129562A (zh) |
CN (1) | CN116897340A (zh) |
WO (1) | WO2022177549A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901551B1 (en) * | 2001-12-17 | 2005-05-31 | Lsi Logic Corporation | Method and apparatus for protection of data utilizing CRC |
US20080320255A1 (en) * | 2007-06-25 | 2008-12-25 | Sonics, Inc. | Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets |
US8190974B2 (en) * | 2009-09-28 | 2012-05-29 | Nvidia Corporation | Error detection and correction for external DRAM |
US9612901B2 (en) * | 2012-03-30 | 2017-04-04 | Intel Corporation | Memories utilizing hybrid error correcting code techniques |
KR20130131025A (ko) * | 2012-05-23 | 2013-12-03 | 엠디에스테크놀로지 주식회사 | 실시간 다중 프로세스 수행 환경에서의 메모리 보호 방법 |
-
2021
- 2021-02-16 CN CN202180093577.XA patent/CN116897340A/zh active Pending
- 2021-02-16 KR KR1020237028522A patent/KR20230129562A/ko unknown
- 2021-02-16 US US18/546,402 patent/US20240232438A9/en active Pending
- 2021-02-16 JP JP2023548590A patent/JP2024507141A/ja active Pending
- 2021-02-16 EP EP21711663.1A patent/EP4150455A1/en active Pending
- 2021-02-16 WO PCT/US2021/018231 patent/WO2022177549A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR20230129562A (ko) | 2023-09-08 |
JP2024507141A (ja) | 2024-02-16 |
EP4150455A1 (en) | 2023-03-22 |
US20240232438A9 (en) | 2024-07-11 |
WO2022177549A1 (en) | 2022-08-25 |
US20240135042A1 (en) | 2024-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318434B2 (en) | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application | |
US9009580B2 (en) | System and method for selective error checking | |
US11782826B2 (en) | Security check systems and methods for memory allocations | |
US8010740B2 (en) | Optimizing memory operations in an electronic storage device | |
US7233335B2 (en) | System and method for reserving and managing memory spaces in a memory resource | |
US11003584B2 (en) | Technology for managing memory tags | |
US8732434B2 (en) | Memory device, computer system including the same, and operating methods thereof | |
US20100325374A1 (en) | Dynamically configuring memory interleaving for locality and performance isolation | |
CN108959113B (zh) | 用于闪存感知堆存储器管理的方法和系统 | |
US10169261B1 (en) | Address layout over physical memory | |
US10324760B2 (en) | Leases for blocks of memory in a multi-level memory | |
US10146440B2 (en) | Apparatus, system and method for offloading collision check operations in a storage device | |
US20160276002A1 (en) | Bank address remapping to load balance memory traffic among banks of memory | |
EP3166019B1 (en) | Memory devices and methods | |
US20220253236A1 (en) | Hardware-based memory compression | |
US10891239B2 (en) | Method and system for operating NAND flash physical space to extend memory capacity | |
CN117992360A (zh) | 存储系统及存储方法 | |
US20240135042A1 (en) | Using Memory Protection Data | |
US11436150B2 (en) | Method for processing page fault by processor | |
CN111026680B (zh) | 数据处理系统、电路及方法 | |
EP4120087A1 (en) | Systems, methods, and devices for utilization aware memory allocation | |
US20240201879A1 (en) | Storage device, storage device operating method and resource management device for determining unit of data required for operation of resources of storage device based on access pattern of host device |
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 |