-
公开(公告)号:CN111241010B
公开(公告)日:2022-08-02
申请号:CN202010053240.3
申请日:2020-01-17
Applicant: 中国科学院计算技术研究所
IPC: G06F12/0897 , G06F12/0877 , G06F12/084
Abstract: 本发明公开了一种缓存管理方法和数据处理装置,所述缓存管理方法用于包含一级或者多级缓存的处理器,每级缓存包括至少一个缓存组;该方法包括:将每个缓存组的缓存空间划分为持续小组和临时小组,所述持续小组和临时小组包括一个或者多个缓存行;在缓存中持续小组的数据块被投机的访存装载指令装载进来的数据块踢出持续小组时,将被踢出的数据块装入与该持续小组位于同一缓存组的临时小组;在投机的访存装载指令投机失败时,将被该投机的访存装载指令装载进来的数据块踢出持续小组的数据块回滚到其在被踢到临时小组前位于持续小组内的原始位置。本发明可以阻止熔断(Meltdown)和幽灵(Spectre)攻击这类利用投机执行发起的攻击,提高处理器的安全性。
-
公开(公告)号:CN109840411B
公开(公告)日:2021-01-08
申请号:CN201810164759.1
申请日:2018-02-27
Applicant: 中国科学院计算技术研究所
IPC: G06F21/53 , G06F12/1009 , G06F9/455
Abstract: 本发明涉及一种应用的保护方法和系统,包括:获取该应用,该应用包括第一部分应用和第二部分应用,内存空间包括安全区域;将应用该第一部分应用存放至该安全区域,应用第二部分应用存放至该安全区域外的该内存空间,将指向该安全区域的地址随机放置到虚拟地址空间中;当该虚拟地址空间内发生试探行为时,在该内存空间中随机移动该安全区域的位置,并在该安全区域原有位置遗留一个禁止访问的陷阱区域;当检测到任何对该陷阱区域的访问时,报出访问陷阱区域的警告信息给用户。随着试探次数的增多,安全区域被随机的次数也会增多,使得攻击者的下次试探会很大概率被捕获。
-
公开(公告)号:CN104750623A
公开(公告)日:2015-07-01
申请号:CN201310752024.8
申请日:2013-12-31
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
Abstract: 本发明实施例公开了一种内存虚拟化的方法及装置,涉及电子信息技术领域,能够在需要修改映射关系时,避免了使用宿主机的内核修改映射关系。本发明的方法包括:建立HVA层到硬盘的存储空间之间的映射关系;为客户机的进程在HVA层中分配地址空间,并建立GVA层到HVA层中的被分配的地址空间之间的映射关系;建立访存指令指向的HVA层中的被分配的地址空间上的地址到硬盘的存储空间之间的映射关系;从宿主机获取目标数据。本发明适用于将计算设备的内存虚拟化的场景中。
-
公开(公告)号:CN101763308B
公开(公告)日:2012-02-22
申请号:CN200910243917.3
申请日:2009-12-25
Applicant: 中国科学院计算技术研究所
IPC: G06F12/02
Abstract: 本发明提供一种在运行时对堆数据进行池分配的方法,包括接收堆数据的内存池分配请求;考察调用点上下文,将包含在包装函数中的所述调用点的地址和调用最上层包装函数的调用点的地址加入变长调用链;为从所述变长调用链所分配的堆数据对象选择内存池;从所述内存池中为所述堆数据分配空间。本发明能够解决关系不紧密的堆数据对象因为在同一个调用点分配而从同一个内存池分配的问题以及关系紧密的堆数据对象因为在不同的调用点分配而从不同的内存池分配的问题,提高了池分配的效果。
-
公开(公告)号:CN101763308A
公开(公告)日:2010-06-30
申请号:CN200910243917.3
申请日:2009-12-25
Applicant: 中国科学院计算技术研究所
IPC: G06F12/02
Abstract: 本发明提供一种在运行时对堆数据进行池分配的方法,包括接收堆数据的内存池分配请求;考察调用点上下文,将包含在包装函数中的所述调用点的地址和调用最上层包装函数的调用点的地址加入变长调用链;为从所述变长调用链所分配的堆数据对象选择内存池;从所述内存池中为所述堆数据分配空间。本发明能够解决关系不紧密的堆数据对象因为在同一个调用点分配而从同一个内存池分配的问题以及关系紧密的堆数据对象因为在不同的调用点分配而从不同的内存池分配的问题,提高了池分配的效果。
-
公开(公告)号:CN100359470C
公开(公告)日:2008-01-02
申请号:CN200410009287.0
申请日:2004-06-30
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了动静结合二进制翻译中静态信息不完备的处理方法及装置,通过预留必要的入口,由动态翻译执行器进行即时翻译,并通过和预留入口相链接的方式发挥系统的性能。增加设置入口和采用即时翻译,克服现有技术动态执行中长时间无法返回静态所生成的本地码的问题,以及动态是单纯采用解释执行效率低的问题,提高代码质量和系统整体性能。
-
公开(公告)号:CN100345117C
公开(公告)日:2007-10-24
申请号:CN200410074532.6
申请日:2004-09-07
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中对X86中浮点运算的处理方法,包括以下步骤:在运行时环境中设置一个浮点栈,用于仿真X86中的物理浮点栈;通过浮点寄存器映射的处理和归一方法依次对源二进制程序中的每个基本块进行处理。本发明通过用目标机器的寄存器来映射X86的源寄存器,保证了X86的浮点运算在目标机器上也是由寄存器来实现,确保运算的效率;采用归一的方法,确保每个基本块的入口满足每次top的值相同的假设,从本质上来讲,将Intel的运行过程中对投机假设的判别,用归一的方法进行了保证。本发明使得基本块不需要每次都去判别是否投机假设成立,省去了这一部分开销,提高了系统翻译效率,从而提高了系统性能。
-
公开(公告)号:CN1332308C
公开(公告)日:2007-08-15
申请号:CN200410069182.4
申请日:2004-09-10
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明涉及一种动态二进制翻译中的翻译方法,包括以下步骤:统计寻找翻译代码中频繁出现并影响翻译质量的翻译代码片断;找出上述代码片断中的指令模式;确定指令模式的翻译对应关系;扫描待翻译的基本块,寻找所述指令模式,找到,匹配成功,给所述指令模式做标记,否则,匹配未成功,结束扫描;翻译基本块,翻译时遇到标记的指令时,按照所述指令模式的翻译对应关系翻译,否则,按照常规翻译。本发明通过指令模式匹配来翻译基本块,降低代码重复优化导致的系统开销,提高翻译质量和效果,从而提高了动态二进制翻译的性能。
-
公开(公告)号:CN1892602A
公开(公告)日:2007-01-10
申请号:CN200510080339.8
申请日:2005-07-01
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中库函数调用的处理方法,尽可能地对源X86二进制程序中的库函数调用进行识别和提升;对于可包装库函数,用目标机本地的约定进行传参和返回值处理,这样省去了对X86参数压栈和从堆栈中取返回值的模拟,避免了频繁的内存操作,使用本地的库函数,也不会因为翻译PLT、fixup函数、库函数的源二进制代码造成代码膨胀导致的性能损失,提高了程序执行的效率;对于PLT短路库函数,虽然继续维护X86模拟堆栈,但是控制流不进入PLT和动态链接器的fixup函数,即不翻译PLT和动态链接器的fixup函数的源二进制代码,避免了因为翻译PLT、fixup函数造成代码膨胀导致的性能损失,控制流直接进入库函数的本地码,也能够较好地提高程序执行的效率。
-
公开(公告)号:CN1746850A
公开(公告)日:2006-03-15
申请号:CN200410074532.6
申请日:2004-09-07
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中对X86中浮点运算的处理方法,包括以下步骤:在运行时环境中设置一个浮点栈,用于仿真X86中的物理浮点栈;通过浮点寄存器映射的处理和归一方法依次对源二进制程序中的每个基本块进行处理。本发明通过用目标机器的寄存器来映射X86的源寄存器,保证了X86的浮点运算在目标机器上也是由寄存器来实现,确保运算的效率;采用归一的方法,确保每个基本块的入口满足每次top的值相同的假设,从本质上来讲,将Intel的运行过程中对投机假设的判别,用归一的方法进行了保证。本发明使得基本块不需要每次都去判别是否投机假设成立,省去了这一部分开销,提高了系统翻译效率,从而提高了系统性能。
-
-
-
-
-
-
-
-
-