CN113342278A - 处理器及其保持缓存数据一致性的方法 - Google Patents

处理器及其保持缓存数据一致性的方法 Download PDF

Info

Publication number
CN113342278A
CN113342278A CN202110694840.2A CN202110694840A CN113342278A CN 113342278 A CN113342278 A CN 113342278A CN 202110694840 A CN202110694840 A CN 202110694840A CN 113342278 A CN113342278 A CN 113342278A
Authority
CN
China
Prior art keywords
cache
data
memory
processor
encrypted
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
Application number
CN202110694840.2A
Other languages
English (en)
Other versions
CN113342278B (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 CN202110694840.2A priority Critical patent/CN113342278B/zh
Publication of CN113342278A publication Critical patent/CN113342278A/zh
Application granted granted Critical
Publication of CN113342278B publication Critical patent/CN113342278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/5016Allocation 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 the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了处理器及其保持缓存数据一致性的方法,所述方法包括:获取当前内存数据交互请求对应缓存的缓存状态;根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作,其中:在所述处理器中不存在有效缓存时,确定所述处理器中同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据二者不一致时,通知所述发起请求的处理器核心,以使所述发起请求的处理器核心采用缓存密钥,对与当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。采用上述方法无须软件进行额外操作,即可在支持安全内存加密的情况下,保持缓存一致性。

Description

处理器及其保持缓存数据一致性的方法
技术领域
本发明实施例涉及处理器技术领域,尤其涉及处理器及其保持缓存数据一致性的方法。
背景技术
为提高软件程序运行性能,目前处理器通常包括至少一个内核,且包括至少一级缓存,并可以通过内存控制器读写内存数据。分页转换功能可以由驻留在内存中的表来描述,该表称为页表(Page Table),存放在物理地址空间中。页表中包含多个位数固定的页表项,页表项中部分比特位用来存放页面的物理基地址,其他剩余的比特位可以存放诸如页面是否存在等属性信息。
为保障数据安全,现有一些处理器支持安全内存加密功能,其通过内存页表项中的C比特位(C bit)来指示该页内存是否为加密内存。如果所述C比特位为1(即C bit=1),则所述处理器在写内存时,内存控制器会先加密内存数据然后再写入,读内存时内存控制器会先解密读入的数据,缓存中的数据是不加密的;如果所述C比特位为0(即C bit=0),则不会对内存数据进行加解密操作,如果内存中的数据是加密的,缓存中的数据则是加密的。因此,对于同一块内存,可能同时存在C bit=0对应的包含了加密数据的加密缓存,和Cbit=1对应的包含了非加密数据的不加密缓存,这两种缓存如果没有一致性保证,就需要软件使用清除缓存等操作来保证数据的正确性。
上述支持安全内存加密的处理器保持缓存一致性的方法需要通过专门的软件指令进行额外操作,且会降低软件性能及增加软件开发难度。
发明内容
有鉴于此,本发明实施例提供一种处理器及其保持缓存数据一致性的方法,无须软件进行额外操作,即可在支持安全内存加密的情况下,保持缓存一致性。
本发明实施例提供一种处理器,包括处理器核心和内存控制器,所述处理器核心适于通过所述内存控制器与内存进行数据交互操作,其中:所述处理器核心包括:
缓存单元,包括多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:当所述缓存单元中同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且确定二者不一致时,控制所述缓存数据加解密单元采用所述缓存密钥存储单元中存储的缓存密钥,对与所述当前内存数据交互请求对应的非加密缓存数据及加密缓存数据中的最新缓存数据进行加密或解密处理并进行数据更新。
可选地,所述缓存控制单元,适于在确定所述非加密缓存数据为最新数据时,控制所述缓存数据加解密单元采用所述缓存密钥加密所述非加密缓存数据,得到加密缓存更新数据,并更新所述加密缓存数据;在确定所述加密缓存数据为最新数据时,控制所述缓存数据加解密单元采用所述缓存密钥解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据。
可选地,所述内存控制器包括:
内存密钥存储单元,适于存储用于对内存数据进行加密或解密处理的内存密钥;
内存数据加解密单元,适于对当前交互的内存数据采用所述内存密钥存储单元中存储的内存密钥进行加密或解密;
内存控制单元,适于接收所述处理器核心的内存数据交互请求,获取所述内存数据交互请求对应的内存是否加密,在确定对应的内存为加密内存时,在对对应的内存数据进行交互操作过程中,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥,对所述内存数据交互请求对应的内存数据进行加密或解密处理。
可选地,所述内存控制单元,适于响应于所述处理器核心的内存读请求,在确定对应的内存为加密内存时,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥对从所述加密内存中读取的加密数据进行解密;以及响应于所述处理器核心的内存写请求,在确定对应的内存为加密内存时,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥对从待写入数据进行加密后写入所述内存。
可选地,所述处理器还包括:安全处理装置,适于在开启内存加密功能时,向所述缓存密钥存储单元写入所述缓存密钥,并同时向所述内存密钥存储单元写入所述内存密钥。
本发明实施例还提供了另一种处理器,包括:多个处理器核心和内存控制器,其中任一处理器核心适于通过所述内存控制器与内存进行数据交互操作,任一所述处理器核心包括:
核内缓存单元,包括:多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对所述核内缓存单元的缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前内存数据交互请求对应的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:获取当前内存数据交互请求对应缓存的缓存状态,并根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作,其中:在所述处理器中同时存在与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且二者不一致时,通知所述发起内存数据交互请求的处理器核心,以使所述发起请求的处理器核心采用缓存密钥,对对应的缓存数据进行加密或解密处理并进行缓存数据更新。
可选地,所述处理器还包括:缓存一致性管理模块,适于存储所述处理器内部的缓存数据的缓存状态;
所述任一处理器核心的缓存控制单元,适于通过所述缓存一致性管理模块获取当前内存数据交互请求对应的所述处理器内部的缓存数据的缓存状态。
可选地,所述处理器还包括:核外缓存单元,适于存储缓存数据;
所述任一处理器核心的缓存控制单元,适于通过所述缓存一致性管理模块获取当前内存数据交互请求对应的所述处理器内部各处理器核心的核内缓存单元和核外缓存单元中缓存数据的缓存状态。
可选地,所述发起内存数据交互请求的处理器核心中的缓存控制单元,适于当所述处理器中不存在所请求的有效缓存数据,且当前请求的为非加密缓存数据,而所述处理器中其他处理器核心或所述核外缓存单元中存在加密缓存数据,则读取所述加密缓存数据,并控制所述缓存数据加解密单元解密所述加密缓存数据,得到非加密缓存数据;以及当所述处理器中不存在所请求的有效缓存数据,且当前请求的为加密缓存数据,而所述处理器中其他处理器核心或所述核外缓存单元中存在非加密缓存数据,则读取所述非加密缓存数据并控制所述缓存数据加解密单元采用所述缓存密钥存储单元存储的缓存密钥进行加密,得到加密缓存数据。
可选地,多个处理器核心中发起内存读请求的处理器核心中的缓存控制单元,还适于当确定所述处理器中其他处理器核心和所述核外缓存单元均不存在所请求的有效缓存数据,也不存在对应的加密缓存数据或非加密缓存数据,则从所述内存中读取数据并更新缓存数据;以及当确定所述处理器中其他处理器核心或所述核外缓存单元中存在所请求的有效缓存数据时,采用所述有效缓存数据更新所述发起内存数据交互请求的处理器核心的核内缓存数据。
可选地,所述内存控制器,包括:
内存密钥存储单元,适于存储用于对内存数据进行加密或解密处理的内存密钥;
内存数据加解密单元,适于对当前交互的内存数据采用所述内存密钥存储单元中存储的内存密钥进行加密或解密;
内存控制单元,适于接收所述处理器核心的内存数据交互请求,获取所述内存数据交互请求对应的内存是否加密,在确定对应的内存为加密内存时,在进行数据交互操作过程中,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥,对所述内存数据交互请求对应的内存数据进行加密或解密处理。
可选地,所述处理器还包括:安全处理装置,适于在开启内存加密功能时,向所述各处理器核心的缓存密钥存储单元写入所述缓存密钥,并同时向所述内存控制器中的内存密钥存储单元写入所述内存密钥。
本发明实施例还提供了一种保持处理器缓存一致性的方法,所述处理器适于通过内存控制器与内存进行数据交互操作,且所述处理器包括缓存单元,所述缓存单元包括多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据,所述保持处理器缓存一致性的方法包括:
确定所述缓存单元中是否同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据;
在确定所述缓存单元中同时包含与所述当前内存数据交互请求对应的加密缓存数据和非加密缓存数据时,确定二者是否一致;
在确定二者不一致时,采用所述处理器中存储的缓存密钥对所述内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。
可选地,所述处理器包括:
缓存密钥存储单元,适于存储用于对缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前内存数据交互请求对应的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于当确定所述缓存单元中同时包含与所述当前内存数据交互请求对应的加密缓存数据和非加密缓存数据并在确定二者不一致时,控制所述缓存数据加解密单元采用所述缓存密钥存储单元中存储的缓存密钥,对与当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。
本发明还提供了另一种保持处理器缓存一致性的方法,所述处理器包括:多个处理器核心和内存控制器,其中任一处理器核心适于通过所述内存控制器与内存进行数据交互操作,所述保持处理器缓存一致性的方法包括:
获取当前内存数据交互请求对应缓存的缓存状态;
根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作,其中:
在所述处理器中不存在有效缓存时,确定所述处理器中同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且二者不一致时,通知所述发起内存数据交互请求的处理器核心,以使所述发起内存数据交互请求的处理器核心采用缓存密钥,对与当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行缓存数据更新。
可选地,所述获取当前内存数据交互请求对应缓存的缓存状态,包括:
所述任一处理器核心通过所述缓存一致性管理模块获取当前内存数据交互请求对应的所述处理器内部的缓存状态。
可选地,所述任一处理器核心包括:核内缓存单元,包括:多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对所述核内缓存单元的缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前交互的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:当确定所述处理器中不存在请求的有效缓存数据,当前请求的为非加密缓存数据,且所述处理器中其他处理器核心或所述核外缓存单元中存在加密缓存数据,则读取所述加密缓存数据,并控制所述缓存数据加解密单元解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据;以及当确定所述处理器中不存在所请求的有效缓存数据,当前请求的为加密缓存数据,且所述处理器中其他处理器核心或所述核外缓存中存在非加密缓存数据,则读取所述非加密缓存数据并控制所述缓存数据加解密单元采用所述缓存密钥存储单元存储的缓存密钥进行加密,得到加密缓存更新数据并进行缓存数据更新。
可选地,所述方法还包括:
当确定所述处理器中其他处理器核心和所述核外缓存单元均不存在所请求的有效缓存数据,也不存在对应的加密缓存数据或非加密缓存数据,所述多个处理器核心中发起内存读请求的处理器核心通过其自身的缓存控制单元从所述内存中读取数据并更新缓存数据;
当确定所述处理器中其他处理器核心或所述核外缓存单元中存在所请求的有效缓存数据时,所述多个处理器核心中发起内存读请求的处理器核心通过缓存控制单元采用所述有效缓存数据更新其自身核内缓存数据。
可选地,所述处理器还包括安全处理装置,所述方法还包括:
在开启内存加密功能时,所述安全处理装置向所述各处理器核心的缓存密钥存储单元写入所述缓存密钥,并同时向所述内存控制器中的内存密钥存储单元写入所述内存密钥。
采用本说明书实施例中的包含单个核心的处理器,在内存数据交互过程中,若确定缓存单元中同时存在与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据,则确定二者是否一致,并在确定二者不一致时,采用缓存密钥对于当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新,从而能够保持当前内存数据交互请求对应的加密缓存数据和非加密缓存数据的一致性,因此无需使用软件来清除缓存即可保证数据的正确性,故也不会出现由于缓存数据被清除,后续处理器访问数据过程中需要从内存重新获取而降低软件性能的情况,且软件开发者也不需要特别注意由于缓存不一致所造成的软件逻辑错误,因此可以降低软件编写难度。
进一步地,通过缓存控制单元,在确定所述非加密缓存数据为最新数据时,控制缓存数据加解密单元采用所述缓存密钥存储单元存储的缓存密钥加密所述非加密缓存数据,得到加密缓存更新数据,并更新所述加密缓存数据;在确定所述加密缓存数据为最新数据时,控制所述缓存数据加解密单元采用所述缓存密钥存储单元存储的缓存密钥解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据,在所述处理器中同时存在当前内存数据交互请求对应的加密缓存和非加密缓存,通过所述缓存控制单元控制所述缓存数据加解密单元获取所述缓存密钥存储单元中存储的缓存密钥进行加解密处理,一方面可以保持所述处理器缓存数据的一致性,且也可以保障加密缓存数据的安全性。
进一步地,所述处理器中还可以包括安全处理装置,其在开启所述内存的内存加密功能时,向所述缓存密钥存储单元写入所述缓存密钥,并同时向所述内存密钥存储单元写入所述内存密钥,可以在所述内存启动内存加密功能时,即可同步保持缓存数据的一致性。
采用本说明书实施例中的包含多个处理器核心的处理器,对于任一处理器核心,通过获取当前内存数据交互请求对应缓存的缓存状态,并根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作,其中,在所述处理器中不存在有效缓存数据,且所述处理器中同时存在与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且二者不一致时,通知所述发起内存数据交互请求的处理器核心,以使所述发起内存数据交互请求的处理器核心采用缓存密钥,对对应的缓存数据进行加密或解密处理并进行数据更新,通过上述缓存数据一致性管理操作,能够保持当前内存数据交互请求对应的加密缓存数据和非加密缓存数据的一致性,从而无需使用软件来清除缓存即可保证数据的正确性,故也不会出现由于缓存数据被清除,后续处理器访问数据过程中需要从内存重新获取而降低软件性能的情况,且软件开发者也不需要特别注意由于缓存不一致所造成的软件逻辑错误,因此可以降低软件编写难度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
图1示出了一种内存数据交互操作的场景示意图;
图2示出了本说明书实施例中一种处理器的结构示意图;
图3示出了本说明书实施例中另一种处理器的结构示意图;
图4示出了本说明书实施例中一种保持处理器缓存一致性的方法的流程图;
图5示出了本说明书实施例中一具体应用场景中保持处理器缓存一致性的方法的流程图;
图6示出了本说明书实施例中另一种保持处理器缓存一致性的方法的流程图。
具体实施方式
如背景技术所述,为保障内存数据安全,存在支持安全内存加密功能的处理器,其中,通过内存页表项中的C比特位(C bit)来指示该页内存是否为加密内存。其中,若C bit=1,则处理器在写内存时,内存控制器会先加密内存数据然后再写入内存,而在读内存时,内存控制器会先解密读入的数据,缓存中的数据是不加密的;若C bit=0,则内存控制器不会对会内存数据进行加解密操作,如果内存中的数据是加密的,缓存中的数据则是加密的。
对于同一块内存,若C bit=0和C bit=1对应的处理器缓存包含了加密数据和非加密数据。如图1所示,其中包含内存1A和缓存1B,若内存1A为加密内存,对于内存地址为1的内存数据,某一段代码设置了C bit=0,另一段代码设置了C bit=1,则处理器在进行内存数据交互过程中,对于所述内存地址1中的内存数据,在获取到C bit=1时,则先解密所述读入的内存数据,解密后得到非加密缓存数据;在获取到C bit=0时,则直接读取所述内存地址1中的内存数据,得到加密缓存数据。因此所述缓存1B中同时包含内存地址为1的加密缓存数据和非加密缓存数据。若这两种缓存数据没有一致性保证,就需要软件使用清除缓存操作来保证数据的正确性,例如,通过调用CLFLUSH指令将缓存中的原有数据写回内存并清除缓存,确保不会存在两份有效的缓存数据。
但是,通过软件调用CLFLUSH等指令会带来额外开销,并且由于缓存中的数据被清除,后续处理器访问数据时需要从内存中重新获取,因此会降低软件的性能。并且,软件开发者需要特别注意由于缓存不一致所造成的软件逻辑错误,因此增加了软件开发的难度。
为此,本发明实施例在进行缓存一致性管理过程中,通过确定处理器中是否同时包含当前内存数据交互请求对应的加密缓存数据和非加密缓存数据,当确定所述处理器中同时包含所述当前内存数据交互请求对应的加密缓存数据和非加密缓存数据,且确定二者不一致时,采用所述处理器中存储的缓存密钥对所述内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新,从而可以保持处理器缓存的一致性,而无须通过专门的软件指令进行额外操作,也可以提升软件性能及降低软件开发难度。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提供了能够解决上述问题的处理器及保持缓存数据一致性的方法,这一保持缓存一致性的构思及方案适用于所述处理器支持内存加密功能的各种场景,可以应用于各种包含缓存的处理器结构,其中,包括单核处理器,也可以包括多核处理器。以下分别通过单核处理器和多核处理器进行示例说明。
首先,参照图2所示的处理器的结构示意图,其中,处理器20包括处理器核心C0和内存控制器MC0,所述处理器核心C0可以通过所述内存控制器MC0与内存2A进行数据交互操作。更具体而言,所述处理器核心C0可以包括缓存单元21、缓存密钥存储单元22、缓存数据加解密单元23和缓存控制单元24,其中:
所述缓存单元21,包括多个缓存行(例如缓存行1~n),所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
所述缓存密钥存储单元22,适于存储用于对缓存数据进行加密或解密处理的缓存密钥;
所述缓存数据加解密单元23,适于对缓存数据采用所述缓存密钥存储单元22中存储的缓存密钥进行加密或解密;
所述缓存控制单元24,适于对缓存数据进行缓存一致性管理,包括:当所述缓存单元21中同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且确定二者不一致时,控制所述缓存数据加解密单元23采用所述缓存密钥存储单元22中存储的缓存密钥,对与所述当前内存数据交互请求对应的非加密缓存数据及加密缓存数据中的最新缓存数据进行加密或解密处理并进行数据更新。
其中,所述缓存控制单元24,适于在确定所述非加密缓存数据为最新数据时,控制所述缓存数据加解密单元23采用所述缓存密钥加密所述非加密缓存数据,得到加密缓存更新数据,并更新所述加密缓存数据;在确定所述加密缓存数据为最新数据时,控制所述缓存数据加解密单元23采用所述缓存密钥解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据。
在具体实施中,所述处理器核心C0在进行缓存一致性管理时,如果对于同一个内存地址只存在一种缓存数据,即只存在加密缓存数据或者只存在非加密缓存数据,则不需要对所述缓存数据进行加密或解密处理,若对于同一个内存地址的内存数据,同时存在加密缓存数据和非加密缓存数据,则在进行缓存一致性管理时,可以通过所述缓存控制单元24确定所述加密缓存数据和非加密缓存数据中的最新数据,其中,在确定所述非加密缓存数据为最新数据时,可以控制所述缓存数据加解密单元23采用所述缓存密钥存储单元22中存储的缓存密钥加密所述非加密缓存数据,得到加密缓存更新数据,采用所述更新后的加密缓存更新数据更新所述加密缓存数据,从而保持所述加密缓存数据和非加密缓存数据的一致性。而在确定所述加密缓存数据为最新数据时,可以由所述缓存控制单元24控制所述缓存数据加解密单元23采用所述缓存密钥存储单元22中存储的缓存密钥解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据,从而可以保持所述加密缓存数据和非加密缓存数据的一致性。
在具体实施中,所述缓存密钥存储单元22具体可以是设置于所述处理器核心C0中的缓存密钥寄存器。
本说明书实施例中并不限定所述缓存数据加解密单元23所采用的加密方式及具体的加密算法。在一些可选示例中,所述缓存数据加解密单元23可以采用SM4加密算法。SM4加密算法是一种分组密码算法,其被中国作为一种分组密码标准。
在具体实施中,所述内存控制器MC0可以包括内存控制单元27,通过内存控制单元,所述处理器20可以与内存2A进行数据交互。
在具体实施中,如前所述,为增强数据安全性能,处理器可以支持内存加密功能。为此,在本说明书一些实施例中,所述内存控制器MC0除了内存控制单元27,还可以包括内存密钥存储单元25和内存数据加解密单元26,其中:
所述内存密钥存储单元25,适于存储用于对内存数据进行加密或解密处理的内存密钥;
所述内存数据加解密单元26,适于对当前交互的内存数据采用所述内存密钥存储单元25中存储的内存密钥进行加密或解密;
所述内存控制单元27,适于接收所述处理器核心C0的内存数据交互请求,获取所述内存数据交互请求对应的内存是否加密,在确定对应的内存为加密内存时,在对对应的内存数据进行交互操作过程中,控制所述内存数据加解密单元26采用所述内存密钥存储单元25中存储的内存密钥,对所述内存数据交互请求对应的内存数据进行加或解密处理。
其中,内存数据交互操作可以包括读取内存数据的内存读操作,以及向内存写入数据的内存写操作。在需要进行内存数据交互操作时,处理器核心可以发起内存交互请求,具体而言,在需要进行内存读操作时,则发起内存读请求;在需要进行内存写操作时,则发起内存写请求。
在具体实施中,所述内存控制单元27,适于响应于所述处理器核心C0的内存读请求,在确定对应的内存为加密内存时,控制所述内存数据加解密单元26采用所述内存密钥存储单元25中存储的内存密钥对从所述加密内存中读取的加密数据进行解密;以及响应于所述处理器核心C0的内存写请求,在确定对应的内存为加密内存时,控制所述内存数据加解密单元26采用所述内存密钥存储单元25中存储的内存密钥对待写入数据进行加密后写入所述内存。
在内存中既包括普通内存数据,也包括加密内存数据时,对于支持内存加密功能的处理器,可以采用上述实施例中的处理器与其进行数据存取交互。其中,对于内存中的部分区域若采用了加密保护,继续参照图2,例如,若对应的内存页表项的Cbit=1,则在所述内存控制单元27从所述内存加密区域读取内存数据时,可以先通过内存数据加解密单元26采用所述内存密钥存储单元25中存储的内存密钥进行解密,并存储至所述缓存单元21中的非加密缓存行;而在处理器20需要向加密内存中写入数据时,对于非加密缓存数据,所述内存控制单元27可以控制所述内存数据加解密单元采用所述内存密钥存储单元25中存储的内存密钥,对所述非加密缓存数据进行加密后,再存储至所述内存2A中。
其中,所述内存密钥存储单元25具体可以是设置于所述内存控制器MC0中的内存密钥寄存器。
本说明书实施例中并不限定所述内存数据加解密单元所采用的加密方式及具体的加密算法。在一些可选示例中,所述内存数据加解密单元26可以采用SM4加密算法。
在具体实施中,如图2所示,处理器20中还可以包括安全处理装置SA0,可以由所述安全处理装置SA0实现加密内存的管理操作。其中,所述安全处理装置SA0,适于在开启内存加密功能时,向所述缓存密钥存储单元22写入所述缓存密钥,并同时向所述内存密钥存储单元25写入所述内存密钥。
在本说明书实施例中,缓存密钥用于实现在所述处理器核心C0在与缓存单元21交互过程中对缓存数据进行加密或解密。内存密钥用于实现所述处理器20与所述内存2A交互过程中对内存数据进行加密或解密。在具体实施中,所述安全处理装置SA0向所述处理器20中同时写入相同的内存密钥和缓存密钥。
在具体实施中,所述安全处理装置也可以不与所述处理器20封装在一起,而是独立封装,作为独立的安全处理器硬件与所述处理器交互,并对所述处理器和内存中的数据进行安全维护。
采用本说明书实施例,即使缓存单元中同时存在同一个内存地址对应的加密缓存数据和非加密缓存数据,在二者不一致时,不需要将二者从缓存单元中清除出去,只需要采用本说明书实施例中的缓存一致性管理方案将二者更新同步即可。且这一缓存一致性管理过程无需软件操作,后续处理器访问数据过程中可以直接从所述缓存单元中获取数据,因而可以降低时延,提高软件性能,且软件开发者也不需要特别注意由于缓存不一致所造成的软件逻辑错误,因此可以降低软件开发难度。
对于多核处理器,也可以采用本说明书实施例中的缓存一致性管理方案。所述多核处理器可以包括多个处理器核心和内存控制器,其中,任一处理器核心适于通过所述内存控制器与内存进行数据交互操作,任一所述处理器核心包括可以包括如下组成部分:
核内缓存单元,包括:多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对所述核内缓存单元的缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前交互的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:获取当前内存数据交互请求对应缓存的缓存状态,并根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作,其中:在所述处理器中同时存在与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且二者不一致时,通知所述发起内存数据交互请求的处理器核心,以使所述发起内存数据交互请求的处理器核心采用缓存密钥,对对应的缓存数据进行加密或解密处理并进行缓存数据更新。
参照图3所示的处理器的结构示意图。在本说明书实施例中,处理器中可以包括两个或两个以上的处理器核心,为便于理解,图3中仅示出了其中的两个处理器核心C1、C2。
其中,处理器核心C1包括核内缓存单元L01、缓存密钥存储单元CK1、缓存数据加解密单元ED1和缓存控制单元LC1;处理器核心C2包括核内缓存单元L02、缓存密钥存储单元CK2、缓存数据加解密单元ED2和缓存控制单元LC2。
核内缓存单元L01、L02分别存储各自处理器核心内部的缓存数据。在具体实施中,所述核内缓存单元L01、L02可以仅包括一级独占缓存,也可以包括两级或两级以上的独占缓存。
对于处理器核心C1、C2,在其发起内存数据交互请求时,若其中缓存控制单元LC1发现所述处理器30中同时存在内存地址相同的加密缓存数据和非加密缓存数据,则对二者进行同步更新,其中在同步更新过程中,对二者中最新的数据通过所在处理器核心中的缓存数据加解密单元采用同一处理器核心中的缓存密钥存储单元中存储的缓存密钥进行加密或解密处理。
内存数据交互操作包括内存读操作和内存写操作。参照图3,例如,在处理器核心C1读内存或写内存时,相应地,可以获取内存读请求或内存写请求对应的内存的缓存状态并通知处理器核心C2更新缓存状态。
其中为了实现缓存行级别的缓存一致性,可以为各缓存行设置各种状态,称为缓存状态,作为具体示例,可以包括:已修改(Modified)、被占用(Owned)、独占的(Exclusive)、共享的(Shared)、转发的(Forward)、无效的(Invalid)等其中至少部分状态。
所述处理器核心C1可以获取所述处理器30中的缓存状态,可以通过所述缓存控制单元获取所述处理器核心C1内和所述处理器C1核心外是否存在有效缓存数据,包括获取所述处理器核心C2中是否存在有效数据,并根据获取结果执行相应的缓存一致性管理操作。
作为一具体示例,若获取到所述处理器核心C1、C2中均不存在有效缓存数据,且所述处理器30中不存在核外缓存,则在所述处理器核心C1写内存时,可以通知处理器核心C2更新缓存状态,若所述处理器核心C2中的核内缓存单元L02中同时包含相应的加密缓存数据和非加密缓存数据,则同时更新所述加密缓存数据和非加密缓存数据的缓存状态。而在所述处理器核心C1读内存时,则所述处理器核心C1中的缓存控制单元LC1可以根据当前所请求的缓存数据的类型,即所请求的是加密缓存数据还是非加密缓存数据,通过所述缓存数据加解密单元ED1采用所述缓存密钥存储单元CK1中的缓存密钥对所述加密缓存数据和非加密缓存数据中的最新数据相应地进行加密或解密处理,并采用加密或解密后的数据实现加密缓存数据和非加密缓存数据的同步。
继续参照图3,在具体实施中,处理器30还可以包括:缓存一致性管理模块CM0,适于存储所述处理器30内部的缓存数据的缓存状态;所述任一处理器核心的缓存控制单元LC1、LC2,适于通过所述缓存一致性管理模块CM0获取当前内存数据交互请求对应的所述处理器内部的缓存数据的缓存状态。
如图3所示,处理器30还可以包括核外缓存单元L2,适于存储缓存数据。在具体实施中,所述核外缓存单元L2可以作为所述处理器核心C1、C2的共享缓存。
所述处理器核心C1、C2中任一处理器核心,适于通过所述缓存一致性管理模块CM0获取当前内存数据交互请求对应的所述处理器30内部各处理器核心的核内缓存单元和核外缓存单元中缓存数据的缓存状态。
例如,处理器核心C1发起内存数据交互请求,其内部的缓存控制单元LC1,适于当所述处理器30中不存在请求的有效缓存数据,且当前请求的为非加密缓存数据,而所述处理器30中处理器核心C2或所述核外缓存单元L2中存在加密缓存数据,则读取所述加密缓存数据,并控制所述缓存数据加解密单元ED1采用所述缓存密钥存储单元CK1中存储的缓存密钥解密所述加密缓存数据,得到非加密缓存数据;以及当所述处理器30中不存在有效缓存数据,且当前请求的为加密缓存数据,而所述处理器30中处理器核心C2或所述核外缓存单元L2中存在非加密缓存数据,则读取所述非加密缓存数据并控制所述缓存数据加解密单元ED1采用所述缓存密钥存储单元CK1存储的缓存密钥进行加密,得到加密缓存数据。
作为可选示例,多个处理器核心中发起内存读请求的处理器核心中的缓存控制单元,还适于当确定所述处理器中其他处理器核心和所述核外缓存单元均不存在所请求的有效缓存数据,也不存在对应的加密缓存数据或非加密缓存数据,则从所述内存中读取数据并更新缓存数据;以及当确定所述处理器中其他处理器核心或所述核外缓存单元中存在所请求的有效缓存数据时,采用所述有效缓存数据更新所述发起内存数据交互请求的处理器核心的核内缓存数据。
在具体实施中,继续参照图3,在所述处理器30中某个处理器核心,例如处理器核心C1读取内存时,首先可以通过缓存控制单元LC1向所述缓存一致性管理模块CM0查询当前内存(即待读取内存)的缓存状态,根据缓存状态的不同,可能有以下几种缓存一致性管理方式:
1)所述处理器核心C1和C2中任一个或者核外缓存单元L2中包含有效缓存数据,此时对应缓存状态不是Invalid,则通知发起请求的处理器核心C1的缓存控制单元LC1更新缓存数据;
2)所述处理器30中所有的处理器核心(即处理器核心C1和处理器核心C2)以及核外缓存单元L2中均没有对应的有效缓存,此时对应的缓存状态均为Invalid,若当前处理器核心C1请求的是非加密缓存数据,而所述处理器核心C2或者核外缓存单元L2中存在加密缓存数据,则所述缓存一致性管理模块CM0通知发起请求的处理器核心C1中的缓存控制单元LC1读取加密缓存数据并解密后更新所述非加密缓存数据;
3)所述处理器30中所有的处理器核心(即处理器核心C1和处理器核心C2)以及核外缓存单元L2中均没有对应的有效缓存,此时对应的缓存状态均为Invalid,若当前处理器核心C1请求的是加密缓存数据,而所述处理器核心C2或者核外缓存单元L2中存在非加密缓存数据,则所述缓存一致性管理模块CM0通知发起请求的处理器核心C1中的缓存控制单元LC1读取非加密缓存数据并加密后更新所述加密缓存数据;
4)所述处理器30中所有的处理器核心(即处理器核心C1和处理器核心C2)以及核外缓存单元L2中均没有对应的有效缓存(此时对应的缓存状态均为Invalid),并且所述处理器中的所述处理器核心C2或者核外缓存单元L2中也不存在非加密缓存数据或加密缓存数据,则所述处理器30直接从内存3A中读取数据并更新其自身的缓存数据,包括所述核内缓存单元L01和所述核外缓存单元L2中的缓存数据。
在具体实施中,所述各处理器核心的缓存密钥存储单元中存储的缓存密钥是相同的。
其中,如前所述,处理器可以通过内存控制器与内存进行数据交互,在本说明书实施例中,继续参照图3,处理器30还可以包括内存控制器MC1,其中所述内存控制器MC1可以包括:内存密钥存储单元MCK、内存数据加解密单元MED和内存控制单元M01,其中:
所述内存密钥存储单元MCK,适于存储用于对内存数据进行加密或解密处理的内存密钥;
所述内存数据加解密单元MED,适于对当前交互的内存数据采用所述内存密钥存储单元中存储的内存密钥进行加密或解密;
所述内存控制单元M01,适于接收所述处理器核心的内存数据交互请求,获取所述内存数据交互请求对应的内存是否加密,在确定对应的内存为加密内存时,在进行数据交互操作过程中,控制所述内存数据加解密单元MED采用所述内存密钥存储单元MCK中存储的内存密钥,对所述内存数据交互请求对应的内存数据进行加或解密处理。
采用本说明书实施例,对于支持内存加密功能的多核处理器,若当前数据交互过程中,所请求的数据在在所述处理器中同时存在加密缓存数据和非加密缓存数据且二者不一致时,可以采用上述实施例的方法实现缓存一致性管理,而无需专门的清除指令将所述处理器中的缓存数据进行清除,可以提高软件性能,降低软件开发难度。
在具体实施中,与前实施例类似,在所述处理器内部或者外部还可以设置硬件独立的安全处理装置,用于对所述处理器和内存中的数据进行安全管理,防止外部攻击。若所述处理器支持内存加密功能,可以由所述安全处理装置进行内存加密功能的开启及管理。在本说明书一些实施例中,所述安全处理装置,适于在开启内存加密功能时,向所述各处理器核心的缓存密钥存储单元写入所述缓存密钥,并同时向所述内存控制器中的内存密钥存储单元写入所述内存密钥。
以上通过具体实施例介绍了能够实现本说明书实施例缓存一致性管理的处理器,需要说明的是,本说明书实施例并不限于以上结构的处理器,对于各种同时存在加密缓存和非加密缓存的处理器,均可以采用本说明书实施例提供的保持缓存一致性的方法。为使本领域技术人员更好地理解和实施,以下对保持处理器缓存一致性的方法进行对应描述。
参照图4所述的保持处理器缓存一致性的方法的流程图,其中,所述处理器适于通过内存控制器与内存进行数据交互操作,且所述处理器包括缓存单元,所述缓存单元包括多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存或非加密缓存,在本说明书实施例中,具体可以通过如下步骤保持所述处理器中的缓存一致:
S41,确定所述缓存单元中是否同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据,如果是,则执行步骤S42;如果否,则执行步骤S43。
S42,确定二者是否一致,如果是,则执行步骤S43;如果否,则执行步骤S44。
步骤S43,不对所述当前内存数据交互请求对应的缓存数据进行加解密处理。
S44,采用所述处理器中存储的缓存密钥对所述内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。
在具体实施中,参照图5所示的保持缓存一致性的方法的流程图,步骤S44具体可以包括如下步骤:
S441,确定所述非加密缓存数据及加密缓存数据中的最新数据,如果非加密缓存数据是最新的,则执行步骤S442;如果加密缓存数据是最新的,则执行步骤S443。
S442,对所述非加密缓存数据进行加密,得到更新后的加密缓存数据并执行步骤S444。
S443,对所述加密缓存数据进行解密,得到更新后的非加密缓存数据,并执行步骤S445。
S444,采用所述更新后的加密缓存数据更新所述加密缓存数据。
S445,采用所述更新后的非加密缓存数据更新所述非加密缓存数据。
经上述步骤S444或步骤S445后,可以保持所述加密缓存数据和非加密缓存数据的一致性,从而无须将所述加密缓存数据和所述非加密缓存数据清除出所述处理器,故可以避免下次处理器访问所述数据时重新从内存加载,因而可以提高软件性能,并降低软件开发难度。
在具体实施中,如前处理器对应的实施例所述,所述处理器可以包括:缓存密钥存储单元、缓存数据加解密单元和缓存控制单元,其中:
所述缓存密钥存储单元,适于存储用于对缓存数据进行加密或解密处理的缓存密钥;
所述缓存数据加解密单元,适于对当前内存数据交互请求对应的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
所述缓存控制单元,适于当确定所述缓存单元中同时包含与所述当前内存数据交互请求对应的加密缓存数据和非加密缓存数据并在确定二者不一致时,控制所述缓存数据加解密单元采用所述缓存密钥存储单元中存储的缓存密钥,对与当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。
所述处理器的具体实现方式及各单元之间的数据交互过程及原理可以参见前述实施例,此处不再展开描述。
参照图6所示的保持处理器缓存一致性的方法的流程图,其中,所述处理器可以包括:多个处理器核心和内存控制器,其中任一处理器核心适于通过所述内存控制器与内存进行数据交互操作,所述保持处理器缓存一致性的方法可以包括如下步骤:
S61,获取当前内存数据交互请求对应缓存的缓存状态。
在具体实施中,所述处理器中可以包括可以与各处理器核心进行信息交互的缓存一致性管理模块,所述任一处理器核心可以通过所述缓存一致性管理模块获取当前内存数据交互请求对应的所述处理器内部的缓存状态。
S62,根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作。
其中,在所述处理器中不存在有效缓存时,确定所述处理器中同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据二者不一致时,通知所述发起请求的处理器核心,以使所述发起请求的处理器核心采用缓存密钥,对与当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。
作为一可选示例,所述任一处理器核心可以包括:核内缓存单元,包括:多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对所述核内缓存单元的缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前内存数据交互请求对应的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:当确定所述处理器中不存在请求的有效缓存数据,当前请求的为非加密缓存数据,且所述处理器中其他处理器核心或所述核外缓存单元中存在加密缓存数据,则读取所述加密缓存数据,并控制所述缓存数据加解密单元解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据;以及当确定所述处理器中不存在有效缓存数据,当前请求的为加密缓存数据,且所述处理器中其他处理器核心或所述核外缓存中存在非加密缓存数据,则读取所述非加密缓存数据并控制所述缓存数据加解密单元采用所述缓存密钥存储单元存储的缓存密钥进行加密,得到加密缓存更新数据并更新。
各处理器核心的具体结构以及各处理器核心之间和各处理器核心与内存之间的数据交互流程及相应数据交互过程中保持缓存一致性的方法可以参见前述多核处理器的具体示例,此处不再详细描述。
在本说明书一些实施例中,在步骤S62中,当确定所述处理器中其他处理器核心和所述核外缓存单元均不存在所请求的有效缓存数据,也不存在对应的加密缓存数据或非加密缓存数据,所述多个处理器核心中发起内存读请求的处理器核心通过其自身的缓存控制单元从所述内存中读取数据并更新缓存数据;
当确定所述处理器中其他处理器核心或所述核外缓存单元中存在所请求的有效缓存数据时,所述多个处理器核心中发起内存读请求的处理器核心通过缓存控制单元采用所述有效缓存数据更新其自身核内缓存数据。
如前实施例所述,所述处理器还可以包括安全处理装置,所述方法还可以包括:在开启内存加密功能时,所述安全处理装置向所述各处理器核心的缓存密钥存储单元写入所述缓存密钥,并同时向所述内存控制器中的内存密钥存储单元写入所述内存密钥。在具体实施中,各处理器核心中存储的缓存密钥和所述内存控制器中存储的内存密钥相同。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (19)

1.一种处理器,其特征在于,包括处理器核心和内存控制器,所述处理器核心适于通过所述内存控制器与内存进行数据交互操作,其中:所述处理器核心包括:
缓存单元,包括多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:当所述缓存单元中同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且确定二者不一致时,控制所述缓存数据加解密单元采用所述缓存密钥存储单元中存储的缓存密钥,对与所述当前内存数据交互请求对应的非加密缓存数据及加密缓存数据中的最新缓存数据进行加密或解密处理并进行数据更新。
2.根据权利要求1所述的处理器,其特征在于,所述缓存控制单元,适于在确定所述非加密缓存数据为最新数据时,控制所述缓存数据加解密单元采用所述缓存密钥加密所述非加密缓存数据,得到加密缓存更新数据,并更新所述加密缓存数据;在确定所述加密缓存数据为最新数据时,控制所述缓存数据加解密单元采用所述缓存密钥解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据。
3.根据权利要求2所述的处理器,其特征在于,所述内存控制器包括:
内存密钥存储单元,适于存储用于对内存数据进行加密或解密处理的内存密钥;
内存数据加解密单元,适于对当前交互的内存数据采用所述内存密钥存储单元中存储的内存密钥进行加密或解密;
内存控制单元,适于接收所述处理器核心的内存数据交互请求,获取所述内存数据交互请求对应的内存是否加密,在确定对应的内存为加密内存时,在对对应的内存数据进行交互操作过程中,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥,对所述内存数据交互请求对应的内存数据进行加密或解密处理。
4.根据权利要求3所述的处理器,其特征在于,所述内存控制单元,适于响应于所述处理器核心的内存读请求,在确定对应的内存为加密内存时,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥对从所述加密内存中读取的加密数据进行解密;以及响应于所述处理器核心的内存写请求,在确定对应的内存为加密内存时,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥对待写入数据进行加密后写入所述内存。
5.根据权利要求3或4所述的处理器,其特征在于,还包括:安全处理装置,适于在开启内存加密功能时,向所述缓存密钥存储单元写入所述缓存密钥,并同时向所述内存密钥存储单元写入所述内存密钥。
6.一种处理器,其特征在于,包括:多个处理器核心和内存控制器,其中任一处理器核心适于通过所述内存控制器与内存进行数据交互操作,任一所述处理器核心包括:
核内缓存单元,包括:多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对所述核内缓存单元的缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前内存数据交互请求对应的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:获取当前内存数据交互请求对应缓存的缓存状态,并根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作,其中:在所述处理器中同时存在与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且二者不一致时,通知所述发起内存数据交互请求的处理器核心,以使所述发起请求的处理器核心采用缓存密钥,对对应的缓存数据进行加密或解密处理并进行缓存数据更新。
7.根据权利要求6所述的处理器,其特征在于,还包括:缓存一致性管理模块,适于存储所述处理器内部的缓存数据的缓存状态;
所述任一处理器核心的缓存控制单元,适于通过所述缓存一致性管理模块获取当前内存数据交互请求对应的所述处理器内部的缓存数据的缓存状态。
8.根据权利要求7所述的处理器,其特征在于,所述处理器还包括:核外缓存单元,适于存储缓存数据;
所述任一处理器核心的缓存控制单元,适于通过所述缓存一致性管理模块获取当前内存数据交互请求对应的所述处理器内部各处理器核心的核内缓存单元和核外缓存单元中缓存数据的缓存状态。
9.根据权利要求8所述的处理器,其特征在于,所述发起内存数据交互请求的处理器核心中的缓存控制单元,适于当所述处理器中不存在所请求的有效缓存数据,且当前请求的为非加密缓存数据,而所述处理器中其他处理器核心或所述核外缓存单元中存在加密缓存数据,则读取所述加密缓存数据,并控制所述缓存数据加解密单元解密所述加密缓存数据,得到非加密缓存数据;以及当所述处理器中不存在所请求的有效缓存数据,且当前请求的为加密缓存数据,而所述处理器中其他处理器核心或所述核外缓存单元中存在非加密缓存数据,则读取所述非加密缓存数据并控制所述缓存数据加解密单元采用所述缓存密钥存储单元存储的缓存密钥进行加密,得到加密缓存数据。
10.根据权利要求9所述的处理器,其特征在于,多个处理器核心中发起内存读请求的处理器核心中的缓存控制单元,还适于当确定所述处理器中其他处理器核心和所述核外缓存单元均不存在所请求的有效缓存数据,也不存在对应的加密缓存数据或非加密缓存数据,则从所述内存中读取数据并更新缓存数据;以及当确定所述处理器中其他处理器核心或所述核外缓存单元中存在所请求的有效缓存数据时,采用所述有效缓存数据更新所述发起请求的处理器核心的核内缓存数据。
11.根据权利要求6-10任一项所述的处理器,其特征在于,所述内存控制器,包括:
内存密钥存储单元,适于存储用于对内存数据进行加密或解密处理的内存密钥;
内存数据加解密单元,适于对当前交互的内存数据采用所述内存密钥存储单元中存储的内存密钥进行加密或解密;
内存控制单元,适于接收所述处理器核心的内存数据交互请求,获取所述内存数据交互请求对应的内存是否加密,在确定对应的内存为加密内存时,在进行数据交互操作过程中,控制所述内存数据加解密单元采用所述内存密钥存储单元中存储的内存密钥,对所述内存数据交互请求对应的内存数据进行加密或解密处理。
12.根据权利要求11所述的处理器,其特征在于,还包括:安全处理装置,适于在开启内存加密功能时,向所述各处理器核心的缓存密钥存储单元写入所述缓存密钥,并同时向所述内存控制器中的内存密钥存储单元写入所述内存密钥。
13.一种保持处理器缓存一致性的方法,其特征在于,所述处理器适于通过内存控制器与内存进行数据交互操作,且所述处理器包括缓存单元,所述缓存单元包括多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据,所述保持处理器缓存一致性的方法包括:
确定所述缓存单元中是否同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据;
在确定所述缓存单元中同时包含与所述当前内存数据交互请求对应的加密缓存数据和非加密缓存数据时,确定二者是否一致;
在确定二者不一致时,采用所述处理器中存储的缓存密钥对所述内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。
14.根据权利要求13所述的保持处理器缓存一致性的方法,其特征在于,所述处理器包括:
缓存密钥存储单元,适于存储用于对缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前内存数据交互请求对应的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于当确定所述缓存单元中同时包含与所述当前内存数据交互请求对应的加密缓存数据和非加密缓存数据并在确定二者不一致时,控制所述缓存数据加解密单元采用所述缓存密钥存储单元中存储的缓存密钥,对与当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行数据更新。
15.一种保持处理器缓存一致性的方法,其特征在于,所述处理器包括:多个处理器核心和内存控制器,其中任一处理器核心适于通过所述内存控制器与内存进行数据交互操作,所述保持处理器缓存一致性的方法包括:
获取当前内存数据交互请求对应缓存的缓存状态;
根据获取到的对应缓存的缓存状态,通知发起内存数据交互请求的处理器核心的缓存控制单元执行缓存一致性管理操作,其中:
在所述处理器中不存在有效缓存时,确定所述处理器中同时包含与当前内存数据交互请求对应的加密缓存数据和非加密缓存数据且二者不一致时,通知所述发起内存数据交互请求的处理器核心,以使所述发起请求的处理器核心采用缓存密钥,对与当前内存数据交互请求对应的缓存数据进行加密或解密处理并进行缓存数据更新。
16.根据权利要求15所述的保持处理器缓存一致性的方法,其特征在于,所述获取当前内存数据交互请求对应缓存的缓存状态,包括:
所述任一处理器核心通过所述缓存一致性管理模块获取当前内存数据交互请求对应的所述处理器内部的缓存状态。
17.根据权利要求16所述的保持处理器缓存一致性的方法,其特征在于,所述处理器还包括核外缓存单元,适于存储缓存数据;且所述任一处理器核心包括:
核内缓存单元,包括:多个缓存行,所述缓存行适于存储缓存数据,所述缓存数据为加密缓存数据或非加密缓存数据;
缓存密钥存储单元,适于存储用于对所述核内缓存单元的缓存数据进行加密或解密处理的缓存密钥;
缓存数据加解密单元,适于对当前交互的缓存数据采用所述缓存密钥存储单元中存储的缓存密钥进行加密或解密;
缓存控制单元,适于对缓存数据进行缓存一致性管理,包括:当确定所述处理器中不存在所请求的有效缓存数据,当前请求的为非加密缓存数据,且所述处理器中其他处理器核心或所述核外缓存单元中存在加密缓存数据,则读取所述加密缓存数据,并控制所述缓存数据加解密单元解密所述加密缓存数据,得到非加密缓存更新数据,并更新所述非加密缓存数据;以及当确定所述处理器中不存在所请求的有效缓存数据,当前请求的为加密缓存数据,且所述处理器中其他处理器核心或所述核外缓存中存在非加密缓存数据,则读取所述非加密缓存数据并控制所述缓存数据加解密单元采用所述缓存密钥存储单元存储的缓存密钥进行加密,得到加密缓存更新数据并进行缓存数据更新。
18.根据权利要求17所述的保持处理器缓存一致性的方法,其特征在于,还包括:
当确定所述处理器中其他处理器核心和所述核外缓存单元均不存在所请求的有效缓存数据,也不存在对应的加密缓存数据或非加密缓存数据,所述多个处理器核心中发起内存读请求的处理器核心通过其自身的缓存控制单元从所述内存中读取数据并更新缓存数据;
当确定所述处理器中其他处理器核心或所述核外缓存单元中存在所请求的有效缓存数据时,所述多个处理器核心中发起内存读请求的处理器核心通过缓存控制单元采用所述有效缓存数据更新其自身核内缓存数据。
19.根据权利要求15-18任一项所述的保持处理器缓存一致性的方法,其特征在于,所述处理器还包括安全处理装置,所述方法还包括:
在开启内存加密功能时,所述安全处理装置向所述各处理器核心的缓存密钥存储单元写入所述缓存密钥,并同时向所述内存控制器中的内存密钥存储单元写入所述内存密钥。
CN202110694840.2A 2021-06-22 2021-06-22 处理器及其保持缓存数据一致性的方法 Active CN113342278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110694840.2A CN113342278B (zh) 2021-06-22 2021-06-22 处理器及其保持缓存数据一致性的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110694840.2A CN113342278B (zh) 2021-06-22 2021-06-22 处理器及其保持缓存数据一致性的方法

Publications (2)

Publication Number Publication Date
CN113342278A true CN113342278A (zh) 2021-09-03
CN113342278B CN113342278B (zh) 2022-10-25

Family

ID=77477630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110694840.2A Active CN113342278B (zh) 2021-06-22 2021-06-22 处理器及其保持缓存数据一致性的方法

Country Status (1)

Country Link
CN (1) CN113342278B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215109A (zh) * 2011-08-15 2011-10-12 天津大学 基于计算机取证的数字证据动态保存及验证方法
CN103026347A (zh) * 2010-05-27 2013-04-03 思科技术公司 多核架构中的虚拟机内存划分
CN107070613A (zh) * 2017-03-22 2017-08-18 公安部交通管理科学研究所 分布式网络环境下数据可靠传输方法
CN110162488A (zh) * 2018-11-15 2019-08-23 深圳乐信软件技术有限公司 缓存一致性校验方法、装置、服务器和存储介质
CN110210214A (zh) * 2019-06-03 2019-09-06 成都海光集成电路设计有限公司 处理器核心隔离方法及装置
CN110472444A (zh) * 2018-05-11 2019-11-19 英特尔公司 防止对加密存储器的未授权访问
CN112416615A (zh) * 2020-11-05 2021-02-26 珠海格力电器股份有限公司 多核处理器及其缓存一致性的实现方法、装置和存储介质
CN112540931A (zh) * 2020-12-16 2021-03-23 华中科技大学 保证安全非易失内存中数据崩溃一致性的方法及处理器

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103026347A (zh) * 2010-05-27 2013-04-03 思科技术公司 多核架构中的虚拟机内存划分
CN102215109A (zh) * 2011-08-15 2011-10-12 天津大学 基于计算机取证的数字证据动态保存及验证方法
CN107070613A (zh) * 2017-03-22 2017-08-18 公安部交通管理科学研究所 分布式网络环境下数据可靠传输方法
CN110472444A (zh) * 2018-05-11 2019-11-19 英特尔公司 防止对加密存储器的未授权访问
CN110162488A (zh) * 2018-11-15 2019-08-23 深圳乐信软件技术有限公司 缓存一致性校验方法、装置、服务器和存储介质
CN110210214A (zh) * 2019-06-03 2019-09-06 成都海光集成电路设计有限公司 处理器核心隔离方法及装置
CN112416615A (zh) * 2020-11-05 2021-02-26 珠海格力电器股份有限公司 多核处理器及其缓存一致性的实现方法、装置和存储介质
CN112540931A (zh) * 2020-12-16 2021-03-23 华中科技大学 保证安全非易失内存中数据崩溃一致性的方法及处理器

Also Published As

Publication number Publication date
CN113342278B (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
EP3274848B1 (en) Providing enhanced replay protection for a memory
US8516271B2 (en) Securing non-volatile memory regions
US7590869B2 (en) On-chip multi-core type tamper resistant microprocessor
KR101880075B1 (ko) 중복 제거 기반 데이터 보안
JP6893479B2 (ja) 所有権テーブルを用いたデータ処理装置及び方法
AU2012204448B2 (en) System and method for in-place encryption
CN107408192B (zh) 保护存储器
JP2020528608A5 (zh)
US10313111B2 (en) Key protecting method and apparatus
CN109739613B (zh) 嵌套页表的维护方法、访问控制方法及相关装置
JP2002232417A (ja) マイクロプロセッサ
AU2012204448A1 (en) System and method for in-place encryption
US20190215160A1 (en) Managing a set of cryptographic keys in an encrypted system
US9384355B2 (en) Information processing apparatus with hibernation function, control method therefor, and storage medium storing control program therefor
US11789874B2 (en) Method, apparatus, and system for storing memory encryption realm key IDs
WO2019041272A1 (zh) 一种计算机内存数据加解密的方法及装置
US11216592B2 (en) Dynamic cryptographic key expansion
US11763041B2 (en) Data storage device performing in-storage processing
US8745340B2 (en) Reduction of communication and efficient failover processing in distributed shared memory-based application
CN113342278B (zh) 处理器及其保持缓存数据一致性的方法
CN115640099A (zh) 虚拟机控制块的安全保护方法、装置及相关器件
CN116243871A (zh) 数据存储系统、数据存储方法及电子设备
US11269549B2 (en) Storage device and command processing method
US20200349260A1 (en) In-place guest-agnostic encryption of a running virtual machine
CN117492932B (zh) 虚拟机访问方法和设备

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
GR01 Patent grant
GR01 Patent grant