CN110058947B - 缓存空间的独占解除方法及相关装置 - Google Patents

缓存空间的独占解除方法及相关装置 Download PDF

Info

Publication number
CN110058947B
CN110058947B CN201910346351.0A CN201910346351A CN110058947B CN 110058947 B CN110058947 B CN 110058947B CN 201910346351 A CN201910346351 A CN 201910346351A CN 110058947 B CN110058947 B CN 110058947B
Authority
CN
China
Prior art keywords
exclusive
cache space
current
space unit
unit
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.)
Active
Application number
CN201910346351.0A
Other languages
English (en)
Other versions
CN110058947A (zh
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN201910346351.0A priority Critical patent/CN110058947B/zh
Publication of CN110058947A publication Critical patent/CN110058947A/zh
Application granted granted Critical
Publication of CN110058947B publication Critical patent/CN110058947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种缓存空间的独占解除方法及相关装置,方法包括:接收指令的缓存空间的独占解除请求,独占解除请求包括指令的指令内存地址标识和指令的所属进程的进程标识;根据指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元;当当前独占缓存空间单元为被所属进程独占状态时,对当前独占缓存空间单元进行独占解除;当当前独占缓存空间单元为被所属进程独占初始化状态时,对当前独占缓存空间单元进行独占初始化解除。本发明实施例所提供的缓存空间的独占解除方法及相关装置能够降低攻击者在缓存空间利用侧信道攻击技术窃取敏感数据甚至控制程序执行的风险,提高缓存空间的安全性,并保证缓存空间的利用率。

Description

缓存空间的独占解除方法及相关装置
技术领域
本发明实施例涉及缓存安全技术领域,具体涉及一种缓存空间的独占解除方法及相关装置。
背景技术
缓存(Cache)是数据交换的缓冲区,由于其运行速度比内存快很多,能够帮助硬件快速运行,而得到广泛的应用;为充分协调运行速度和成本之间的矛盾,出现了多级缓存的方式。
在利用缓存技术时,为了节约成本,操作系统与虚拟机管理器等会共享最后一级缓存,然而,在这种情况下,尽管采用了加密技术,攻击者仍可以利用Cache侧信道攻击技术进行攻击,例如攻击者可利用在运行过程中的时间消耗、功率消耗或电磁辐射之类的信息进行攻击,而Cache侧信道攻击存在敏感信息被窃取,甚至程序执行被控制的风险。
因此,如何提高缓存空间的安全性,成为了本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种缓存空间的独占解除方法及相关装置,以降低攻击者在缓存空间利用侧信道攻击技术窃取敏感数据甚至控制程序执行的风险,提高缓存空间的安全性。
为实现上述目的,本发明实施例提供如下技术方案:
为解决上述问题,本发明实施例提供一种缓存空间的独占解除方法,包括:
接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识;
根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元;
当所述当前独占缓存空间单元为被所述所属进程独占状态时,对所述当前独占缓存空间单元进行独占解除;当所述当前独占缓存空间单元为被所述所属进程独占初始化状态时,对所述当前独占缓存空间单元进行独占初始化解除。
可选地,还包括:
在对前一个独占缓存空间单元进行独占解除或对对前一个独占缓存空间单元进行独占初始化解除后,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段时,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,转向执行所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤。
可选地,还包括:
当所述当前独占缓存空间单元是被异于所述所属进程的进程独占或独占初始化时,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,转向执行所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤。
可选地,所述对所述当前独占缓存空间单元进行独占解除的步骤包括:
将所述当前独占缓存空间单元的独占状态位更新为非独占状态;
将与所述当前独占缓存空间单元对应的当前独占缓存空间单元表表项的独占状态位更新为独占初始化状态;
将所述当前独占缓存空间单元表表项的进程标识位更新为非独占标识。
可选地,所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤包括:
当所述所属进程为申请独占的进程时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
可选地,所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤还包括:
当所述指令内存地址标识属于所述所属进程的分配内存地址标识时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。为解决上述问题,本发明实施例还提供一种缓存空间的独占解除装置,包括:
独占解除请求接收单元,适于接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识;
当前独占缓存空间单元获取单元,适于根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元;
独占解除单元,适于当所述当前独占缓存空间单元为被所述所属进程独占状态时,对所述当前独占缓存空间单元进行独占解除;当所述当前独占缓存空间单元为被所述所属进程独占初始化状态时,对所述当前独占缓存空间单元进行独占初始化解除。
可选地,还包括:
当前地址标识段获取单元,适于在对前一个独占缓存空间单元进行独占解除或对对前一个独占缓存空间单元进行独占初始化解除后,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段时,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,发送至所述独占解除当前独占缓存空间单元获取单元。
可选地,
所述当前地址标识段获取单元,还适于当所述当前独占缓存空间单元是被异于所述所属进程的进程独占或独占初始化时,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,发送至所述独占解除当前独占缓存空间单元获取单元。
可选地,所述独占解除单元包括:
空间独占状态位独占解除单元,适于将所述当前独占缓存空间单元的独占状态位更新为非独占状态;
表项独占状态位独占解除单元,适于将与所述当前独占缓存空间单元对应的当前独占缓存空间单元表表项的独占状态位更新为独占初始化状态;
表项进程标识位独占解除单元,适于将所述当前独占缓存空间单元表表项的进程标识位更新为非独占标识。
可选地,
所述当前独占缓存空间单元获取单元,还适于当所述所属进程为申请独占的进程时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
可选地,
所述当前独占缓存空间单元获取单元,还适于当所述指令内存地址标识属于所述所属进程的分配内存地址标识时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
为解决上述问题,本发明实施例还提供一种中央处理器,适于执行实现如前述的缓存空间的独占解除方法的程序。
为解决上述问题,本发明实施例还提供一种存储介质,所述存储介质存储有适于缓存空间独占初始化执行的程序,以实现如前述的缓存空间的独占解除方法。
本发明实施例所提供的缓存空间的独占解除方法及装置,其中方法包括:接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程;根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元;当所述当前独占缓存空间单元为被所述所属进程独占状态时,对所述当前独占缓存空间单元进行独占解除;当所述当前独占缓存空间单元为被所述所属进程独占初始化状态时,对所述当前独占缓存空间单元进行独占初始化解除。可以看出,本发明实施例所提供的缓存空间的独占解除方法,接收指令的缓存空间的独占解除请求后,根据独占解除请求中的指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元,而当当前独占缓存空间单元正在被所属进程独占或独占初始化时,对当前独占缓存空间单元进行独占解除或独占初始化解除,以使当前独占缓存空间单元能够被其他进程使用。这样,本发明所提供的缓存空间的独占解除方法,一方面保证了在独占缓存空间单元被指令的所属进程以外的进程独占时,不会对其进行独占解除操作,防止其他进程共享该当前独占缓存空间单元,从而可以降低攻击者在缓存空间利用侧信道攻击技术窃取敏感数据甚至控制程序执行的风险,提高缓存空间的安全性;另一方面,在独占缓存空间单元独占完成后,及时地解除独占,提高缓存空间的利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是一种系统架构示意图;
图2是一种内存地址与独占缓存空间单元的对应关系示意图;
图3是一种缓存空间独占的系统架构示意图;
图4是本发明实施例所提供的缓存空间的独占解除方法的一种流程示意图;
图5为本发明实施例所提供的缓存空间的独占解除方法的另一流程示意图;
图6为本发明实施例所提供的缓存空间的独占解除方法的又一流程示意图:
图7为本发明实施例提供的缓存空间的独占解除装置的一种可选框图;
图8为图7所示的独占解除单元的一种可选框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为一种可选示例,图1示出了一种包含缓存空间的系统架构图,如图1所示,系统架构可以包括:CPU(Central Processing Unit,中央处理器)多核独占部分和CPU多核共享部分。
其中,CPU多核独占部分包括执行单元11,存储管理单元12和缓存中的除了最后一级缓存22以外,包括一级缓存13在内的多级缓存;而CPU多核共享部分包括缓存中的最后一级缓存22和内存21。
存储管理单元12管理内存21,并保证内存21与执行单元11之间的数据交换,而在存储管理单元12和内存21之间设置的缓存则可以加快数据交换的效率,由于缓存的成本很高,为了降低成本,当设置多级缓存时,最后一级缓存22一般会设置为多核共享。
在最后一级缓存22多核共享的情况下,为了保证安全性,会使用安全隔离技术,安全隔离技术是指通过在中央处理器中增加新的安全指令集,使用户的进程可以在一个与操作系统或虚拟机管理器隔离的安全飞地环境内执行,以保证用户程序运行时,任何其他试图访问安全飞地内存空间的进程(包括操作系统进程或虚拟机管理器的进程)都会被中央处理器阻止,从而通过限制访问的方式实现安全性的提高。
但是攻击者利用缓存侧信道攻击技术时,无需访问内存空间,仅通过对最后一级缓存的时间消耗、功率消耗或电磁辐射等信息就可实现对用户程序的攻击。
因此,最后一级缓存22的多核共享设置,使得即使在适用了安全隔离技术的情况下,攻击者仍然可以利用缓存侧信道攻击技术对用户程序进行攻击,窃取敏感信息,甚至控制程序执行。
为解决上述问题,本发明实施例提供了一种缓存空间的独占解除方法,以保证在独占缓存空间单元(即可以独占的缓存空间单元)被指令的所属进程以外的进程独占时,不会对其进行独占解除操作,防止其他进程共享该当前独占缓存空间单元,从而可以降低攻击者在缓存空间利用侧信道攻击技术窃取敏感数据甚至控制程序执行的风险,提高缓存空间的安全性;另一方面,在独占缓存空间单元独占完成后,及时地解除独占,提高缓存空间的利用率。
可以理解的是,缓存空间由多个缓存空间单元组成,一般一个缓存空间单元的大小为64字节,内存地址与缓存空间单元之间具有相应的对应关系,因此,根据内存地址标识可以找到缓存空间单元。
具体地,由于缓存空间单元的大小是受硬件结构确定的,为保证与一个缓存空间单元所对应的内存地址标识段中的数据能够存储在一个缓存空间单元内,因此,一个内存地址标识段的大小也为64字节。受到缓存空间的限制,不同时刻,同一个缓存空间单元可能会对应多个内存地址标识段,即一个内存地址标识段的数据在缓存空间单元A释放后,下一时刻,另外一个内存地址标识段的数据可以存入所述缓存空间单元A;当然,同一时刻,缓存空间单元与内存地址标识段之间是一一对应的关系。
具体地,图2提供了一种内存地址与独占缓存空间单元的对应关系示意图,从图中可以清楚地看到内存地址与缓存空间单元的对应关系。
为了保证缓存空间单元可以被独占,需要在缓存空间单元中设置独占状态位,以确定该缓存空间单元的状态,为方便描述,本文将具有独占状态位的缓存空间单元称为独占缓存空间单元,能够应用本发明实施例所提供的缓存空间的独占解除方法的缓存空间单元即为独占缓存空间单元,即:最后一级共享缓存空间的缓存空间单元为具有独占状态位的独占缓存空间单元。
具体独占缓存空间单元的结构可以继续参考图2,比如:最后一级cache的片0-核0、集1、1路即为一个独占缓存空间单元,其中独占位置即为该独占缓存空间单元的独占状态位。
在一种具体实施例中,可以设置当独占缓存空间单元的独占状态位为1时,标识该独占缓存空间单元处于被独占状态(独占更新),当独占缓存空间单元的独占状态位为0时,标识该独占缓存空间单元处于未被独占状态,可以理解的是,独占缓存空间单元的未被独占状态包括了已经被独占初始化但未被独占更新和未被独占初始化的状态,为了明确标识独占缓存空间单元的状态,在一种具体实施方式中,可以通过与独占缓存空间单元对应的独占缓存空间单元表来标识;在其他具体实施方式中,还可以通过在独占缓存空间单元中设置初始化状态位的方式来标识。
为了描述方便,本发明实施例以使用独占缓存空间单元表的方式进行说明:
请参考图3,图3是一种缓存空间独占的系统架构示意图。
为了及时掌握独占缓存空间单元的独占情况,在一种具体实施方式中,建立独占缓存空间单元记录器23,其中包含:独占缓存空间单元表,以记录各个独占缓存空间单元的使用情况,独占缓存空间单元表的各个表项可以包括独占缓存空间单元标识位、独占状态位和进程标识位。
其中,独占缓存空间单元标识位用于标识该独占缓存空间单元表表项记录的是哪个独占缓存空间单元的独占情况,具体实施例中,可以通过在独占缓存空间单元标识位记录独占缓存空间单元的编号实现;独占缓存空间单元表的独占状态位用于标识在独占缓存空间单元标识位记录的独占缓存空间单元是否处于独占更新状态,在一种具体实施方式中,可以通过2位二进制进行标识,00表明所述独占缓存空间单元处于独占初始化的状态,01表明所述独占缓存空间单元处于独占更新状态;进程标识位用于标识在独占缓存空间单元标识位记录的独占缓存空间单元是否被独占,如果被独占是被哪一个进程独占,在一个具体实施例中,可以通过将进程标识位全部二进制位设定为0表明该独占缓存空间单元处于非独占状态,通过将进程标识位设定为指令的所属进程的进程标识表明该独占缓存空间单元处于被分配给所属进程的状态,结合独占状态位的标识,可以确定该独占缓存空间单元已经被所属进程独占或者已经为所属进程独占初始化。
在一种具体实施方式中,进程标识可以为进程的CR3寄存器中存储的值,当然,在其他实施例中,也可以通过其他值作为进程的进程标识,只要能够唯一地标识进程即可。
表1示出了本发明实施例一种独占缓存空间单元表表项的结构。
表1独占缓存空间单元表表项
Figure BDA0002042394910000091
由表1可以看出,在一种具体实施例中,进程标识位记录的为简化进程标识,这是由于进程标识的位数一般较多,会导致独占缓存空间单元表所占用的空间较大,为了减小独占缓存空间单元表所占用的空间,可以设置进程标识对应表,因此,独占缓存空间单元记录器23中还可以包括进程标识对应表,请参考表2,表2为进程标识对应表的表项结构示意,可以看出,进程标识对应表可以包括记录所述进程标识的进程标识位和记录所述简化进程标识的简化进程标识位,如表1中所示,简化进程标识位可以仅占用6位二进制位,在一种具体实施例中,当独占缓存空间单元未被独占时,6位全部为0,当独占缓存空间单元被独占时,记录简化进程标识,从而在独占缓存空间单元表中的进程标识位只需要记录简化进程标识,减小了独占缓存空间单元表所占用的空间。
表2进程标识对应表
进程标识位 简化进程标识位
进程标识 简化进程标识
在另一种具体实施例中,独占缓存空间单元标识位可以通过独占缓存空间单元的位置与表项在表中的位置关系来对应,比如:排列第一的独占缓存空间单元所对应的表项在表中排列第一的位置,从而可以进一步减小独占缓存空间单元表的长度,进而减小所占用的空间。
当然,在其他实施例中,还可以根据需要扩展独占缓存空间单元表的长度,进而表示某个独占缓存空间单元的更丰富的信息。
具体地,独占缓存空间单元表所占用的空间的计算公式可以为:独占缓存空间的大小/独占缓存空间单元的大小*表项所占用的空间大小;比如:如果独占缓存空间的大小为64MB,独占缓存空间单元的大小为64B,表项所占用的空间大小为1个字节(独占缓存空间单元标识位省略的情况下),那么独占缓存空间单元表所占用的空间大小为64MB/64B*1=1MB。
受到缓存空间的限制,在基本满足进程对于独占缓存空间单元的使用要求的基础上,较大限度地提高缓存空间的利用率,还可以设置同一进程可以独占的独占缓存空间单元的数量,当接收到新的请求的情况下,首先判断所申请的独占缓存空间单元的数量与已经为同一进程分配的独占缓存空间单元的数量之和是否小于或等于同一进程可以独占的独占缓存空间单元的数量。
具体地,可以通过独占缓存空间单元表中进程标识位的进程标识,确定同一进程标识的独占缓存空间单元表表项的数量,进而确定已经为进程分配的独占缓存空间单元的数量,而所申请的独占缓存空间单元的数量则可以通过指令内存地址标识与缓存空间单元的对应关系确定。
同一进程可以独占的独占缓存空间单元的数量可以通过动态配置的方式进行配置,比如:可以通过BIOS(Basic Input Output System,基本输入输出系统)进行配置,可以根据缓存空间的大小,在BIOS中提供不同大小的独占缓存空间大小(也可以以独占缓存空间单元的数量来顶)的选项,比如4K、8K、16K等等,然后根据进程的需要进行配置。
除了限定同一进程可以同时独占的独占缓存空间单元表的数量,受到缓存空间的限制,还需要确定可以同时独占不同的独占缓存空间单元的进程的数量,在一种具体实施例中,可以设置同时独占不同的独占缓存空间单元的进程的数量最多可以为64个,在其他实施例中,还可以根据需要设置更多个或者更少的同时处于独占状态(包括独占初始化和独占更新)的进程数量。
为了解当前状态下,已经有多少个进程已经对独占缓存空间单元进行了独占初始化或者独占更新更新,为此还可以记录处于独占初始化和独占更新状态的进程的数量,当进程的数量小于设定的最大值时,还可以为新的进程分配独占缓存空间单元。
在设置了进程标识对应表的情况下,可以利用进程标识对应表实现对于进程数量的控制,具体地,可以设置进程标识对应表中的总表项数等于可以同时处于独占状态(包括独占初始化和独占更新)的进程的数量最大值,当进程标识对应表中还包括空表项时,则证明还可以为没有在进程标识对应表中存在的新的进程分配独占缓存空间单元。
可以理解的是,在具体的缓存空间的独占机制中,为保证缓存空间的顺利独占,需要经过缓存空间的独占初始化和独占更新,而为了提高缓存空间的利用效率,还需要及时释放使用完成的缓存空间,这就需要经过缓存空间的独占解除,因此,本发明实施例所提供的具体方法包含缓存空间的独占解除方法。
可见,作为本发明实施例的一种可选实现,如图3所示,CPU多核共享部分除了内存21和最后一级缓存22以外,还包括缓存空间单元记录器23,其中可以包含独占缓存空间单元记录表,根据需要,在一种具体实施例中,还可以包括进程标识对应表。
程序运行过程中,程序中如果包含指令的缓存空间的独占初始化请求、独占更新请求或者独占解除请求,存储管理单元12会根据请求中的内存地址标识了解其所对应的缓存空间单元的情况,具体可以根据缓存空间单元记录器23中的记录以及独占缓存空间单元的独占状态记录,确定是否满足执行要求,如果满足,则更改缓存空间单元记录器23中的记录,并由执行单元11执行相应操作,否则,则停止执行。
尽管标识和确定独占缓存空间单元独占状态的方式可以有多种,但由于独占缓存空间单元表的设置可以使具体操作更为简单,为此,以下实施例中以建立了独占缓存空间单元表的方式进行说明,当然,可以理解的是,通过其他方式标识、确定和修改方式,实现缓存空间的独占解除的方法,也在本发明的保护范围内。
可以理解的是,独占缓存空间在被进程独占使用或独占初始化后,当进程不再需要独占缓存空间时,可以通过缓存空间的独占解除方法解除对缓存空间的独占,从而让其他进程也可以恢复对相应缓存空间的使用,保证缓存空间利用的高效性。
作为本发明实施例的一种可选实现,图4公开了一种缓存空间的独占解除方法的可选流程,基于图4所示的流程示意图,本发明实施例可实现对缓存空间单元的独占解除。
参照图4所示,本发明实施例所提供的独占解除方法流程可以包括:
步骤S10:接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识。
指令的独占解除请求可以是设置在程序中,当程序不再需要独占缓存空间时,发出指令的缓存空间的独占解除请求,或者当程序在正常或异常退出时,进程有未被释放的独占的缓存空间,也会发出指令的缓存空间的独占解除请求。
而本发明实施例所提供的独占解除方法的执行主体(在一种实施例中可以为前述的存储管理单元),接收指令的独占解除请求,并获取请求中的指令内存地址标识和指令的所属进程的进程标识。
与指令的缓存空间的独占初始化请求相同,指令可以为代码的缓存空间独占指令,也可以为数据的缓存空间独占指令。
当指令为代码的缓存空间独占指令(CAREI)时,在一种具体实施方式中,可以以通用寄存器rax和通用寄存器rbx为操作数,其中通用寄存器rax中存放了需要独占缓存空间单元的代码内存开始地址;通用寄存器rbx中存放了需要独占缓存空间单元的代码内存结束地址。如果用汇编语言的代码表示,可以描述如下:
mov i_start_addr,rax
mov i_end_addr,rbx
CAREI
而对于数据的缓存空间独占指令(CARED),也可以包括两个操作数,通用寄存器rax和通用寄存器rbx,其中通用寄存器rax中存放了需要独占缓存空间单元的数据内存开始地址;通用寄存器rbx中存放了需要独占缓存空间单元的数据内存地址长度。如果用汇编语言的代码表示,可以描述如下:
mov d_start_addr,rax
mov d_len,rbx
CARED
可以看出,在一种实施例中,指令内存地址标识可以为指令的内存开始地址和结束地址,在其他实施例中,指令内存地址标识可以为指令的内存开始地址和内存地址长度。
步骤S11:根据所述指令内存地址标识的当前地址标识段获取其对应的当前独占缓存空间单元的当前独占缓存空间单元表表项。
指令内存地址标识通过指令的内存开始地址和结束地址表示,或者通过指令的内存开始地址和内存地址长度表示,而独占缓存空间单元的大小通常为64字节,为与独占缓存空间单元对应,指令内存地址表示会被划分为多个地址标识段,其中一个地址标识段与一个独占缓存空间单元对应。
独占缓存空间单元表表项是与独占缓存空间单元一一对应的关系,记录独占缓存空间单元的独占情况。
具体地,独占缓存空间单元表表项与独占缓存空间单元的对应关系可以是通过将独占缓存空间单元的编号记录于独占缓存空间单元表表项的独占缓存空间单元标识位,在其他实施方式中,可以通过独占缓存空间单元在独占缓存空间的位置与独占缓存空间单元表表项在独占缓存空间单元表中的位置的对应关系确定,从而可以较小独占缓存空间单元表占用的空间。
在进程独占解除时,会按照指令内存地址标识一一获取地址标识段,进而获取与地址标识段相对应的独占缓存空间单元和独占缓存空间单元表表项。为方便描述,将正在执行进程独占初始化方法的地址标识段称为当前地址标识段。
因此,在接收到指令的独占缓存解除请求后,需根据指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的当前独占缓存空间单元表表项。
在其他实施方式中,如果未建立当前独占缓存空间单元的当前独占缓存空间单元表表项,而当前缓存空间单元的独占状态以其他方式标识,则可以以其他方式获取当前缓存空间单元的独占进程和独占状态。
S12、判断所述当前独占缓存空间单元表表项的进程标识位是否为所述所属进程的进程标识,若是,执行步骤S13,若否,执行步骤S15。
由于独占缓存空间单元表表项的进程标识位记录了独占或者独占初始化与其对应的独占缓存空间单元的进程,因此,获取到当前独占缓存空间单元表表项后,就可以判断当前独占缓存空间单元表表项的进程标识位所记录的是否为所属进程的进程标识,如果是,则证明当前独占缓存空间单元正在被所属进程独占或者独占初始化,则执行步骤S13,进一步判断是否正处于独占状态;如果不是,则证明当前独占缓存空间单元未被独占,或者正在被所属进程以外的进程独占或独占初始化,如果未被独占,则无需进行独占解除,如果正在被所属进程以外的进程独占或独占初始化,为保证进程执行的安全性,则不能对当前独占缓存空间单元进行独占解除,从而执行步骤S15。
步骤S13:判断所述当前独占缓存空间单元表表项的独占状态位为独占状态,若是,执行步骤S14,若否,执行步骤S17。
当确定了当前独占缓存空间单元正在被所属进程独占或者独占初始化后,进一步根据当前独占缓存空间单元表表项的独占状态位的记录,确定当前独占缓存空间单元是否正在被所属进程独占?如果正处于独占使用,则执行步骤S14;否则,则当前独占缓存空间单元正处于独占初始化状态,则执行步骤S17。
步骤S14:对所述当前独占缓存空间单元和所述当前独占缓存空间单元表表项进行独占解除。
确定了当前独占缓存空间单元正在独占时,根据指令的独占解除请求,需要对当前独占缓存空间单元和所述当前独占缓存空间单元表表项进行独占解除。
具体对当前独占缓存空间单元进行独占解除可以包括:
将所述当前独占缓存空间单元的独占状态位更新为非独占状态;
将所述当前独占缓存空间单元表表项的独占状态位更新为独占初始化状态;
将所述当前独占缓存空间单元表表项的进程标识位更新为非独占标识。
其中,在一种具体实施方式中,当前独占缓存空间单元进行独占解除可以为,将所述当前独占缓存空间单元的独占状态位更新为0;将所述当前独占缓存空间单元表表项的独占状态位更新为00;将所述当前独占缓存空间单元表表项的进程标识位更新为000000。
步骤S15:判断所述指令内存地址标识中是否还存在未曾获取独占缓存空间单元表表项的地址标识段,若是,执行步骤S16,若否,执行步骤S18。
指令内存地址标识包含多个地址标识段,一个地址标识段与一个独占缓存空间单元对应,当完成了对当前地址标识段的独占解除后,还需要继续进行下一个地址标识段的处理,因此需要判断指令内存地址标识中是否还存在未曾获取独占缓存空间单元表表项的地址标识段。
如果指令内存地址标识中还存在未曾获取独占缓存空间单元表表项的地址标识段,那么执行步骤S16:获取所述未曾获取独占缓存空间单元表的地址标识段,并将未曾获取独占缓存空间单元表的地址标识段作为当前地址标识段;如果指令内存地址标识中不存在未曾获取独占缓存空间单元表表项的地址标识段,那么表明指令内存地址标识中的全部地址标识段都已经独占解除完毕,执行步骤S18:结束,独占解除的工作完成。
步骤S16:获取所述未曾获取独占缓存空间单元表表项的地址标识段,并将未曾获取独占缓存空间单元表表项的地址标识段作为当前地址标识段。
如果存在未曾获取独占缓存空间单元表表项的地址标识段,就获取该地址标识段,并让该地址标识段作为当前地址标识段,然后执行步骤S11。
步骤S17:对所述当前独占缓存空间单元进行独占初始化解除。
确定了当前独占缓存空间单元正处于独占初始化时,根据指令的独占解除请求,需要对当前独占缓存空间单元进行独占初始化解除。
具体对当前独占缓存空间单元进行独占初始化解除可以为:
将所述当前独占缓存空间单元表表项的进程标识位更新为非独占标识。
其中,在一种具体实施方式中,当前独占缓存空间单元进行独占初始化解除可以为将所述当前独占缓存空间单元表表项的进程标识位更新为000000。完成对当前独占缓存空间单元的独占初始化解除后,再执行步骤S15.
步骤S18:结束。
当指令内存地址标识中的全部地址标识段都经过处理后,则结束缓存空间的独占解除。
可以看出,本发明实施例所提供的缓存空间的独占解除方法,接收指令的缓存空间的独占解除请求后,根据独占解除请求中的指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元表表项,而当前独占缓存空间单元表表项中的进程标识位则记录正在独占的进程,当进程标识位为所属进程时,进一步确定当前独占缓存空间单元表表项中的独占状态位为正在独占状态,在对当前独占缓存空间单元表表项进行独占解除,以使当前独占缓存空间单元能够被其他进程使用。
这样,本发明所提供的缓存空间的独占解除方法,一方面保证了在独占缓存空间单元被指令的所属进程以外的进程独占时,不会对其进行独占解除操作,防止其他进程共享该当前独占缓存空间单元,从而可以降低攻击者在缓存空间利用侧信道攻击技术窃取敏感数据甚至控制程序执行的风险,提高缓存空间的安全性;另一方面,在独占缓存空间单元独占完成后,及时地解除独占,提高缓存空间的利用率。
为提高处理效率,在根据指令内存地址标识的当前地址标识段获取其对应的当前独占缓存空间单元的当前独占缓存空间单元表表项之前,还可以先判断判断所述所属进程是否为申请独占的进程,为此,本发明实施例还提供另一种缓存空间的独占解除方法。
请参考图5,图5为本发明实施例所提供的缓存空间的独占解除方法的另一流程图。
由图中可以看出,本发明实施例所提供的缓存空间的独占解除方法包括:
步骤S20:接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识。
步骤S20可参照图4所示步骤S10部分的描述,此处不再赘述。
步骤S21:判断所述所属进程是否为申请独占的进程,若是,执行步骤S22,若否,执行步骤S29。
接收到独占解除请求后,为提高处理效率,可以首先确定请求独占解除的所属进程是否为申请独占的进程,即:申请了独占缓存空间单元独占的进程,如果是,则执行步骤S22,为后续的独占解除做准备;如果不是,则执行步骤S29,返回错误码,无需再进行后续的判断。
具体判断所属进程是否为申请独占的进程可以通过多种方法,在一种具体实施方式中,可以在独占缓存空间单元表(包含了全部独占缓存空间单元表表项的表格)中查找所属进程的进程标识,如果找到了所属进程的进程标识,则表明所属进程为申请独占的进程,否则,则为没有申请独占的进程;在另一种具体实施方式中,如果建立了进程标识对应表(用于记录进程标识和简化进程标识的对应关系),则可以在进程标识对应表中查找所属进程的进程标识,如果找到了所属进程的进程标识,则表明所属进程为申请独占的进程,否则,则为没有申请独占的进程。
步骤S22:根据所述指令内存地址标识的当前地址标识段获取其对应的当前独占缓存空间单元的当前独占缓存空间单元表表项。
当确定了所属进程是申请独占的进程,则进一步根据所述指令内存地址标识的当前地址标识段获取其对应的当前独占缓存空间单元的当前独占缓存空间单元表表项。
步骤S22可参照图4所示步骤S11部分的描述,此处不再赘述。
S23、判断所述当前独占缓存空间单元表表项的进程标识位是否为所述所属进程的进程标识,若是,执行步骤S24,若否,执行步骤S26。
步骤S23可参照图4所示步骤S12部分的描述,如果判断当前独占缓存空间单元表表项的进程标识位所记录的是所属进程的进程标识,则证明当前独占缓存空间单元正在被所属进程独占或者独占初始化,则执行步骤S24;如果不是,则执行步骤S26。
步骤S24:判断所述当前独占缓存空间单元表表项的独占状态位为独占状态,若是,执行步骤S25,若否,执行步骤S28。
步骤S24可参照图4所示步骤S13部分的描述,如果正处于独占使用,则执行步骤S25;否则,则执行步骤S28。
步骤S25:对所述当前独占缓存空间单元和所述当前独占缓存空间单元表表项进行独占解除。
步骤S25可参照图4所示步骤S14部分的描述,在此不再赘述。
步骤S26:判断所述指令内存地址标识中是否还存在未曾获取独占缓存空间单元表表项的地址标识段,若是,执行步骤S27,若否,执行步骤S210。
步骤S26可参照图4所示步骤S15部分的描述,如果指令内存地址标识中还存在未曾获取独占缓存空间单元表表项的地址标识段,那么执行步骤S27:否则,那么表明指令内存地址标识中的全部地址标识段都已经独占解除完毕,执行步骤S29:结束,独占解除的工作完成。
步骤S27:获取所述未曾获取独占缓存空间单元表表项的地址标识段,并将未曾获取独占缓存空间单元表表项的地址标识段作为当前地址标识段。
如果存在未曾获取独占缓存空间单元表表项的地址标识段,就获取该地址标识段,并让该地址标识段作为当前地址标识段,然后执行步骤S22。
步骤S28:对所述当前独占缓存空间单元进行独占初始化解除。
步骤S28可参照图4所示步骤S17部分的描述,在此不再赘述。
步骤S29:返回错误码。
缓存空间的独占解除不能正常完成后,根据不同的失败原因返回不同的错误码,方便了解错误的原因。
步骤S210:结束。
当指令内存地址标识中的全部地址标识段都经过处理后,则结束缓存空间的独占解除。
可以看出,本发明实施例所提供的缓存空间的独占解除方法,提前进行所述所属进程是否为申请独占的进程的判断,可以避免在接收到错误的缓存空间的独占解除指令时,进行后续的操作,造成运算资源的浪费。
除了避免指令的独占解除请求中的所属进程的进程标识错误而带来的运算量的增加,还需要避免由于指令内存地址标识的错误而带来的运算量的增加,为此,本发明实施例还提供另一种缓存空间的独占解除方法。
请参考图6,图6为本发明实施例所提供的缓存空间的独占解除方法的又一流程示意图。
由图中可以看出,本发明实施例所提供的缓存空间的独占解除方法包括:
步骤S30:接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识。
步骤S30可参照图4所示步骤S10部分的描述,此处不再赘述。
步骤S31:判断所述所属进程是否为申请独占的进程,若是,执行步骤S32,若否,执行步骤S310。
步骤S31可参照图5所示步骤S21部分的描述,接收到独占解除请求后,为提高处理效率,可以首先确定请求独占解除的所属进程是否为申请独占的进程,即:申请了独占缓存空间单元独占的进程,如果是,则执行步骤S32,为后续的独占解除做准备;如果不是,则执行步骤S310,返回错误码,无需再进行后续的判断。
步骤S32:判断所述指令内存地址标识是否属于所述所属进程的分配内存地址标识,若是,执行步骤S33,若否,执行步骤S310。
进程的分配内存地址标识(即内存地址范围)是进程运行前分配的,或者进程运行过程中,基于需要为后续的指令执行提前分配,因此,通过所属进程的分配内存地址标识可以根据进程标识确定。
而通过指令的独占解除请求可以获得指令内存地址标识。
得到所属进程的分配内存地址标识和指令内存地址标识后,通过指令内存地址标识与所属进程的分配内存地址标识的比较,就可以确定所述指令内存地址标识是否属于所述分配内存地址标识。
当指令内存地址标识属于分配内存地址标识时,则执行步骤S33,否则,这执行步骤S310。
步骤S33:根据所述指令内存地址标识的当前地址标识段获取其对应的当前独占缓存空间单元的当前独占缓存空间单元表表项。
当确定了所属进程是申请独占的进程,指令内存地址标识属于分配内存地址标识时,则进一步根据所述指令内存地址标识的当前地址标识段获取其对应的当前独占缓存空间单元的当前独占缓存空间单元表表项。
步骤S33可参照图4所示步骤S11部分的描述,此处不再赘述。
步骤S34、判断所述当前独占缓存空间单元表表项的进程标识位是否为所述所属进程的进程标识,若是,执行步骤S35,若否,执行步骤S37。
步骤S34可参照图4所示步骤S12部分的描述,如果判断当前独占缓存空间单元表表项的进程标识位所记录的是所属进程的进程标识,则证明当前独占缓存空间单元正在被所属进程独占或者独占初始化,则执行步骤S35;如果不是,则执行步骤S37。
步骤S35:判断所述当前独占缓存空间单元表表项的独占状态位为独占状态,若是,执行步骤S36,若否,执行步骤S39。
步骤S35可参照图4所示步骤S13部分的描述,如果正处于独占使用,则执行步骤S36;否则,则执行步骤S39。
步骤S36:对所述当前独占缓存空间单元和所述当前独占缓存空间单元表表项进行独占解除。
步骤S36可参照图4所示步骤S14部分的描述,在此不再赘述。
步骤S37:判断所述指令内存地址标识中是否还存在未曾获取独占缓存空间单元表表项的地址标识段,若是,执行步骤S38,若否,执行步骤S311。
步骤S37可参照图4所示步骤S15部分的描述,如果指令内存地址标识中还存在未曾获取独占缓存空间单元表表项的地址标识段,那么执行步骤S38:否则,那么表明指令内存地址标识中的全部地址标识段都已经独占解除完毕,执行步骤S311:结束,独占解除的工作完成。
步骤S38:获取所述未曾获取独占缓存空间单元表表项的地址标识段,并将未曾获取独占缓存空间单元表表项的地址标识段作为当前地址标识段。
如果存在未曾获取独占缓存空间单元表表项的地址标识段,就获取该地址标识段,并让该地址标识段作为当前地址标识段,然后执行步骤S33。
步骤S39:对所述当前独占缓存空间单元进行独占初始化解除。
步骤S39可参照图4所示步骤S17部分的描述,在此不再赘述。
步骤S310:返回错误码。
缓存空间的独占解除不能正常完成后,根据不同的失败原因返回不同的错误码,方便了解错误的原因。
步骤S311:结束。
当指令内存地址标识中的全部地址标识段都经过处理后,则结束缓存空间的独占解除。
可以看出,本发明实施例所提供的缓存空间的独占解除方法,除了提前进行所述所属进程是否为申请独占的进程的判断,还提前进行指令内存地址标识是否属于所述所属进程的分配内存地址标识的判断,可以避免在接收到错误的缓存空间的独占解除指令时,进行后续的操作,造成运算资源的浪费。
在另一种具体实施方式中,还可以仅进行指令内存地址标识是否属于所述所属进程的分配内存地址标识的判断;再其他实施例中,对于所属进程是否为申请独占的进程的判断,以及指令内存地址标识是否属于所述所属进程的分配内存地址标识的判断二者的顺序也可以根据需要进行调整。
下面从执行装置(例如存储管理单元)的角度,对本发明实施例提供的缓存空间的独占解除装置分别进行介绍,下文描述的缓存空间的独占解除装置可以分别认为是执行装置为实现本发明实施例提供的缓存空间的独占解除方法所需设置的程序模块。下文描述的缓存空间的独占解除装置可与前文描述的方案内容相互对应参照。
在进行缓存空间被进程独占使用后,当进程不再需要独占缓存空间时,还需要通过缓存空间的独占解除方法解除对缓存空间的独占,从而让其他进程也可以恢复对相应缓存空间的使用,保证缓存空间利用的高效性。为此,本发明实施例还提供了缓存空间的独占解除装置。
请参考图7,图7为本发明实施例提供的缓存空间的独占解除装置的一种可选框图。
如图中所示,本发明实施例所提供的缓存空间的独占解除装置,包括:独占解除请求接收单元100,适于接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识;
独占解除当前独占缓存空间单元获取单元110,适于根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元;
独占解除单元120,适于当所述当前独占缓存空间单元为被所述所属进程独占状态时,对所述当前独占缓存空间单元进行独占解除;当所述当前独占缓存空间单元为被所述所属进程独占初始化状态时,对所述当前独占缓存空间单元进行独占初始化解除。。
可选地,所述独占解除当前独占缓存空间单元获取单元110,还适于当所述所属进程为申请独占的进程时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
可选地,所述独占解除当前独占缓存空间单元获取单元110,还适于当所述指令内存地址标识属于所述所属进程的分配内存地址标识时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
可见,本发明所提供的缓存空间的独占解除装置,一方面保证了在独占缓存空间单元被指令的所属进程以外的进程独占时,不会对其进行独占解除操作,防止其他进程共享该当前独占缓存空间单元,从而可以降低攻击者在缓存空间利用侧信道攻击技术窃取敏感数据甚至控制程序执行的风险,提高缓存空间的安全性;另一方面,在独占缓存空间单元独占完成后,及时地解除独占,提高缓存空间的利用率。
在另一种具体实施方式中,由于指令内存地址标识中可能会存在多个地址标识段,当完成了对当前地址标识段的独占解除后,还需要继续进行下一个地址标识段的处理,为此,本发明实施例还提供另一种缓存空间的独占初始化装置缓存空间的独占解除装置,还包括:
当前地址标识段获取单元130,适于在对前一个独占缓存空间单元进行独占解除或对对前一个独占缓存空间单元进行独占初始化解除后,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段时,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,发送至所述独占解除当前独占缓存空间单元获取单元。
当然,所述当前地址标识段获取单元130,还适于当所述当前独占缓存空间单元是被异于所述所属进程的进程独占或独占初始化时,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,发送至所述独占解除当前独占缓存空间单元获取单元。
具体地,请参考图8,图8为图7所示的独占解除单元的一种可选框图。
如图中所示,独占解除单元120包括:
空间独占状态位独占解除单元121,适于将所述当前独占缓存空间单元的独占状态位更新为非独占状态;
表项独占状态位独占解除单元122,适于将与所述当前独占缓存空间单元对应的当前独占缓存空间单元表表项的独占状态位更新为独占初始化状态;
表项进程标识位独占解除单元123,适于将所述当前独占缓存空间单元表表项的进程标识位更新为非独占标识。
本发明实施例还提供一种中央处理器,该中央处理器适于执行实现如前述的缓存空间的独占解除方法的程序。
本发明实施例还提供一种存储介质,所述存储介质存储有适于缓存空间独占解除的程序,以实现如前述的缓存空间的独占解除方法。
从而,一方面保证了在独占缓存空间单元被指令的所属进程以外的进程独占时,不会对其进行独占解除操作,防止其他进程共享该当前独占缓存空间单元,从而可以降低攻击者在缓存空间利用侧信道攻击技术窃取敏感数据甚至控制程序执行的风险,提高缓存空间的安全性;另一方面,在独占缓存空间单元独占完成后,及时地解除独占,提高缓存空间的利用率。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (12)

1.一种缓存空间的独占解除方法,其特征在于,包括:
接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识;
根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元;
当所述当前独占缓存空间单元为被所述所属进程独占状态时,对所述当前独占缓存空间单元进行独占解除;当所述当前独占缓存空间单元为被所述所属进程独占初始化状态时,对所述当前独占缓存空间单元进行独占初始化解除;
在对前一个独占缓存空间单元进行独占解除或对对前一个独占缓存空间单元进行独占初始化解除后,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段时,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,转向执行所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤。
2.如权利要求1所述的缓存空间的独占解除方法,其特征在于,还包括:
当所述当前独占缓存空间单元是被异于所述所属进程的进程独占或独占初始化时,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,转向执行所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤。
3.如权利要求1或2所述的缓存空间的独占解除方法,其特征在于,所述对所述当前独占缓存空间单元进行独占解除的步骤包括:
将所述当前独占缓存空间单元的独占状态位更新为非独占状态;
将与所述当前独占缓存空间单元对应的当前独占缓存空间单元表表项的独占状态位更新为独占初始化状态;
将所述当前独占缓存空间单元表表项的进程标识位更新为非独占标识。
4.如权利要求1或2所述的缓存空间的独占解除方法,其特征在于,所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤包括:
当所述所属进程为申请独占的进程时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
5.如权利要求1或2所述的缓存空间的独占解除方法,其特征在于,所述根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元的步骤还包括:
当所述指令内存地址标识属于所述所属进程的分配内存地址标识时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
6.一种缓存空间的独占解除装置,其特征在于,包括:
独占解除请求接收单元,适于接收指令的缓存空间的独占解除请求,所述独占解除请求包括所述指令的指令内存地址标识和所述指令的所属进程的进程标识;
当前独占缓存空间单元获取单元,适于根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元;
独占解除单元,适于当所述当前独占缓存空间单元为被所述所属进程独占状态时,对所述当前独占缓存空间单元进行独占解除;当所述当前独占缓存空间单元为被所述所属进程独占初始化状态时,对所述当前独占缓存空间单元进行独占初始化解除;
当前地址标识段获取单元,适于在对前一个独占缓存空间单元进行独占解除或对对前一个独占缓存空间单元进行独占初始化解除后,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段时,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,发送至所述独占解除当前独占缓存空间单元获取单元。
7.如权利要求6所述的缓存空间的独占解除装置,其特征在于,
所述当前地址标识段获取单元,还适于当所述当前独占缓存空间单元是被异于所述所属进程的进程独占或独占初始化时,若所述指令内存地址标识中还存在未曾获取独占缓存空间单元的地址标识段,获取所述未曾获取独占缓存空间单元的地址标识段,并将未曾获取独占缓存空间单元的地址标识段作为当前地址标识段,发送至所述独占解除当前独占缓存空间单元获取单元。
8.如权利要求6或7所述的缓存空间的独占解除装置,其特征在于,所述独占解除单元包括:
空间独占状态位独占解除单元,适于将所述当前独占缓存空间单元的独占状态位更新为非独占状态;
表项独占状态位独占解除单元,适于将与所述当前独占缓存空间单元对应的当前独占缓存空间单元表表项的独占状态位更新为独占初始化状态;
表项进程标识位独占解除单元,适于将所述当前独占缓存空间单元表表项的进程标识位更新为非独占标识。
9.如权利要求6或7所述的缓存空间的独占解除装置,其特征在于,
所述当前独占缓存空间单元获取单元,还适于当所述所属进程为申请独占的进程时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
10.如权利要求6或7所述的缓存空间的独占解除装置,其特征在于,
所述当前独占缓存空间单元获取单元,还适于当所述指令内存地址标识属于所述所属进程的分配内存地址标识时,根据所述指令内存地址标识的当前地址标识段获取与其对应的当前独占缓存空间单元。
11.一种中央处理器,其特征在于,适于执行实现如权利要求1-5任一项述的缓存空间的独占解除方法的程序。
12.一种存储介质,其特征在于,所述存储介质存储有适于缓存空间独占初始化执行的程序,以实现如权利要求1-5任一项述的缓存空间的独占解除方法。
CN201910346351.0A 2019-04-26 2019-04-26 缓存空间的独占解除方法及相关装置 Active CN110058947B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910346351.0A CN110058947B (zh) 2019-04-26 2019-04-26 缓存空间的独占解除方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910346351.0A CN110058947B (zh) 2019-04-26 2019-04-26 缓存空间的独占解除方法及相关装置

Publications (2)

Publication Number Publication Date
CN110058947A CN110058947A (zh) 2019-07-26
CN110058947B true CN110058947B (zh) 2021-04-23

Family

ID=67321255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910346351.0A Active CN110058947B (zh) 2019-04-26 2019-04-26 缓存空间的独占解除方法及相关装置

Country Status (1)

Country Link
CN (1) CN110058947B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420287B (zh) * 2021-06-21 2022-07-26 上海交通大学 一种抵御基于高速缓存的侧信道攻击的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194586B2 (en) * 2002-09-20 2007-03-20 International Business Machines Corporation Method and apparatus for implementing cache state as history of read/write shared data
CN100353325C (zh) * 2004-08-23 2007-12-05 华为技术有限公司 实现共享内存数据库的方法及内存数据库系统
CN100489814C (zh) * 2007-08-01 2009-05-20 杭州华三通信技术有限公司 一种共享缓存系统及实现方法
CN103399825B (zh) * 2013-08-05 2015-12-23 武汉邮电科学研究院 一种无锁化内存申请释放方法
CN105094840B (zh) * 2015-08-14 2019-01-29 浪潮(北京)电子信息产业有限公司 一种基于缓存一致性原理的原子操作实现方法及装置
CN106250244B (zh) * 2016-07-15 2019-12-24 珠海豹趣科技有限公司 一种释放互斥锁的方法、装置及电子设备
CN106230839B (zh) * 2016-08-03 2020-02-07 青岛海信宽带多媒体技术有限公司 实时流式传输的接收控制方法和装置

Also Published As

Publication number Publication date
CN110058947A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
US8161161B2 (en) Information processing method and information processing apparatus
CN108664213B (zh) 基于分布式缓存的原子写命令处理方法与固态存储设备
CN103052945B (zh) 管理计算机存储器的方法及数据存储设备
US8364904B2 (en) Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer
US7849272B2 (en) Dynamic memory management in an RDMA context
KR102212269B1 (ko) I/o 패킷 압축을 위한 레지스터 파일
US8490104B2 (en) Method and apparatus for reservation and reallocation of surplus resources to processes in an execution space by a local resource manager after the execution space is generated succeeding the initialization of an application for which the execution space is created and the resources are allocated to the execution space by a global resource manager prior to application execution
CN107562669B (zh) 一种NVMe协议命令处理方法、装置及系统
JP2019096309A (ja) メンテナンス動作の実行
KR20050056221A (ko) 선호 메모리 친화도를 위한 시스템 및 방법
CN110058947B (zh) 缓存空间的独占解除方法及相关装置
CN108664212B (zh) 固态存储设备的分布式缓存
CN110162395B (zh) 一种内存分配的方法及装置
US7793051B1 (en) Global shared memory subsystem
CN108664214B (zh) 用于固态存储设备的分布式缓存的掉电处理方法与装置
CN109213425B (zh) 利用分布式缓存在固态存储设备中处理原子命令
US8635384B2 (en) Managing data movement in a cell broadband engine processor
JPH0133857B2 (zh)
CN110096455B (zh) 缓存空间的独占初始化方法及相关装置
US8689230B2 (en) Determination of running status of logical processor
CN105659216B (zh) 多核处理器系统的缓存目录处理方法和目录控制器
US11366594B2 (en) In-band extent locking
US8838909B2 (en) Dynamic initial cache line coherency state assignment in multi-processor systems
CN113961302A (zh) 资源分配方法、装置、电子设备及存储介质
JP3381080B2 (ja) 処理の中断が可能な排他制御方式

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 300384 Tianjin Binhai New Area Tianjin Huayuan Industrial Zone No. 18 Haitai West Road North 2-204 Industrial Incubation-3-8

Applicant after: Haiguang Information Technology Co., Ltd

Address before: 300384 Tianjin Binhai New Area Tianjin Huayuan Industrial Zone No. 18 Haitai West Road North 2-204 Industrial Incubation-3-8

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant