CN105373486A - 计算系统中动态存储器地址的重新映射 - Google Patents
计算系统中动态存储器地址的重新映射 Download PDFInfo
- Publication number
- CN105373486A CN105373486A CN201510497924.1A CN201510497924A CN105373486A CN 105373486 A CN105373486 A CN 105373486A CN 201510497924 A CN201510497924 A CN 201510497924A CN 105373486 A CN105373486 A CN 105373486A
- Authority
- CN
- China
- Prior art keywords
- physical address
- logical address
- memory
- data
- address
- 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
- 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
-
- 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/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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
-
- 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/65—Details of virtual memory and virtual address translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了计算系统中动态存储器地址的重新映射。一种提供计算系统中的安全性的方法,计算系统包括具有逻辑地址空间的处理器和具有物理地址空间的外部系统存储器。方法包括隐藏存储器存取模式,隐藏存储器存取模式包括响应于数据存取逻辑地址空间而将逻辑地址空间动态地重新映射至物理地址空间。
Description
技术领域
本申请涉及计算系统中系统存储器的安全性,更具体地,涉及计算系统中动态存储器地址的重新映射。
背景技术
在计算系统中,到系统存储器的通信量可以被解析以观察存储器存取模式。可以从这些存储器存取模式推断敏感信息。
从响应于事件将新数据写入地址来推断事件计数器的位置。相邻字段可以具有已知的值(例如,前导(前端,leading)零),这种推断的信息可以用于密码分析攻击,诸如密钥搜索攻击或功耗分析攻击。
频繁、周期性更新可指循环计数器。有序的存储器存取可以表示程序代码,其具有偶尔的跳跃和循环。某些存取模式可以展现矩阵计算、图像处理、数据库处理等。这种推断的信息能够给出针对攻击的重要目标的位置。
存储器存取模式也可以被解析以识别软件中执行的算法、软件的功能性、或仅软件版本。这种推断的信息可以使软件中的已知缺点被利用。
发明内容
根据本文中的实施方式,一种提供计算系统中的安全性的方法,计算系统包括具有逻辑地址空间的处理器和具有物理地址空间的外部系统存储器。方法包括隐藏存储器存取模式,隐藏存储器存取模式包括响应于对逻辑地址空间进行数据存取而将逻辑地址空间动态地重新映射至物理地址空间。
根据本文中的另一实施方式,一种计算系统包括:具有逻辑地址空间的处理器、具有物理地址空间的外部系统存储器以及用于相对于外部系统存储器隐藏存储器存取模式的存储器控制器。隐藏存储器存取模式包括响应于对逻辑地址空间进行数据存取而将逻辑地址空间动态地重新映射至物理地址空间。
根据本文中的另一实施方式,一种用于计算系统的存储器控制器,包括专用处理器,被配置为相对于计算系统的外部系统存储器隐藏存储器存取模式。隐藏存储器存取模式包括响应于数据存取逻辑地址空间,而将逻辑地址从外部系统存储器的第一物理地址重新映射至外部系统存储器的第二物理地址;以及将数据发送至外部系统存储器以用于在第二物理地址处存储。
此外,本公开内容包括根据下列各项的实施方式:
项1。一种提供计算系统中的安全性的方法,计算系统包括具有逻辑地址空间的处理器和具有物理地址空间的外部系统存储器,该方法包括:
隐藏存储器存取模式,包括响应于数据存取逻辑地址空间而将逻辑地址空间动态地重新映射至物理地址空间。
项2.根据项1的方法,其中,外部系统存储器保持正在使用的当前程序和数据,并且经由可由攻击者存取的数据路径与处理器通信。
项3.根据项1的方法,其中,在每个且每一次数据存取逻辑地址空间时执行重新映射。
项4。根据项1的方法,其中,每个重新映射包括将逻辑地址从第一物理地址重新映射至第二物理地址;并且其中,隐藏存储器存取模式进一步包括在第二物理地址处存储数据。
项5.根据项1的方法,其中,针对在逻辑地址的每个读取操作,从外部系统存储器中的第一物理地址读取数据,将逻辑地址从第一物理地址重新映射至第二物理地址,并且数据从第一物理地址移动至第二物理地址,逻辑地址仍未改变。
项6.根据项1的方法,其中,针对每个至逻辑地址的写入操作,将逻辑地址从第一物理地址重新映射至第二物理地址,并且在第二物理地址处存储数据,逻辑地址仍未改变。
项7.根据项6的方法,其中,使虚设读取操作在每个写入操作之前,在虚设读取操作中,数据从第一物理地址读取但不起作用。
项8.根据项1的方法,其中,物理地址空间比逻辑地址空间大至少一个物理地址,由此至少一个物理地址是未映射的;其中,第一数据结构包含针对映射至逻辑地址的那些物理地址的条目值;其中,第二数据结构包含针对每个未映射的物理地址的条目值;并且其中,以从第二数据结构中选择的条目值替换第一数据结构中被索引的条目值。
项9.根据项8的方法,其中,将每个替换的条目值加入第二数据结构。
项10.根据项8的方法,其中,随机或伪随机地选择第二数据结构中的每个条目值。
项11.根据项8的方法,其中,每个条目值是自外部系统存储器的受保护的窗口的相应开始地址的偏移。
项12.一种计算系统,包括:
处理器,具有逻辑地址空间;
外部系统存储器,具有物理地址空间;以及
存储器控制器,用于隐藏对外部系统存储器的存储器存取模式,其中,隐藏存储器存取模式包括响应于数据存取逻辑地址空间而将逻辑地址空间动态地重新映射至物理地址空间。
项13.根据项12的计算系统,其中,处理器和存储器控制器在中央处理单元的核心上。
项14.根据项12的计算系统,其中,计算系统是虚拟机,虚拟机具有实现存储器控制器的虚拟机软件和硬件层。
项15.根据项12的计算系统,其中,计算系统是片上系统,片上系统包括与外部系统存储器通信的电路;并且其中,电路被配置为动态地执行存储器地址重新映射。
项16.根据项15的计算系统,其中,所述电路是安全存储处理单元。
项17.根据项12的计算系统,其中,存储器控制器被配置为在每个和每一次数据存取逻辑地址时执行重新映射。
项18.根据项12的计算系统,其中,存储器控制器被配置为将逻辑地址从第一物理地址重新映射至第二物理地址,并且在第二物理地址处存储数据。
项19.根据项12的计算系统,其中,物理地址空间比逻辑地址空间大至少一个物理地址,由此至少一个物理地址是未映射的;其中,当进行数据存取逻辑地址时,逻辑地址已经经由第一偏移映射至第一物理地址;并且其中,存储器控制器被配置为选择至未映射的第二物理地址的第二偏移,并且以第二偏移替换第一偏移。
项20.一种针对计算系统的存储器控制器,计算系统包括外部系统存储器,存储器控制器包括专用处理器,专用处理器被配置为隐藏对于外部系统存储器的存储器存取模式;隐藏存储器存取模式包括响应于数据存取逻辑地址空间而将逻辑地址从外部系统存储器的第一物理地址重新映射至外部系统存储器的第二物理地址;以及将数据发送至外部系统存储器以在第二物理地址处存储。
这些特征与功能可以在各种实施方式中独立地实现或与其他实施方式组合来实现。实施方式的更多细节将参考以下说明和附图来了解。
附图说明
图1是阻碍对至外部系统存储器的通信量进行分析的计算系统的示意图。
图2A是使至逻辑地址的写入操作模糊的方法的示意图。
图2B是使至逻辑地址的读取操作模糊的方法的示意图。
图2C是使至逻辑地址的写入操作模糊的另一个方法的示意图。
图3是用于将逻辑地址空间重新映射至物理地址空间的数据结构的示意图。
图4是使用图3的数据结构执行重新映射的方法的示意图。
图5、图6和图7是阻碍对至外部系统存储器的通信量进行分析的计算系统的不同实施例的示意图。
具体实施方式
参考图1,图1示出了包括处理器120的计算系统110。处理器120的实例包括,但不限于,中央处理单元、直接存储器存取(“DMA”)引擎或其他嵌入式处理器以及专用集成电路(“ASIC”)。
计算系统进一步包括外部系统存储器130,外部系统存储器130经由数据路径140与处理器120通信。如本文中使用的,“系统存储器”指计算系统110保持正在使用的当前程序和数据所用的存储器。系统存储器的实例包括诸如动态随机存取存储器(“DRAM”)的易失性系统存储器和诸如磁性随机存取存储器(“MRAM”)的非易失性系统存储器。系统存储器不包括存储设备,诸如硬盘驱动和闪速存储器。
如果在数据路径140上的通信量能够由攻击者存取并且观察,则系统存储器被视为“外部的”。如本文中使用的,“通信量”指在处理器120和外部系统存储器130之间的通信信息。这种通信信息包括但不限于,读取/写入信号、存储器地址、计时信息以及从外部系统存储器130读取和写入外部系统存储器130的数据。系统存储器也可以包括处理器高速缓存存储器和寄存器。然而,如果处理器高速缓存存储器和寄存器不能被攻击者存取,则处理器高速缓存存储器和寄存器不被视为外部的。
外部系统存储器130在受保护的窗口132中存储数据。存储在受保护的窗口132中的数据被保护免于通信量分析。如本文中使用的,“受保护的窗口”指外部系统存储器130中一系列的连续地址或单个存储器地址。在一些情况下,可以在单个受保护的窗口132中存储保护的数据,单个受保护的窗口132可以覆盖外部系统存储器130的一部分或外部系统存储器130的全部。在其他情况下,可以在多个受保护的窗口132中存储保护的数据,多个受保护的窗口132可以覆盖外部系统存储器130的一部分或外部系统存储器130的全部。在每个受保护的窗口132中存储的数据可以或不可以通过其他方法(例如,加密和/或数据认证标签)保护。
物理地址空间是一组物理地址范围,外部系统存储器130利用一组物理地址范围来提供数据位置的参考。物理地址空间也可以包括针对外部系统存储器130除外的存储器的地址。
逻辑地址空间是一组逻辑地址的范围,处理器120利用一组逻辑地址的范围以提供数据位置的参考。例如,计算机程序仅对逻辑地址起作用。
计算系统110进一步包括存储器控制器150,其管理至以及自外部系统存储器130的数据流。作为管理数据流的一部分,存储器控制器150被配置为将逻辑地址空间映射且动态地重新映射至外部系统存储器130的物理地址空间。存储器控制器150也将逻辑地址转换为物理地址。即,存储器控制器150接收来自处理器120的逻辑地址,并且将对应的(映射的)物理地址发送至外部存储器130。
在图1中,以虚线示出存储器控制器150,以表达存储器控制器150可以在计算系统110的处理侧或在计算系统110的存储器侧实现。对于处理侧实现的实施例,存储器控制器150可以位于处理器120的核心(die)上,或可以是操作系统的一部分。对于存储器侧实现的实施例,存储器控制器150可以位于外部系统存储器130的基板上、或位于母板或其他印刷电路板上。优选地,存储器控制器150与处理器120(例如,在相同的核心上,如保护的多芯片模块、在固件中)集成,在此,攻击者不可存取存储器控制器150。如果存储器控制器150不与处理器120集成,则相关于处理器120的通信线路受保护以免攻击者进行存取。
对数据路径140上的通信量的分析和观察能够展现存储器存取模式。反过来,这可能允许攻击者获得与在受保护的窗口132中的数据有关和与在处理器120的动作有关的洞察力。
存储器控制器150被配置为通过使存储器存取模式模糊(obfuscating)来阻碍这类通信量分析。模糊包括将处理器120的逻辑地址空间动态地重新映射至外部系统存储器130的物理地址空间。在数据存取逻辑地址空间时执行重新映射。例如,可以在读取或写入逻辑地址时执行重新映射。
模糊进一步包括重新映射之后在外部系统存储器130中存储数据。例如,在将逻辑地址从第一物理地址重新映射至第二物理地址之后,在第二物理地址处存储数据。
为了最大保护通信量分析,可以在每个且每次数据存取逻辑地址空间时执行重新映射。然而,可以较不频繁地进行重新映射。在任何情况下,重新映射是动态的。例如,运行程序的同时重复地执行重新映射。
重新映射可能不涉及重新映射整个逻辑地址空间(即,每一个逻辑地址)。相反地,重新映射可能仅涉及针对保护指定的逻辑地址,并且可能涉及额外子组的逻辑地址空间。
图2A示出了使至逻辑地址的写入操作模糊的实施例。在框200处,开始写入事件。可以由处理器120、DMA引擎、I/O或计算系统110的其他有源部件发起写入事件。
在框205处,将逻辑地址、写入标记和数据作为写入命令的一部分发送至存储器控制器150。这时,逻辑地址被映射至外部系统存储器130中的第一物理地址。
在框210处,重新映射逻辑地址。识别未映射的第二物理地址,并且逻辑地址被重新映射至那些第二物理地址。
在框215处,存储器控制器150将逻辑地址转换为第二物理地址。在框220处,在外部系统存储器130中将数据存储在第二物理地址处,逻辑地址仍未改变。
图2B示出了使至逻辑地址的读取操作模糊的实施例。在框230处,开始读取事件。在框235处,将逻辑地址和读取标记发送至存储器控制器150。在框240处,存储器控制器150将逻辑地址转换为第一物理地址,并且外部系统存储器130将位于该第一物理地址处的数据发送至存储器控制器150。
在框245处,重新映射逻辑地址。识别未映射的第二物理地址,并且将逻辑地址重新映射至该第二物理地址。
在框250处,数据从第一物理地址移动至第二物理地址。因此,在从外部系统存储器130读取数据之后,数据移动至外部系统存储器130中的新位置,逻辑地址仍未改变。
在一些构造中,在将处理器120发出的读取命令执行之后,可以通过存储器控制器150自动执行框245和框250处的操作。在其他构造中,处理器120在写入命令之前发出读取命令,借此,读取命令使存储器控制器150执行在框235和框240处的功能,并且写入命令使存储器控制器150执行在框245和框250处的功能。
图2C示出了使写入操作模糊的另一种方法。写入操作可以进一步通过一个或多个虚设读取操作自动地使其在先而被模糊。在框260处,开始写入事件。在框265处,执行虚设读取操作。将逻辑地址和虚设读取标记发送至存储器控制器150,存储器控制器150将逻辑地址转换为第一物理地址,并且从外部系统存储器130中在该第一物理地址处检索数据。因为操作是虚设读取操作,所以除了存储器控制器150可以检查所检索的数据的真实性和完整性之外,不对数据起作用。
虚设读取操作之后是写入操作。在框270处,将逻辑地址重新映射至第二物理地址。在框275处,将新数据写入第二物理地址。如果执行额外的虚设读取操作,则每个虚设读取操作(框265)可以在重新映射(框270)和写入新数据(框275)之后。
在这些模糊中,物理地址改变,但是逻辑地址不改变。写入相同的逻辑地址将使数据被写入外部系统存储器130中的不同物理地址。以这种方式,存储器地址重新映射被用于模糊存储器存取模式。
现在参考图3和图4。图3示出了用于将逻辑地址空间映射且重新映射至物理地址空间的数据结构的实施例,并且图4示出了如何执行存储器地址重新映射的实施例。在这个实施例中,数据结构包括第一表310和第二表320。针对外部系统存储器130中的每个受保护的窗口132提供第一表310和第二表320。每个受保护的窗口132存储数据。数据的最小可设定地址的单元可以是字节(8位)、存储页面(例如,64字节)、加密文本框(16字节)等。这些最小可设定地址的单元将被称为“块”。
每个第一表310可以包括标头312,标头312包含其受保护的窗口132的起始逻辑地址。每个第一表310可以进一步包括与受保护的窗口132中的块一样多的条目314。
条目314由逻辑地址(例如,整个逻辑地址或部分逻辑地址)索引。例如,逻辑地址具有基准(base)A和偏移L。第一表310可以由偏移L索引。偏移L指向条目314,条目314的值P使能够确定物理地址。在一些构造中,条目314的值可以代表物理地址自受保护的窗口132的开始的偏移。在其他构造中,条目314的值可以代表绝对物理地址、自存储页面的开始的偏移等。
第二表320包括标头322和针对未映射的物理地址的条目值的列表324。每个条目值使能够确定其对应的物理地址。物理地址空间比逻辑地址空间大至少一个物理存储器位置。因此,至少一个物理地址将始终是未映射的。
重新映射操作利用这个第二表320。考虑一种实施例,其中,第一表310和第二表320存储偏移值。在重新映射操作的开始处,逻辑地址的偏移L指向第一表310中的偏移。被索引的偏移(通过具有交叉阴影填充图案的盒代表)被称为“第一”偏移。
在框410处,从第二表320中的列表324中选择至未映射的物理地址的偏移(通过图3中的虚线代表这个动作)。所选择的偏移(通过具有布满斑点的填充图案的盒代表)被称为“第二”偏移。可以从列表324中随机或伪随机地选择第二偏移。
在框420处,以第二偏移替换第一表310中的第一偏移(通过图3中的点-虚线代表这个动作)。即,以从第二表320中选择的偏移替换通过逻辑地址索引的偏移。
在框430处,现在将第一偏移加入至未映射的地址的一偏移列表324。通过图3中的点-点-虚线代表这个动作。
在存储器存取的等级处发生重新映射。在此低等级处,没有程序概念。
如上所述,存储器控制器150可以以各种方法在计算系统110中实现。图5、图6和图7提供了三个实施例。
图5示出了包括中央处理单元(CPU)520的计算系统510,中央处理单元(CPU)520经由存储器总线540与外部系统存储器530通信。CPU520包括一个或多个核心522和存储器管理单元(MMU)524。存储器管理单元524接收来自核心522的逻辑地址,并且将逻辑地址转换为物理地址,其置于存储器总线540上。存储器管理单元524也执行如上所述的动态存储器地址重新映射。存储器管理单元524可以包括高速缓存存储器、寄存器、或用于实行表的其他私有存储器以及用于控制地址转换的逻辑。存储器地址重新映射不依赖于任何高速缓存存储方案。
图6示出了包括硬件层620和软件层630的虚拟机610。软件层630包括虚拟机软件632和应用软件634。虚拟机软件632在硬件层620上运行以将应用软件634使用的逻辑地址映射且重新映射至虚拟地址。虚拟地址可以通过虚拟机软件632和硬件层620的组合、或通过硬件层620中的存储器管理单元映射至物理地址。
图7示出了与在受让人的U.S.公开第20130117577号中描述的SOC架构类似的片上系统(SOC)架构。芯片710与片外外部系统存储器700通信。芯片710包括微处理器720、易失性内部存储器(例如,EDRAM)730以及存储器总线740。一些构造可以遵循针对片上系统(SOC)设计的核心连接TM总线架构,其中,微处理器720是动力PC(PowerPC)核心,并且存储器总线740是处理器本地总线(PLB)。
芯片710也包括被称为安全存储处理单元(“SMTU”)750的专用电路。SMTU750与微处理器720直接通信,并且经由存储器总线740与桥接器760通信。SMTU750经由第一存储器控制器770与外部系统存储器700通信,并且经由第二存储器控制器780与内部存储器730通信。
SMTU750提供加密和认证引擎752,以用于加密且认证存储在外部系统存储器700中的数据。被称为密钥材料存储754的专用存储器被用于存储针对加密和认证的密钥材料。SMTU750可以用作服务由微处理器720发起的读取和写入请求的从属单元或用作耦接至桥接器760的单元。
可以通过SMTU750执行地址转换和动态存储器地址重新映射。例如,SMTU750可以包括处理控制单元756,用于识别外部系统存储器中的受保护的窗口,并且决定如何保护在那些窗口中存储的数据。处理控制单元756也可以执行地址转换和动态存储器地址重新映射。如果重新映射利用诸如表的数据结构,则可以在内部存储器730中存储表。
在其他构造中,可以通过第一存储器控制器770执行地址转换和动态存储器地址重新映射。依然在其他构造中,微处理器720可以被编程为执行地址转换和动态存储器地址重新映射。
本文中的计算系统不限于任何特定用途。实施例包括飞行计算机、个人计算机、工作站、膝上型计算机以及智能移动设备。
Claims (15)
1.一种提供计算系统(110)中的安全性的方法,所述计算系统(110)包括具有逻辑地址空间的处理器(120)和具有物理地址空间的外部系统存储器(130、530、700),所述方法包括:
隐藏存储器存取模式,所述隐藏存储器存取模式包括响应于数据存取所述逻辑地址空间,而将所述逻辑地址空间动态地重新映射至所述物理地址空间。
2.根据权利要求1所述的方法,其中,在每个且每一次数据存取所述逻辑地址空间时执行所述重新映射。
3.根据权利要求1或2所述的方法,其中,每个重新映射包括将逻辑地址从第一物理地址重新映射至第二物理地址;并且其中,隐藏所述存储器存取模式进一步包括在所述第二物理地址处存储数据。
4.根据权利要求1或2所述的方法,其中,针对在逻辑地址处的每个读取操作,从所述外部系统存储器(130、530、700)中的第一物理地址读取数据,将所述逻辑地址从所述第一物理地址重新映射至第二物理地址,并且所述数据从所述第一物理地址移动至所述第二物理地址,所述逻辑地址仍未改变。
5.根据权利要求1所述的方法,其中,虚设读取操作先于每个写入操作,在所述虚设读取操作中,数据从所述第一物理地址处读取但不起作用;针对至逻辑地址的每个写入操作,将所述逻辑地址从第一物理地址重新映射至第二物理地址,并且在所述第二物理地址处存储数据,所述逻辑地址仍未改变。
6.根据权利要求1所述的方法,其中,所述物理地址空间比所述逻辑地址空间大至少一个物理地址,由于至少一个物理地址是未映射的;其中,第一数据结构包含针对映射至逻辑地址的那些物理地址的条目值;其中,第二数据结构包含针对每个未映射的物理地址的条目值;并且其中,以从所述第二数据结构中选择的条目值替换所述第一数据结构中被索引的条目值;并且其中,将每个替换的条目值加入所述第二数据结构,并且随机或伪随机地选择每个条目值。
7.根据权利要求6所述的方法,其中,每个条目值是自所述外部系统存储器(130、530、700)的受保护的窗口的相应开始地址的偏移。
8.一种计算系统(110),包括:
处理器(120),具有逻辑地址空间;
外部系统存储器(130、530、500),具有物理地址空间;以及
存储器控制器(150),用于隐藏对于所述外部系统存储器(130、530、700)的存储器存取模式,其中,隐藏所述存储器存取模式包括响应于数据存取所述逻辑地址空间,而将所述逻辑地址空间动态地重新映射至所述物理地址空间。
9.根据权利要求8所述的计算系统(110),其中,所述处理器(120)和所述存储器控制器(150)在中央处理单元(520)的芯片上。
10.根据权利要求8或9所述的计算系统(110),其中,所述计算系统(110)是虚拟机(610),所述虚拟机(610)具有实现所述存储器控制器(150)的虚拟机软件(632)和硬件层(620)。
11.根据权利要求8或9所述的计算系统(110),其中,所述计算系统(110)是片上系统(710),所述片上系统(710)包括与所述外部系统存储器(130、530、700)通信的电路(750);并且其中,所述电路(750)被配置为动态地执行存储器地址重新映射。
12.根据权利要求8或9所述的计算系统(110),其中,所述存储器控制器(150)被配置为在每个和每一次数据存取逻辑地址时执行所述重新映射。
13.根据权利要求8或9所述的计算系统,其中,所述存储器控制器(150)被配置为将逻辑地址从第一物理地址重新映射至第二物理地址,并且在所述第二物理地址处存储数据。
14.根据权利要求8或9所述的计算系统,其中,所述物理地址空间比所述逻辑地址空间大至少一个物理地址,由此至少一个物理地址是未映射的;其中,当进行数据存取逻辑地址时,所述逻辑地址已经经由第一偏移(L)映射至第一物理地址;并且其中,所述存储器控制器(150)被配置为选择至未映射的第二物理地址的第二偏移,并且以所述第二偏移替换所述第一偏移(L)。
15.一种针对计算系统(110)的存储器控制器,所述计算系统(110)包括外部系统存储器(130、530、700),所述存储器控制器(150)包括专用处理器(120),所述专用处理器(120)被配置为隐藏关于所述外部系统存储器(130、150、700)的存储器存取模式;所述隐藏存储器存取模式包括响应于数据存取逻辑地址空间,而将逻辑地址从所述外部系统存储器的第一物理地址重新映射至所述外部系统存储器(130、150、700)的第二物理地址;以及将数据发送至所述外部系统存储器(130、150、700)以存储在所述第二物理地址处。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/459,234 US20160048457A1 (en) | 2014-08-13 | 2014-08-13 | Dynamic memory address remapping in computing systems |
US14/459,234 | 2014-08-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373486A true CN105373486A (zh) | 2016-03-02 |
CN105373486B CN105373486B (zh) | 2020-02-28 |
Family
ID=53879376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510497924.1A Active CN105373486B (zh) | 2014-08-13 | 2015-08-13 | 计算系统中动态存储器地址的重新映射 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160048457A1 (zh) |
EP (1) | EP2998869B1 (zh) |
JP (1) | JP6739148B2 (zh) |
CN (1) | CN105373486B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933751A (zh) * | 2015-12-29 | 2017-07-07 | 澜起科技(上海)有限公司 | 用于保护动态随机访问存储器的方法和设备 |
CN108108122A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 控制器和存储器系统及其操作方法 |
CN108959127A (zh) * | 2018-05-31 | 2018-12-07 | 华为技术有限公司 | 地址转换方法、装置及系统 |
CN109582226A (zh) * | 2018-11-14 | 2019-04-05 | 北京中电华大电子设计有限责任公司 | 一种高速存储访问逻辑结构及其控制方法 |
CN112597071A (zh) * | 2020-12-09 | 2021-04-02 | 北京地平线机器人技术研发有限公司 | 数据存储方法、获取方法、装置、电子设备以及介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495111B2 (en) * | 2014-10-10 | 2016-11-15 | The Boeing Company | System and method for reducing information leakage from memory |
US10609171B2 (en) * | 2015-12-22 | 2020-03-31 | Intel IP Corporation | Methods and apparatus to improve interprocess communication |
US9747219B1 (en) * | 2016-02-25 | 2017-08-29 | Amazon Technologies, Inc. | Address remapping for efficient use of distributed memory |
US11843597B2 (en) * | 2016-05-18 | 2023-12-12 | Vercrio, Inc. | Automated scalable identity-proofing and authentication process |
US10082975B1 (en) | 2017-03-02 | 2018-09-25 | Micron Technology, Inc. | Obfuscation-enhanced memory encryption |
US10768863B2 (en) * | 2017-03-31 | 2020-09-08 | Intel Corporation | Security monitoring agent for field programmable gate array (FPGA) in-memory controller |
US10977182B2 (en) * | 2017-12-01 | 2021-04-13 | Micron Technology, Inc. | Logical block mapping based on an offset |
US11436154B2 (en) | 2017-12-01 | 2022-09-06 | Micron Technology, Inc. | Logical block mapping based on an offset |
US10831596B2 (en) | 2018-01-22 | 2020-11-10 | Micron Technology, Inc. | Enhanced error correcting code capability using variable logical to physical associations of a data block |
US11481336B2 (en) | 2019-08-19 | 2022-10-25 | Micron Technology, Inc. | Host assisted operations in managed memory devices |
US11604740B2 (en) * | 2020-12-01 | 2023-03-14 | Capital One Services, Llc | Obfuscating cryptographic material in memory |
US20220091758A1 (en) * | 2021-12-07 | 2022-03-24 | Intel Corporation | Securing sensitive data in memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106920A1 (en) * | 2008-10-29 | 2010-04-29 | Microsoft Corporation | Data location obfuscation |
US20130081103A1 (en) * | 2011-09-27 | 2013-03-28 | PCTEL Secure LLC | Enhanced Security SCADA Systems and Methods |
CN103793333A (zh) * | 2012-10-30 | 2014-05-14 | 北京兆易创新科技股份有限公司 | 非易失性存储器加密的方法和装置以及非易失性存储器 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1027134A (ja) * | 1996-07-12 | 1998-01-27 | Hitachi Ltd | アドレス変換装置およびこれを用いたプロセッサ |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
JP2001067258A (ja) * | 1999-08-25 | 2001-03-16 | Mitsubishi Electric Corp | フラッシュメモリ内蔵半導体装置及びフラッシュメモリアドレス変換方法 |
CA2305078A1 (en) * | 2000-04-12 | 2001-10-12 | Cloakware Corporation | Tamper resistant software - mass data encoding |
US20060129753A1 (en) * | 2004-12-14 | 2006-06-15 | Intel Corporation | Dynamic packing of volatile memory |
JP2007114979A (ja) * | 2005-10-19 | 2007-05-10 | Dainippon Printing Co Ltd | データファイルを共有化するicカードおよびicカード用プログラム |
JP4865694B2 (ja) * | 2007-12-28 | 2012-02-01 | ラピスセミコンダクタ株式会社 | プロセッサ装置 |
US20100262751A1 (en) * | 2009-04-09 | 2010-10-14 | Sun Microsystems, Inc. | Memory Control Unit Mapping Physical Address to DRAM Address for a Non-Power-of-Two Number of Memory Ranks Using Lower Order Physical Address Bits |
US20110191562A1 (en) * | 2010-02-02 | 2011-08-04 | Broadcom Corporation | Apparatus and method for partitioning, sandboxing and protecting external memories |
US8819386B1 (en) * | 2011-01-25 | 2014-08-26 | Emc Corporation | Memory efficient use of dynamic data structures used to manage sparsely accessed data |
US9396135B2 (en) * | 2011-05-18 | 2016-07-19 | University Of North Texas | Method and apparatus for improving computer cache performance and for protecting memory systems against some side channel attacks |
US8806171B2 (en) * | 2011-05-24 | 2014-08-12 | Georgia Tech Research Corporation | Systems and methods providing wear leveling using dynamic randomization for non-volatile memory |
US8843767B2 (en) * | 2011-07-06 | 2014-09-23 | The Boeing Company | Secure memory transaction unit |
JP2013097715A (ja) * | 2011-11-04 | 2013-05-20 | Nikon Corp | 電子機器およびプログラム |
US9015853B2 (en) * | 2012-06-15 | 2015-04-21 | The Regents Of The University Of California | Concealing access patterns to electronic data storage for privacy |
JP5801273B2 (ja) * | 2012-09-27 | 2015-10-28 | Kddi株式会社 | 記憶装置、アクセスパターンの秘匿方法およびプログラム |
JP2014126989A (ja) * | 2012-12-26 | 2014-07-07 | Sony Corp | 制御装置、制御方法、及び、プログラム |
US9740402B2 (en) * | 2014-03-28 | 2017-08-22 | Vmware, Inc. | Migrating workloads across host computing systems based on remote cache content usage characteristics |
-
2014
- 2014-08-13 US US14/459,234 patent/US20160048457A1/en not_active Abandoned
-
2015
- 2015-05-28 JP JP2015108535A patent/JP6739148B2/ja active Active
- 2015-08-12 EP EP15180820.1A patent/EP2998869B1/en active Active
- 2015-08-13 CN CN201510497924.1A patent/CN105373486B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106920A1 (en) * | 2008-10-29 | 2010-04-29 | Microsoft Corporation | Data location obfuscation |
US20130081103A1 (en) * | 2011-09-27 | 2013-03-28 | PCTEL Secure LLC | Enhanced Security SCADA Systems and Methods |
CN103793333A (zh) * | 2012-10-30 | 2014-05-14 | 北京兆易创新科技股份有限公司 | 非易失性存储器加密的方法和装置以及非易失性存储器 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933751A (zh) * | 2015-12-29 | 2017-07-07 | 澜起科技(上海)有限公司 | 用于保护动态随机访问存储器的方法和设备 |
CN106933751B (zh) * | 2015-12-29 | 2019-12-24 | 澜起科技股份有限公司 | 用于保护动态随机访问存储器的方法和设备 |
CN108108122A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 控制器和存储器系统及其操作方法 |
CN108108122B (zh) * | 2016-11-24 | 2021-01-29 | 爱思开海力士有限公司 | 控制器和存储器系统及其操作方法 |
CN108959127A (zh) * | 2018-05-31 | 2018-12-07 | 华为技术有限公司 | 地址转换方法、装置及系统 |
CN108959127B (zh) * | 2018-05-31 | 2021-02-09 | 华为技术有限公司 | 地址转换方法、装置及系统 |
US11341061B2 (en) | 2018-05-31 | 2022-05-24 | Huawei Technologies Co., Ltd. | Address translation method, apparatus, and system |
CN109582226A (zh) * | 2018-11-14 | 2019-04-05 | 北京中电华大电子设计有限责任公司 | 一种高速存储访问逻辑结构及其控制方法 |
CN112597071A (zh) * | 2020-12-09 | 2021-04-02 | 北京地平线机器人技术研发有限公司 | 数据存储方法、获取方法、装置、电子设备以及介质 |
CN112597071B (zh) * | 2020-12-09 | 2024-03-26 | 北京地平线机器人技术研发有限公司 | 数据存储方法、获取方法、装置、电子设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2998869B1 (en) | 2018-11-07 |
US20160048457A1 (en) | 2016-02-18 |
JP6739148B2 (ja) | 2020-08-12 |
JP2016042351A (ja) | 2016-03-31 |
EP2998869A1 (en) | 2016-03-23 |
CN105373486B (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105373486A (zh) | 计算系统中动态存储器地址的重新映射 | |
JP6162652B2 (ja) | メモリ管理装置、プログラム、及び方法 | |
US8028341B2 (en) | Providing extended memory protection | |
US7761676B2 (en) | Protecting memory by containing pointer accesses | |
US10210096B2 (en) | Multi-stage address translation for a computing device | |
EP3866017B1 (en) | Security check systems and methods for memory allocations | |
CN111753336A (zh) | 利用隐藏内联元数据的存储器保护 | |
CN101689146B (zh) | 分层的高速缓存标签架构 | |
US10303621B1 (en) | Data protection through address modification | |
CN110196757A (zh) | 虚拟机的tlb填写方法、装置及存储介质 | |
US9135187B2 (en) | Apparatus and method for protecting memory in multi-processor system | |
CN1288566C (zh) | 写入控制器结构中nv存储器的方法和系统 | |
WO2015033551A1 (ja) | ストアマージ処理装置、ストアマージ処理システム、ストアマージ処理方法、及び、記憶媒体 | |
TWI648625B (zh) | 管理位址獨立的頁面屬性 | |
CN109582601B (zh) | 缓存存储装置 | |
TW202101222A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
JP5464226B2 (ja) | 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム | |
US20100257319A1 (en) | Cache system, method of controlling cache system, and information processing apparatus | |
US20040015644A1 (en) | Cache memory and method for addressing | |
US20190129864A1 (en) | Capability enforcement controller | |
TWI724483B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
JP5224959B2 (ja) | キャッシュシステム | |
US11822481B2 (en) | Semiconductor device and method for controlling semiconductor device | |
US7181587B1 (en) | Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment | |
US20230103230A1 (en) | Translation lookaside buffer entry allocation system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |