一种ORAM的访问方法以及ORAM控制器与流程

文档序号:37277730发布日期:2024-03-12 21:13阅读:10来源:国知局
一种ORAM的访问方法以及ORAM控制器与流程

本技术涉及存储,尤其涉及一种oram的访问方法以及oram控制器。


背景技术:

1、随着数据规模的不断增大和存储技术的广泛应用,数据存储的安全性越来越重要。在存储领域中,计算设备通过采用不经意随机存储器(oblivious random accessmemory,oram)作为内存存储数据,从而保护数据的安全。

2、oram中通常包括位于处理器内部的缓存和位于处理器外部的内存。oram的控制器在执行处理器的读取请求时,先从外部内存中读取数据,然后写入内部缓存。并且,为了避免内部缓存出现数据溢出情况,oram的控制器还会尽可能多地将内部缓存的数据重新写入外部内存。这种移出机制会增加oram的控制器从外部内存中读取数据的次数,从而延长了处理器获得数据的时间,降低oram的性能。


技术实现思路

1、本技术提供了一种不经意随机存储器的访问方法及控制器,通过对oram中的数据块进行冷热管理,从而提升oram的性能。

2、第一方面,本技术提供了一种不经意随机存储器的访问方法。该方法可以由不经意随机存储器oram控制器执行。该方法包括:获取内存请求,该内存请求用于请求读取oram中存储的数据块;oram中包括可信内存和不可信内存,可信内存中包括不可驱逐区域和可驱逐区域;若数据块位于不可信内存,从不可信内存中读取数据块,以及将该数据块写入不可驱逐区域;若不可驱逐区域满足数据块溢出条件,将不可驱逐区域中的冷数据块写入可驱逐区域;若访问不可信内存的次数等于或大于第一阈值,将可驱逐区域中的冷数据块写入不可信内存。

3、上述方案中,将从不可信内存读取的数据块写入可信内存的不可驱逐区域,可以避免当前访问的数据块被重新写入不可信内存。此外,将不可驱逐区域的冷数据块写入可区域区域,可以避免不可驱逐区域发生数据溢出情况。在访问不可信内存的次数满足一定条件时,将可区域区域中的冷数据块写入不可信内存,可以解决现有技术可能将热数据块写入不可信内存增加访问不可信内存次数的情况。

4、在一种可能的实施方式中,若数据块位于可信内存,该方法还包括:若数据块位于所述可驱逐区域,从可驱逐区域中读取数据块,以及将数据块写入不可驱逐区域;若数据块位于不可驱逐区域,从不可驱逐区域中读取数据块。

5、上述方案中,在当前请求的数据块位于可驱逐区域时,将其写入不可驱逐区域,可以避免当前访问的数据块被重新写入不可信内存。

6、在一种可能的实施方式中,不可信内存中的数据块以数据结构组织,数据结构中包括多个路径,每个路径上均包括多个节点,每个节点均存储有至少一个数据块。其中,数据结构包括树形结构,树形结构包括二叉树。

7、上述方案中,使用数据结构对不可信内存中的数据进行组织和管理,可以提高从不可信内存中读取和写入数据块的效率,从而提升oram的性能。

8、在一种可能的实施方式中,从不可信内存中读取数据块包括:若当前访问之前的x次访问中每次访问的所述不可信内存的节点均包括多个路径中的一个路径上的所有节点,确定当前访问的不可信内存的节点包括数据块在数据结构中的路径上的前n个节点;或者,若x次访问中存在至少一次访问的不可信内存的节点包括多个路径中的一个路径上的前n个节点,确定当前访问的不可信内存的节点包括数据块在数据结构中的路径上的所有节点;从当前访问的不可信内存的节点中的每个节点中均读取至少一个数据块。

9、由于oram在一次访问不可信内存时,为了模糊访问模式,会从不可信内存中读取多个数据块。上述方案中,按照全路径访问和半路径访问相结合的访问规则访问不可信内存,可以减少从不可信内存中读取的数据块数量,从而减少对不可信内存冗余的访问操作。其中,全路径访问是指访问一个路径上的所有节点,半路径访问是指访问一个路径上的前n个节点。其中,n的取值可以根据实际需要进行设置。

10、在一种可能的实施方式中,数据块溢出条件包括如下的一个或多个:不可驱逐区域中的数据块的个数等于或大于第二阈值,不可驱逐区域中已使用的存储容量等于或大于第三阈值。

11、在一种可能的实施方式中,将可驱逐区域中的冷数据块写入不可信内存包括:从多个路径中确定驱逐路径;在驱逐路径与可驱逐区域中的冷数据块的历史路径不同的情况下,将驱逐路径与可驱逐区域中的冷数据块的历史路径的公共节点存储的数据块写入可信内存;将可驱逐区域中的冷数据块写入公共节点。其中,历史路径是指冷数据块在写入可信内存前在不可信内存对应的数据结构中的路径。

12、在一个实施例中,在驱逐路径与可驱逐区域中的冷数据块的历史路径相同的情况下,将驱逐路径的叶子节点存储的数据块写入可信内存,将可驱逐区域中的冷数据块写入公共节点。

13、在一种可能的实施方式中,在将不可驱逐区域中的冷数据块写入可驱逐区域之前,该方法还包括:使用lru算法确定不可驱逐区域中的冷数据块。

14、在一种可能的实施方式中,在将可驱逐区域中的冷数据块写入不可信内存之前,该方法还包括:使用lru算法确定可驱逐区域中的冷数据块。

15、在一种可能的实施方式中,可信内存包括:至少一个3d堆叠内存,不可信内存包括:至少一个dram和/或至少一个nvm。

16、第二方面,本技术提供一种不经意随机存储器的访问装置。该访问装置包括:获取模块和读取模块。

17、其中,获取模块用于获取内存请求,该内存请求用于请求读取oram中存储的数据块;oram中包括可信内存和不可信内存,可信内存中包括不可驱逐区域和可驱逐区域。

18、其中,读取模块用于若数据块位于不可信内存,从不可信内存中读取数据块,以及将该数据块写入不可驱逐区域;若不可驱逐区域满足数据块溢出条件,将不可驱逐区域中的冷数据块写入可驱逐区域;若访问不可信内存的次数等于或大于第一阈值,将可驱逐区域中的冷数据块写入不可信内存。

19、在一种可能的实施方式中,读取模块还用于:若数据块位于所述可驱逐区域,从可驱逐区域中读取数据块,以及将数据块写入不可驱逐区域;若数据块位于不可驱逐区域,从不可驱逐区域中读取数据块。

20、在一种可能的实施方式中,不可信内存中的数据块以数据结构组织,数据结构中包括多个路径,每个路径上均包括多个节点,每个节点均存储有至少一个数据块。

21、在一种可能的实施方式中,读取模块具体用于:若当前访问之前的x次访问中每次访问的所述不可信内存的节点均包括多个路径中的一个路径上的所有节点,确定当前访问的不可信内存的节点包括数据块在数据结构中的路径上的前n个节点;或者,若x次访问中存在至少一次访问的不可信内存的节点包括多个路径中的一个路径上的前n个节点,确定当前访问的不可信内存的节点包括数据块在数据结构中的路径上的所有节点;从当前访问的不可信内存的节点中的每个节点中均读取至少一个数据块。

22、在一种可能的实施方式中,数据块溢出条件包括如下的一个或多个:不可驱逐区域中的数据块的个数等于或大于第二阈值,不可驱逐区域中已使用的存储容量等于或大于第三阈值。

23、在一种可能的实施方式中,读取模块具体用于:从多个路径中确定驱逐路径;将驱逐路径与可驱逐区域中的冷数据块的历史路径的公共节点存储的数据块写入可信内存;历史路径是指冷数据块在写入可信内存前在不可信内存对应的数据结构中的路径;将可驱逐区域中的冷数据块写入公共节点。

24、在一种可能的实施方式中,读取模块还用于:使用lru算法确定不可驱逐区域中的冷数据块。

25、在一种可能的实施方式中,读取模块还用于:使用lru算法确定可驱逐区域中的冷数据块。

26、在一种可能的实施方式中,可信内存包括:至少一个3d堆叠内存,不可信内存包括:至少一个dram和/或至少一个nvm。

27、第三方面,本技术提供一种oram控制器。该oram控制器用于执行前述第一方面及其可选实施方式中的方法。

28、第四方面,本技术提供一种计算设备。计算设备包括:处理器和存储器。该处理器用于执行存储于存储器内的计算机程序以实现前述第一方面及其可选实施方式中的方法。

29、第五方面,本技术提供一种计算机可读存储介质。计算机可读存储介质包括指令。当指令在计算机上运行时,使得计算机执行如实现前述第一方面及其可选实施方式中的方法。

30、第六方面,本技术提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及其可选实施方式中的方法。

31、上述提供的任一种访问装置或控制器或计算设备或计算机存储介质或计算机程序产品,均用于执行上文所提供的访问方法,因此,其所能达到的有益效果可参考上文提供的对应方法中的对应方案的有益效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1